From 0a3924a5876309e9d97aaeb187fcdabfaf7ea9dd Mon Sep 17 00:00:00 2001 From: GRL-bxy <77558077+GRL-bxy@users.noreply.github.com> Date: Sun, 14 May 2023 01:22:48 +0800 Subject: [PATCH 01/58] Remove console autofill hippo4j username and password logic (#1246) (#1266) --- threadpool/console/src/views/login/index.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/threadpool/console/src/views/login/index.vue b/threadpool/console/src/views/login/index.vue index 69b3d78b..086359a3 100755 --- a/threadpool/console/src/views/login/index.vue +++ b/threadpool/console/src/views/login/index.vue @@ -131,13 +131,6 @@ export default { } console.log(hostname); }, - mounted() { - if (this.loginForm.username === '') { - this.$refs.username.focus(); - } else if (this.loginForm.password === '') { - this.$refs.password.focus(); - } - }, destroyed() { // window.removeEventListener('storage', this.afterQRScan) }, From 2d0040b3bfc1e633e89e8c7804696767473133c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E7=A7=B0?= Date: Sun, 14 May 2023 15:27:06 +0800 Subject: [PATCH 02/58] Fix front-end console error (#1268) --- threadpool/server/console/src/main/resources/static/index.html | 2 +- .../src/main/resources/static/static/css/app.6f535c21.css | 2 +- ...{chunk-eee8a83e.a09ed6a0.css => chunk-66d45bb8.1117f654.css} | 2 +- .../static/static/js/{app.06c3a6ec.js => app.787fe2de.js} | 2 +- .../main/resources/static/static/js/chunk-078a7535.6236115b.js | 1 + .../main/resources/static/static/js/chunk-078a7535.c2d6547e.js | 1 - .../{chunk-149a43cf.f0ab06be.js => chunk-149a43cf.24c4f2f6.js} | 2 +- .../{chunk-19132c4b.893e94e1.js => chunk-19132c4b.5f73d1c2.js} | 2 +- .../{chunk-1b3cdbc8.b9d78889.js => chunk-1b3cdbc8.75926587.js} | 2 +- .../{chunk-296c90bf.bac58895.js => chunk-296c90bf.bf32e2f9.js} | 2 +- .../{chunk-2e217faa.6f77faf9.js => chunk-2e217faa.d47fa6a4.js} | 2 +- .../{chunk-37b6768d.cc5777b0.js => chunk-37b6768d.8c75fa03.js} | 2 +- .../{chunk-3a6f2dc9.ce81c8e6.js => chunk-3a6f2dc9.865748af.js} | 2 +- .../main/resources/static/static/js/chunk-4f40863a.1b2f9573.js | 1 - .../main/resources/static/static/js/chunk-4f40863a.78f2ac6e.js | 1 + .../{chunk-5428753b.657a1f9e.js => chunk-5428753b.b3f7c763.js} | 2 +- .../{chunk-60c39f89.425e8158.js => chunk-60c39f89.dd5eebf7.js} | 2 +- .../main/resources/static/static/js/chunk-66d45bb8.4f23529a.js | 1 + .../{chunk-6a55e40a.7125ac78.js => chunk-6a55e40a.04906197.js} | 2 +- .../{chunk-a89383d2.38fcd8f7.js => chunk-a89383d2.1e5adc95.js} | 2 +- .../main/resources/static/static/js/chunk-adca2a60.7fb86596.js | 1 + .../main/resources/static/static/js/chunk-adca2a60.9ca7c737.js | 1 - .../{chunk-d6c1d344.9c32945f.js => chunk-d6c1d344.97c51025.js} | 2 +- .../main/resources/static/static/js/chunk-d9fc0e72.7fef2d02.js | 1 - .../main/resources/static/static/js/chunk-d9fc0e72.a4e8c629.js | 1 + .../main/resources/static/static/js/chunk-eee8a83e.d4e27a94.js | 1 - 26 files changed, 21 insertions(+), 21 deletions(-) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-eee8a83e.a09ed6a0.css => chunk-66d45bb8.1117f654.css} (62%) rename threadpool/server/console/src/main/resources/static/static/js/{app.06c3a6ec.js => app.787fe2de.js} (99%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.6236115b.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.c2d6547e.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-149a43cf.f0ab06be.js => chunk-149a43cf.24c4f2f6.js} (55%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-19132c4b.893e94e1.js => chunk-19132c4b.5f73d1c2.js} (76%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-1b3cdbc8.b9d78889.js => chunk-1b3cdbc8.75926587.js} (71%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-296c90bf.bac58895.js => chunk-296c90bf.bf32e2f9.js} (99%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-2e217faa.6f77faf9.js => chunk-2e217faa.d47fa6a4.js} (50%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-37b6768d.cc5777b0.js => chunk-37b6768d.8c75fa03.js} (65%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-3a6f2dc9.ce81c8e6.js => chunk-3a6f2dc9.865748af.js} (55%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-4f40863a.1b2f9573.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-4f40863a.78f2ac6e.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-5428753b.657a1f9e.js => chunk-5428753b.b3f7c763.js} (71%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-60c39f89.425e8158.js => chunk-60c39f89.dd5eebf7.js} (74%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-66d45bb8.4f23529a.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-6a55e40a.7125ac78.js => chunk-6a55e40a.04906197.js} (76%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-a89383d2.38fcd8f7.js => chunk-a89383d2.1e5adc95.js} (71%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-adca2a60.7fb86596.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-adca2a60.9ca7c737.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-d6c1d344.9c32945f.js => chunk-d6c1d344.97c51025.js} (66%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-d9fc0e72.7fef2d02.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-d9fc0e72.a4e8c629.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-eee8a83e.d4e27a94.js diff --git a/threadpool/server/console/src/main/resources/static/index.html b/threadpool/server/console/src/main/resources/static/index.html index 5de51437..cc65a848 100644 --- a/threadpool/server/console/src/main/resources/static/index.html +++ b/threadpool/server/console/src/main/resources/static/index.html @@ -1 +1 @@ -Hippo4j Web
\ No newline at end of file +Hippo4j Web
\ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/app.6f535c21.css b/threadpool/server/console/src/main/resources/static/static/css/app.6f535c21.css index cc2f2819..da7112f6 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/app.6f535c21.css +++ b/threadpool/server/console/src/main/resources/static/static/css/app.6f535c21.css @@ -1 +1 @@ -@font-face{font-family:element-icons;src:url(element-icons.535877f5.woff) format("woff"),url(element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:transparent}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1890ff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1890ff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1890ff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1890ff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:0}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#1890ff}.el-pager li.active{color:#1890ff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px;padding-bottom:10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:transparent;border:none;outline:none;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1890ff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:20px;padding-top:10px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #dfe4ed;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:none}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f4ff;color:#46a6ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #e6ebf5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1890ff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:none;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1890ff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #dfe4ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:none;background-color:#e8f4ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#1890ff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:none;background-color:#e8f4ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu__title:hover{background-color:#e8f4ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1890ff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button,.el-radio-button__inner{position:relative;display:inline-block;outline:none}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:400;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1890ff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #1890ff;box-shadow:-1px 0 0 0 #1890ff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#1890ff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:none;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#1890ff;background-color:#1890ff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #dfe4ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#1890ff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1890ff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#dfe4ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#1890ff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#dfe4ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:none;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;top:0;color:#fff;-ms-flex-negative:0;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #dfe6ec}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th.el-table__cell>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#1890ff}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #dfe6ec}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#e6ebf5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell{border-right:1px solid #dfe6ec}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #dfe6ec;border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:1px solid #dfe6ec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#e6ebf5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #dfe6ec}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #dfe6ec;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #dfe6ec}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #dfe6ec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #dfe6ec}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1890ff}.el-table .descending .sort-caret.descending{border-top-color:#1890ff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#e8f4ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell{background-color:#e8f4ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #dfe6ec;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #e6ebf5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e8f4ff;color:#46a6ff}.el-table-filter__list-item.is-active{background-color:#1890ff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #e6ebf5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1890ff}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{width:32px;padding:4px 0;text-align:center;cursor:pointer;position:relative}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td div{padding:3px 0}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1890ff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1890ff}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#1890ff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1890ff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1890ff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #e6ebf5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#1890ff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#1890ff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#1890ff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1890ff}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#1890ff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1890ff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #e6ebf5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1890ff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#1890ff;font-weight:700}.time-select-item.disabled{color:#dfe4ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1890ff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#dfe4ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #dfe4ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:none;cursor:pointer}.el-picker-panel__shortcut:hover{color:#1890ff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1890ff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#1890ff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#1890ff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #dfe4ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #dfe4ed;border-bottom:1px solid #dfe4ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#1890ff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #dfe4ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #e6ebf5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #e6ebf5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:none;background:transparent;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1890ff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff4949}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#13ce66}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#ffba00}.el-message-box__status.el-icon-error{color:#ff4949}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#ff4949;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#1890ff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px 0}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#ff4949;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff4949}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff4949}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#1890ff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#1890ff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#dfe4ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #1890ff inset;box-shadow:inset 0 0 2px 2px #1890ff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#1890ff}.el-tabs__item:hover{color:#1890ff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #dfe4ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #dfe4ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #dfe4ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #dfe4ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#1890ff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1890ff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #dfe4ed;border-bottom:none;border-top:1px solid #dfe4ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #dfe4ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #dfe4ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #dfe4ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #dfe4ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #dfe4ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #dfe4ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #dfe4ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#1890ff}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1890ff;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf6ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#e7faf0;color:#13ce66}.el-alert--success.is-light .el-alert__description{color:#13ce66}.el-alert--success.is-dark{background-color:#13ce66;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fff8e6;color:#ffba00}.el-alert--warning.is-light .el-alert__description{color:#ffba00}.el-alert--warning.is-dark{background-color:#ffba00;color:#fff}.el-alert--error.is-light{background-color:#ffeded;color:#ff4949}.el-alert--error.is-light .el-alert__description{color:#ff4949}.el-alert--error.is-dark{background-color:#ff4949;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #e6ebf5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#13ce66}.el-notification .el-icon-error{color:#ff4949}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#ffba00}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1890ff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1890ff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#dfe4ed;color:#dfe4ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#dfe4ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px 0}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table;content:""}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#dfe4ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#1890ff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #1890ff;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px}.el-slider.is-vertical .el-slider__button-wrapper,.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1890ff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#1890ff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1890ff;stroke-linecap:round}.el-loading-spinner i{color:#1890ff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1890ff;color:#1890ff}.el-upload:focus .el-upload-dragger{border-color:#1890ff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1890ff;font-style:normal}.el-upload-dragger:hover{border-color:#1890ff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1890ff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#13ce66}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#1890ff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1890ff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#1890ff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress.is-warning .el-progress-bar__inner{background-color:#ffba00}.el-progress.is-warning .el-progress__text{color:#ffba00}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e6ebf5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#1890ff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#e6ebf5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#e7faf0;border-color:#d0f5e0}.el-message--success .el-message__content{color:#13ce66}.el-message--warning{background-color:#fff8e6;border-color:#fff1cc}.el-message--warning .el-message__content{color:#ffba00}.el-message--error{background-color:#ffeded;border-color:#ffdbdb}.el-message--error .el-message__content{color:#ff4949}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#13ce66}.el-message .el-icon-error{color:#ff4949}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#ffba00}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#1890ff}.el-badge__content--success{background-color:#13ce66}.el-badge__content--warning{background-color:#ffba00}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#ff4949}.el-card{border-radius:4px;border:1px solid #e6ebf5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-finish{color:#1890ff;border-color:#1890ff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#13ce66}.el-step__title.is-error{color:#ff4949}.el-step__title.is-finish{color:#1890ff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#13ce66}.el-step__description.is-error{color:#ff4949}.el-step__description.is-finish{color:#1890ff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:transparent;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:none;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:none;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #e6ebf5;border-bottom:1px solid #e6ebf5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #e6ebf5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:none}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1890ff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #e6ebf5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#e8f4ff;border-color:#d1e9ff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#1890ff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#1890ff}.el-tag .el-tag__close{color:#1890ff}.el-tag .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#e7faf0;border-color:#d0f5e0;color:#13ce66}.el-tag.el-tag--success.is-hit{border-color:#13ce66}.el-tag.el-tag--success .el-tag__close{color:#13ce66}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag.el-tag--warning{background-color:#fff8e6;border-color:#fff1cc;color:#ffba00}.el-tag.el-tag--warning.is-hit{border-color:#ffba00}.el-tag.el-tag--warning .el-tag__close{color:#ffba00}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag.el-tag--danger{background-color:#ffeded;border-color:#ffdbdb;color:#ff4949}.el-tag.el-tag--danger.is-hit{border-color:#ff4949}.el-tag.el-tag--danger .el-tag__close{color:#ff4949}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1890ff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1890ff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#46a6ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#13ce66;border-color:#13ce66;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#13ce66}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#42d885}.el-tag--dark.el-tag--warning{background-color:#ffba00;border-color:#ffba00;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffc833}.el-tag--dark.el-tag--danger{background-color:#ff4949;border-color:#ff4949;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff6d6d}.el-tag--plain{background-color:#fff;border-color:#a3d3ff;color:#1890ff}.el-tag--plain.is-hit{border-color:#1890ff}.el-tag--plain .el-tag__close{color:#1890ff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#a1ebc2;color:#13ce66}.el-tag--plain.el-tag--success.is-hit{border-color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close{color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#ffe399;color:#ffba00}.el-tag--plain.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close{color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffb6b6;color:#ff4949}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1890ff}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #dfe4ed;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:none;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1890ff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{font-size:12px;margin-top:8px;width:280px}.el-color-predefine,.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex}.el-color-predefine__colors{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #1890ff;box-shadow:0 0 3px 2px #1890ff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#1890ff;border-color:#1890ff}.el-color-dropdown__link-btn{cursor:pointer;color:#1890ff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#1890ff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;cursor:pointer}.el-color-picker__color,.el-color-picker__trigger{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-color-picker__color{display:block;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:none;border-color:#1890ff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff4949}.el-textarea.is-exceed .el-input__count{color:#ff4949}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input__inner:focus{outline:none;border-color:#1890ff}.el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#c0c4cc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{position:absolute;left:5px;top:0;color:#c0c4cc}.el-input__icon,.el-input__prefix{height:100%;text-align:center;-webkit-transition:all .3s;transition:all .3s}.el-input__icon{width:25px;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{outline:none;border-color:#1890ff}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff4949}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff4949}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#1890ff;font-size:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{border:1px solid #e6ebf5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1890ff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #e6ebf5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{-webkit-box-sizing:border-box;box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #dfe4ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#dfe4ed;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#1890ff}.el-timeline-item__node--success{background-color:#13ce66}.el-timeline-item__node--warning{background-color:#ffba00}.el-timeline-item__node--danger{background-color:#ff4949}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:none;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #1890ff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1890ff}.el-link.el-link--default:after{border-color:#1890ff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#1890ff}.el-link.el-link--primary:hover{color:#46a6ff}.el-link.el-link--primary:after{border-color:#1890ff}.el-link.el-link--primary.is-disabled{color:#8cc8ff}.el-link.el-link--primary.is-underline:hover:after{border-color:#1890ff}.el-link.el-link--danger{color:#ff4949}.el-link.el-link--danger:hover{color:#ff6d6d}.el-link.el-link--danger:after{border-color:#ff4949}.el-link.el-link--danger.is-disabled{color:#ffa4a4}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff4949}.el-link.el-link--success{color:#13ce66}.el-link.el-link--success:hover{color:#42d885}.el-link.el-link--success:after{border-color:#13ce66}.el-link.el-link--success.is-disabled{color:#89e7b3}.el-link.el-link--success.is-underline:hover:after{border-color:#13ce66}.el-link.el-link--warning{color:#ffba00}.el-link.el-link--warning:hover{color:#ffc833}.el-link.el-link--warning:after{border-color:#ffba00}.el-link.el-link--warning.is-disabled{color:#ffdd80}.el-link.el-link--warning.is-underline:hover:after{border-color:#ffba00}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-link.el-link--info.is-underline:hover:after{border-color:#909399}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-color:#dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:400;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{color:#1890ff;border-color:#badeff;background-color:#e8f4ff}.el-button:active{color:#1682e6;border-color:#1682e6;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1890ff;color:#1890ff}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1682e6;color:#1682e6}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#1890ff;border-color:#1890ff}.el-button--primary:focus,.el-button--primary:hover{background:#46a6ff;border-color:#46a6ff;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1682e6;border-color:#1682e6;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#8cc8ff;border-color:#8cc8ff}.el-button--primary.is-plain{color:#1890ff;background:#e8f4ff;border-color:#a3d3ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1890ff;border-color:#1890ff;color:#fff}.el-button--primary.is-plain:active{background:#1682e6;border-color:#1682e6;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#74bcff;background-color:#e8f4ff;border-color:#d1e9ff}.el-button--success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-button--success:focus,.el-button--success:hover{background:#42d885;border-color:#42d885;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#11b95c;border-color:#11b95c;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#89e7b3;border-color:#89e7b3}.el-button--success.is-plain{color:#13ce66;background:#e7faf0;border-color:#a1ebc2}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#13ce66;border-color:#13ce66;color:#fff}.el-button--success.is-plain:active{background:#11b95c;border-color:#11b95c;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#71e2a3;background-color:#e7faf0;border-color:#d0f5e0}.el-button--warning{color:#fff;background-color:#ffba00;border-color:#ffba00}.el-button--warning:focus,.el-button--warning:hover{background:#ffc833;border-color:#ffc833;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e6a700;border-color:#e6a700;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#ffdd80;border-color:#ffdd80}.el-button--warning.is-plain{color:#ffba00;background:#fff8e6;border-color:#ffe399}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#ffba00;border-color:#ffba00;color:#fff}.el-button--warning.is-plain:active{background:#e6a700;border-color:#e6a700;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#ffd666;background-color:#fff8e6;border-color:#fff1cc}.el-button--danger{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-button--danger:focus,.el-button--danger:hover{background:#ff6d6d;border-color:#ff6d6d;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e64242;border-color:#e64242;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#ffa4a4;border-color:#ffa4a4}.el-button--danger.is-plain{color:#ff4949;background:#ffeded;border-color:#ffb6b6}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff4949;border-color:#ff4949;color:#fff}.el-button--danger.is-plain:active{background:#e64242;border-color:#e64242;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#ff9292;background-color:#ffeded;border-color:#ffdbdb}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#1890ff;background:transparent;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#46a6ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#1682e6;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #dfe6ec}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-calendar-table td{border-bottom:1px solid #dfe6ec;border-right:1px solid #dfe6ec;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1890ff}.el-calendar-table tr:first-child td{border-top:1px solid #dfe6ec}.el-calendar-table tr td:first-child{border-left:1px solid #dfe6ec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;color:#1890ff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{line-height:24px}.el-page-header,.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex}.el-page-header__left{cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#1890ff}.el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1890ff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#1890ff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1890ff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:none;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #74bcff;box-shadow:-1px 0 0 0 #74bcff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#1890ff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#e6ebf5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1890ff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;font-weight:500;line-height:1;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;outline:none;font-size:14px;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#1890ff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#e6ebf5}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#1890ff;background:#1890ff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1890ff}.el-radio__input.is-focus .el-radio__inner{border-color:#1890ff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#1890ff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #dfe4ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:1px solid #dfe4ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:none}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1890ff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.el-drawer{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden;outline:0}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px;padding-bottom:0}.el-drawer__header>:first-child,.el-drawer__title{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.el-drawer__body>*{-webkit-box-sizing:border-box;box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:#000;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";text-align:center}.el-statistic .head{margin-bottom:4px;color:#606266;font-size:13px}.el-statistic .con{font-family:Sans-serif;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#303133}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;margin:0;line-height:100%}.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#dcdde0;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom{margin-top:20px}.el-descriptions{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #e6ebf5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small{font-size:12px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini{font-size:12px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:-webkit-box;display:-ms-flexbox;display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.el-descriptions-item__container .el-descriptions-item__content{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{word-break:break-word;overflow-wrap:break-word}.el-result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title{margin-top:20px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#13ce66}.el-result .icon-error{fill:#ff4949}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#ffba00}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .28s;transition:opacity .28s}.fade-enter,.fade-leave-active{opacity:0}.fade-transform-enter-active,.fade-transform-leave-active{-webkit-transition:all .5s;transition:all .5s}.fade-transform-enter{opacity:0;-webkit-transform:translateX(-30px);transform:translateX(-30px)}.fade-transform-leave-to{opacity:0;-webkit-transform:translateX(30px);transform:translateX(30px)}.breadcrumb-enter-active,.breadcrumb-leave-active{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-enter,.breadcrumb-leave-active{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.breadcrumb-move{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-leave-active{position:absolute}.el-breadcrumb__inner,.el-breadcrumb__inner a{font-weight:400!important}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.cell .el-tag{margin-right:0}.small-padding .cell{padding-left:5px;padding-right:5px}.fixed-width .el-button--mini{padding:7px 10px;width:60px}.status-col .cell{padding:0 10px;text-align:center}.status-col .cell .el-tag{margin-right:0}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-dropdown-menu a{display:block}.el-range-editor.el-input__inner{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.el-table .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9;color:#515a6e;height:40px;font-size:13px}.el-table--border th.el-table__cell{background-color:#f8f8f9}.el-table thead{color:#515a6e}#app .main-container{min-height:100%;-webkit-transition:margin-left .28s;transition:margin-left .28s;margin-left:210px;position:relative}#app .sidebar-container{-webkit-transition:width .28s;transition:width .28s;width:210px!important;background-color:#304156;height:100%;position:fixed;font-size:0;top:0;bottom:0;left:0;z-index:1001;overflow:hidden}#app .sidebar-container .horizontal-collapse-transition{-webkit-transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out;transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .el-scrollbar{height:100%}#app .sidebar-container.has-logo .el-scrollbar{height:calc(100% - 50px)}#app .sidebar-container .is-horizontal{display:none}#app .sidebar-container a{display:inline-block;width:100%;overflow:hidden}#app .sidebar-container .svg-icon{margin-right:16px}#app .sidebar-container .el-menu{border:none;height:100%;width:100%!important}#app .sidebar-container .el-submenu__title:hover,#app .sidebar-container .submenu-title-noDropdown:hover{background-color:#263445!important}#app .sidebar-container .is-active>.el-submenu__title{color:#f4f4f5!important}#app .sidebar-container .el-submenu .el-menu-item,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title{min-width:210px!important;background-color:#1f2d3d!important}#app .sidebar-container .el-submenu .el-menu-item:hover,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#001528!important}#app .hideSidebar .sidebar-container{width:54px!important}#app .hideSidebar .main-container{margin-left:54px}#app .hideSidebar .submenu-title-noDropdown{padding:0!important;position:relative}#app .hideSidebar .submenu-title-noDropdown .el-tooltip{padding:0!important}#app .hideSidebar .submenu-title-noDropdown .el-tooltip .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu{overflow:hidden}#app .hideSidebar .el-submenu>.el-submenu__title{padding:0!important}#app .hideSidebar .el-submenu>.el-submenu__title .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}#app .hideSidebar .el-menu--collapse .el-submenu>.el-submenu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}#app .el-menu--collapse .el-menu .el-submenu{min-width:210px!important}#app .mobile .main-container{margin-left:0}#app .mobile .sidebar-container{-webkit-transition:-webkit-transform .28s;transition:-webkit-transform .28s;transition:transform .28s;transition:transform .28s,-webkit-transform .28s;width:210px!important}#app .mobile.hideSidebar .sidebar-container{pointer-events:none;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:translate3d(-210px,0,0);transform:translate3d(-210px,0,0)}#app .withoutAnimation .main-container,#app .withoutAnimation .sidebar-container{-webkit-transition:none;transition:none}.el-menu--vertical>.el-menu .svg-icon{margin-right:16px}.el-menu--vertical .el-menu-item:hover,.el-menu--vertical .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#263445!important}.el-menu--vertical>.el-menu--popup{max-height:100vh;overflow-y:auto}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-track-piece{background:#d3dce6}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar{width:6px}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-thumb{background:#99a9bf;border-radius:20px}.blue-btn{background:#324157}.blue-btn:hover{color:#324157}.blue-btn:hover:after,.blue-btn:hover:before{background:#324157}.light-blue-btn{background:#3a71a8}.light-blue-btn:hover{color:#3a71a8}.light-blue-btn:hover:after,.light-blue-btn:hover:before{background:#3a71a8}.red-btn{background:#c03639}.red-btn:hover{color:#c03639}.red-btn:hover:after,.red-btn:hover:before{background:#c03639}.pink-btn{background:#e65d6e}.pink-btn:hover{color:#e65d6e}.pink-btn:hover:after,.pink-btn:hover:before{background:#e65d6e}.green-btn{background:#30b08f}.green-btn:hover{color:#30b08f}.green-btn:hover:after,.green-btn:hover:before{background:#30b08f}.tiffany-btn{background:#4ab7bd}.tiffany-btn:hover{color:#4ab7bd}.tiffany-btn:hover:after,.tiffany-btn:hover:before{background:#4ab7bd}.yellow-btn{background:#fec171}.yellow-btn:hover{color:#fec171}.yellow-btn:hover:after,.yellow-btn:hover:before{background:#fec171}.pan-btn{font-size:14px;color:#fff;padding:14px 36px;border-radius:8px;border:none;outline:none;-webkit-transition:all .6s ease;transition:all .6s ease;position:relative;display:inline-block}.pan-btn:hover{background:#fff}.pan-btn:hover:after,.pan-btn:hover:before{width:100%;-webkit-transition:all .6s ease;transition:all .6s ease}.pan-btn:after,.pan-btn:before{content:"";position:absolute;top:0;right:0;height:2px;width:0;-webkit-transition:all .4s ease;transition:all .4s ease}.pan-btn:after{right:inherit;top:inherit;left:0;bottom:0}.custom-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;color:#fff;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;padding:10px 15px;font-size:14px;border-radius:4px}*{padding:0;margin:0}body{height:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}label{font-weight:700}html{-webkit-box-sizing:border-box;box-sizing:border-box}#app,html{height:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}.no-padding{padding:0!important}.padding-content{padding:4px 0}a:active,a:focus{outline:none}a,a:focus,a:hover{cursor:pointer;color:inherit;text-decoration:none}div:focus{outline:none}.fr{float:right}.fl{float:left}.pr-5{padding-right:5px}.pl-5{padding-left:5px}.block{display:block}.pointer{cursor:pointer}.inlineBlock{display:block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}aside{background:#eef1f6;padding:8px 24px;margin-bottom:20px;border-radius:2px;display:block;line-height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:#2c3e50;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}aside a{color:#337ab7;cursor:pointer}aside a:hover{color:#20a0ff}.app-container{padding:20px}.components-container{margin:30px 50px;position:relative}.pagination-container{margin-top:30px}.text-center{text-align:center}.sub-navbar{height:50px;line-height:50px;position:relative;width:100%;text-align:right;padding-right:20px;-webkit-transition:position .6s ease;transition:position .6s ease;background:-webkit-gradient(linear,left top,right top,from(#20b6f9),color-stop(0,#20b6f9),color-stop(100%,#2178f1),to(#2178f1));background:linear-gradient(90deg,#20b6f9,#20b6f9 0,#2178f1 100%,#2178f1 0)}.sub-navbar .subtitle{font-size:20px;color:#fff}.sub-navbar.deleted,.sub-navbar.draft{background:#d0d0d0}.link-type,.link-type:focus{color:#337ab7;cursor:pointer}.link-type:focus:hover,.link-type:hover{color:#20a0ff}.filter-container{padding-bottom:10px}.filter-container .filter-item{display:inline-block;vertical-align:middle;margin-bottom:10px}.multiselect{line-height:16px}.multiselect--active{z-index:1000!important}ol,ul{list-style:none}.app-main[data-v-5ad61798]{min-height:calc(100vh - 50px);width:100%;position:relative;overflow:hidden}.fixed-header+.app-main[data-v-5ad61798]{padding-top:50px}.hasTagsView .app-main[data-v-5ad61798]{min-height:calc(100vh - 84px)}.hasTagsView .fixed-header+.app-main[data-v-5ad61798]{padding-top:84px}.el-popup-parent--hidden .fixed-header{padding-right:15px}.app-breadcrumb.el-breadcrumb[data-v-37189a8c]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-37189a8c]{color:#97a8be;cursor:text}.hamburger[data-v-49e15297]{display:inline-block;vertical-align:middle;width:20px;height:20px}.hamburger.is-active[data-v-49e15297]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.message-title[data-v-be34583a]{font-size:16px;color:#333;font-weight:700;padding-right:8px}.lang-drop-wrap[data-v-0d170d36]{height:100%;margin-right:15px}.lang-drop-wrap .el-dropdown-link[data-v-0d170d36]{cursor:pointer}.dropdown-item-text[data-active=true][data-v-0d170d36]{color:var(--jjext-color-dropdown-text)!important}.navbar[data-v-7ef8238c]{height:50px;overflow:hidden;position:relative;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,21,41,.08);box-shadow:0 1px 4px rgba(0,21,41,.08)}.navbar .hamburger-container[data-v-7ef8238c]{line-height:46px;height:100%;float:left;cursor:pointer;-webkit-transition:background .3s;transition:background .3s;-webkit-tap-highlight-color:rgba(0,0,0,0)}.navbar .hamburger-container[data-v-7ef8238c]:hover{background:rgba(0,0,0,.025)}.navbar .breadcrumb-container[data-v-7ef8238c]{float:left}.navbar .errLog-container[data-v-7ef8238c]{display:inline-block;vertical-align:top}.navbar .right-menu[data-v-7ef8238c]{float:right;height:100%;line-height:50px;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar .right-menu[data-v-7ef8238c]:focus{outline:none}.navbar .right-menu .right-menu-item[data-v-7ef8238c]{display:inline-block;padding:0 8px;height:100%;font-size:18px;color:#5a5e66;vertical-align:text-bottom}.navbar .right-menu .right-menu-item.hover-effect[data-v-7ef8238c]{cursor:pointer;-webkit-transition:background .3s;transition:background .3s}.navbar .right-menu .right-menu-item.hover-effect[data-v-7ef8238c]:hover{background:rgba(0,0,0,.025)}.navbar .right-menu .avatar-container[data-v-7ef8238c]{margin-right:30px}.navbar .right-menu .avatar-container .avatar-wrapper[data-v-7ef8238c]{margin-top:5px;position:relative}.navbar .right-menu .avatar-container .avatar-wrapper .user-avatar[data-v-7ef8238c]{cursor:pointer;width:40px;height:40px;border-radius:10px}.navbar .right-menu .avatar-container .avatar-wrapper .el-icon-caret-bottom[data-v-7ef8238c]{cursor:pointer;position:absolute;right:-20px;top:25px;font-size:12px}.sidebarLogoFade-enter-active[data-v-fdfb555e]{-webkit-transition:opacity 1.5s;transition:opacity 1.5s}.sidebarLogoFade-enter[data-v-fdfb555e],.sidebarLogoFade-leave-to[data-v-fdfb555e]{opacity:0}.sidebar-logo-container[data-v-fdfb555e]{position:relative;width:100%;height:50px;line-height:50px;background:#2b2f3a;text-align:center;overflow:hidden}.sidebar-logo-container .sidebar-logo-link[data-v-fdfb555e]{height:100%;width:100%}.sidebar-logo-container .sidebar-logo-link .sidebar-logo[data-v-fdfb555e]{width:32px;height:32px;vertical-align:middle;margin-right:12px}.sidebar-logo-container .sidebar-logo-link .sidebar-title[data-v-fdfb555e]{display:inline-block;margin:0;color:#fff;font-weight:600;line-height:50px;font-size:14px;font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;vertical-align:middle}.sidebar-logo-container.collapse .sidebar-logo[data-v-fdfb555e]{margin-right:0}[data-v-4e3fc974]:export{menuText:#bfcbd9;menuActiveText:#409eff;subMenuActiveText:#f4f4f5;menuBg:#304156;menuHover:#263445;subMenuBg:#1f2d3d;subMenuHover:#001528;sideBarWidth:210px}.app-wrapper[data-v-4e3fc974]{position:relative;height:100%;width:100%}.app-wrapper[data-v-4e3fc974]:after{content:"";display:table;clear:both}.app-wrapper.mobile.openSidebar[data-v-4e3fc974]{position:fixed;top:0}.drawer-bg[data-v-4e3fc974]{background:#000;opacity:.3;width:100%;top:0;height:100%;position:absolute;z-index:999}.fixed-header[data-v-4e3fc974]{position:fixed;top:0;right:0;z-index:9;width:calc(100% - 210px);-webkit-transition:width .28s;transition:width .28s}.hideSidebar .fixed-header[data-v-4e3fc974]{width:calc(100% - 54px)}.mobile .fixed-header[data-v-4e3fc974]{width:100%}.svg-icon[data-v-f9f7fefc]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.svg-external-icon[data-v-f9f7fefc]{background-color:currentColor;-webkit-mask-size:cover!important;mask-size:cover!important;display:inline-block} \ No newline at end of file +@font-face{font-family:element-icons;src:url(../../static/fonts/element-icons.535877f5.woff) format("woff"),url(../../static/fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:transparent}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#1890ff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#1890ff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#1890ff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#1890ff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:0}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#1890ff}.el-pager li.active{color:#1890ff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px;padding-bottom:10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:transparent;border:none;outline:none;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1890ff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:20px;padding-top:10px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #dfe4ed;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:none}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e8f4ff;color:#46a6ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #e6ebf5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #1890ff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:none;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #1890ff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #dfe4ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:none;background-color:#e8f4ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#1890ff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:none;background-color:#e8f4ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu__title:hover{background-color:#e8f4ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#1890ff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button,.el-radio-button__inner{position:relative;display:inline-block;outline:none}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:400;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1890ff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #1890ff;box-shadow:-1px 0 0 0 #1890ff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#1890ff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:none;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#1890ff;background-color:#1890ff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #dfe4ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#1890ff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1890ff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#dfe4ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#1890ff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#dfe4ed}.el-select .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:none;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;top:0;color:#fff;-ms-flex-negative:0;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #dfe6ec}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th.el-table__cell>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#1890ff}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #dfe6ec}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#e6ebf5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell{border-right:1px solid #dfe6ec}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #dfe6ec;border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:1px solid #dfe6ec}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#e6ebf5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #dfe6ec}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #dfe6ec;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #dfe6ec}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #dfe6ec}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #dfe6ec}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#1890ff}.el-table .descending .sort-caret.descending{border-top-color:#1890ff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#e8f4ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell{background-color:#e8f4ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #dfe6ec;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #e6ebf5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e8f4ff;color:#46a6ff}.el-table-filter__list-item.is-active{background-color:#1890ff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #e6ebf5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#1890ff}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f6fc}.el-date-table td{width:32px;padding:4px 0;text-align:center;cursor:pointer;position:relative}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td div{padding:3px 0}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#1890ff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#1890ff}.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#1890ff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#1890ff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#1890ff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #e6ebf5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#1890ff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#1890ff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#1890ff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#1890ff}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#1890ff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#1890ff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #e6ebf5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#1890ff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#1890ff;font-weight:700}.time-select-item.disabled{color:#dfe4ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#1890ff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#dfe4ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #dfe4ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:none;cursor:pointer}.el-picker-panel__shortcut:hover{color:#1890ff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#1890ff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#1890ff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#1890ff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #dfe4ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #dfe4ed;border-bottom:1px solid #dfe4ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#1890ff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #dfe4ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #e6ebf5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #e6ebf5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:none;background:transparent;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#1890ff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff4949}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#13ce66}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#ffba00}.el-message-box__status.el-icon-error{color:#ff4949}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#ff4949;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#1890ff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px 0}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#ff4949;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#ff4949}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#ff4949}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#1890ff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#1890ff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#dfe4ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #1890ff inset;box-shadow:inset 0 0 2px 2px #1890ff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#1890ff}.el-tabs__item:hover{color:#1890ff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #dfe4ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #dfe4ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #dfe4ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #dfe4ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#1890ff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#1890ff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #dfe4ed;border-bottom:none;border-top:1px solid #dfe4ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #dfe4ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #dfe4ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #dfe4ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #dfe4ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #dfe4ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #dfe4ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #dfe4ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#1890ff}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#1890ff;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf6ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#e7faf0;color:#13ce66}.el-alert--success.is-light .el-alert__description{color:#13ce66}.el-alert--success.is-dark{background-color:#13ce66;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fff8e6;color:#ffba00}.el-alert--warning.is-light .el-alert__description{color:#ffba00}.el-alert--warning.is-dark{background-color:#ffba00;color:#fff}.el-alert--error.is-light{background-color:#ffeded;color:#ff4949}.el-alert--error.is-light .el-alert__description{color:#ff4949}.el-alert--error.is-dark{background-color:#ff4949;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #e6ebf5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#13ce66}.el-notification .el-icon-error{color:#ff4949}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#ffba00}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#1890ff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#1890ff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#dfe4ed;color:#dfe4ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#dfe4ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px 0}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table;content:""}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#dfe4ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#1890ff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #1890ff;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px}.el-slider.is-vertical .el-slider__button-wrapper,.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#1890ff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#1890ff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1890ff;stroke-linecap:round}.el-loading-spinner i{color:#1890ff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#1890ff;color:#1890ff}.el-upload:focus .el-upload-dragger{border-color:#1890ff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#1890ff;font-style:normal}.el-upload-dragger:hover{border-color:#1890ff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #1890ff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#13ce66}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#1890ff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#1890ff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#1890ff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress.is-warning .el-progress-bar__inner{background-color:#ffba00}.el-progress.is-warning .el-progress__text{color:#ffba00}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e6ebf5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#1890ff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#e6ebf5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#e7faf0;border-color:#d0f5e0}.el-message--success .el-message__content{color:#13ce66}.el-message--warning{background-color:#fff8e6;border-color:#fff1cc}.el-message--warning .el-message__content{color:#ffba00}.el-message--error{background-color:#ffeded;border-color:#ffdbdb}.el-message--error .el-message__content{color:#ff4949}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#13ce66}.el-message .el-icon-error{color:#ff4949}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#ffba00}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#1890ff}.el-badge__content--success{background-color:#13ce66}.el-badge__content--warning{background-color:#ffba00}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#ff4949}.el-card{border-radius:4px;border:1px solid #e6ebf5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-finish{color:#1890ff;border-color:#1890ff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#13ce66}.el-step__title.is-error{color:#ff4949}.el-step__title.is-finish{color:#1890ff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#13ce66}.el-step__description.is-error{color:#ff4949}.el-step__description.is-finish{color:#1890ff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:transparent;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:none;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:none;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #e6ebf5;border-bottom:1px solid #e6ebf5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #e6ebf5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:none}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1890ff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #e6ebf5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#e6ebf5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#e6ebf5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#e6ebf5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#e6ebf5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#e8f4ff;border-color:#d1e9ff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#1890ff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#1890ff}.el-tag .el-tag__close{color:#1890ff}.el-tag .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#e7faf0;border-color:#d0f5e0;color:#13ce66}.el-tag.el-tag--success.is-hit{border-color:#13ce66}.el-tag.el-tag--success .el-tag__close{color:#13ce66}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag.el-tag--warning{background-color:#fff8e6;border-color:#fff1cc;color:#ffba00}.el-tag.el-tag--warning.is-hit{border-color:#ffba00}.el-tag.el-tag--warning .el-tag__close{color:#ffba00}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag.el-tag--danger{background-color:#ffeded;border-color:#ffdbdb;color:#ff4949}.el-tag.el-tag--danger.is-hit{border-color:#ff4949}.el-tag.el-tag--danger .el-tag__close{color:#ff4949}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#1890ff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#1890ff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#46a6ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#13ce66;border-color:#13ce66;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#13ce66}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#42d885}.el-tag--dark.el-tag--warning{background-color:#ffba00;border-color:#ffba00;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffc833}.el-tag--dark.el-tag--danger{background-color:#ff4949;border-color:#ff4949;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff6d6d}.el-tag--plain{background-color:#fff;border-color:#a3d3ff;color:#1890ff}.el-tag--plain.is-hit{border-color:#1890ff}.el-tag--plain .el-tag__close{color:#1890ff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#1890ff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#a1ebc2;color:#13ce66}.el-tag--plain.el-tag--success.is-hit{border-color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close{color:#13ce66}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#13ce66}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#ffe399;color:#ffba00}.el-tag--plain.el-tag--warning.is-hit{border-color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close{color:#ffba00}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ffba00}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#ffb6b6;color:#ff4949}.el-tag--plain.el-tag--danger.is-hit{border-color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close{color:#ff4949}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#ff4949}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#1890ff}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#1890ff}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #dfe4ed;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:none;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#1890ff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{font-size:12px;margin-top:8px;width:280px}.el-color-predefine,.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex}.el-color-predefine__colors{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #1890ff;box-shadow:0 0 3px 2px #1890ff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#1890ff;border-color:#1890ff}.el-color-dropdown__link-btn{cursor:pointer;color:#1890ff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#1890ff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;cursor:pointer}.el-color-picker__color,.el-color-picker__trigger{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-color-picker__color{display:block;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #e6ebf5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:none;border-color:#1890ff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#ff4949}.el-textarea.is-exceed .el-input__count{color:#ff4949}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input__inner:focus{outline:none;border-color:#1890ff}.el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#c0c4cc;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{position:absolute;left:5px;top:0;color:#c0c4cc}.el-input__icon,.el-input__prefix{height:100%;text-align:center;-webkit-transition:all .3s;transition:all .3s}.el-input__icon{width:25px;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{outline:none;border-color:#1890ff}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#dfe4ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#ff4949}.el-input.is-exceed .el-input__suffix .el-input__count{color:#ff4949}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#1890ff;font-size:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{border:1px solid #e6ebf5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#1890ff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #e6ebf5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #e6ebf5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{-webkit-box-sizing:border-box;box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #dfe4ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#dfe4ed;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#1890ff}.el-timeline-item__node--success{background-color:#13ce66}.el-timeline-item__node--warning{background-color:#ffba00}.el-timeline-item__node--danger{background-color:#ff4949}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:none;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #1890ff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#1890ff}.el-link.el-link--default:after{border-color:#1890ff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#1890ff}.el-link.el-link--primary:hover{color:#46a6ff}.el-link.el-link--primary:after{border-color:#1890ff}.el-link.el-link--primary.is-disabled{color:#8cc8ff}.el-link.el-link--primary.is-underline:hover:after{border-color:#1890ff}.el-link.el-link--danger{color:#ff4949}.el-link.el-link--danger:hover{color:#ff6d6d}.el-link.el-link--danger:after{border-color:#ff4949}.el-link.el-link--danger.is-disabled{color:#ffa4a4}.el-link.el-link--danger.is-underline:hover:after{border-color:#ff4949}.el-link.el-link--success{color:#13ce66}.el-link.el-link--success:hover{color:#42d885}.el-link.el-link--success:after{border-color:#13ce66}.el-link.el-link--success.is-disabled{color:#89e7b3}.el-link.el-link--success.is-underline:hover:after{border-color:#13ce66}.el-link.el-link--warning{color:#ffba00}.el-link.el-link--warning:hover{color:#ffc833}.el-link.el-link--warning:after{border-color:#ffba00}.el-link.el-link--warning.is-disabled{color:#ffdd80}.el-link.el-link--warning.is-underline:hover:after{border-color:#ffba00}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-link.el-link--info.is-underline:hover:after{border-color:#909399}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-color:#dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:400;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{color:#1890ff;border-color:#badeff;background-color:#e8f4ff}.el-button:active{color:#1682e6;border-color:#1682e6;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#1890ff;color:#1890ff}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#1682e6;color:#1682e6}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#e6ebf5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#1890ff;border-color:#1890ff}.el-button--primary:focus,.el-button--primary:hover{background:#46a6ff;border-color:#46a6ff;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#1682e6;border-color:#1682e6;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#8cc8ff;border-color:#8cc8ff}.el-button--primary.is-plain{color:#1890ff;background:#e8f4ff;border-color:#a3d3ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#1890ff;border-color:#1890ff;color:#fff}.el-button--primary.is-plain:active{background:#1682e6;border-color:#1682e6;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#74bcff;background-color:#e8f4ff;border-color:#d1e9ff}.el-button--success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-button--success:focus,.el-button--success:hover{background:#42d885;border-color:#42d885;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#11b95c;border-color:#11b95c;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#89e7b3;border-color:#89e7b3}.el-button--success.is-plain{color:#13ce66;background:#e7faf0;border-color:#a1ebc2}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#13ce66;border-color:#13ce66;color:#fff}.el-button--success.is-plain:active{background:#11b95c;border-color:#11b95c;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#71e2a3;background-color:#e7faf0;border-color:#d0f5e0}.el-button--warning{color:#fff;background-color:#ffba00;border-color:#ffba00}.el-button--warning:focus,.el-button--warning:hover{background:#ffc833;border-color:#ffc833;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#e6a700;border-color:#e6a700;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#ffdd80;border-color:#ffdd80}.el-button--warning.is-plain{color:#ffba00;background:#fff8e6;border-color:#ffe399}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#ffba00;border-color:#ffba00;color:#fff}.el-button--warning.is-plain:active{background:#e6a700;border-color:#e6a700;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#ffd666;background-color:#fff8e6;border-color:#fff1cc}.el-button--danger{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-button--danger:focus,.el-button--danger:hover{background:#ff6d6d;border-color:#ff6d6d;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#e64242;border-color:#e64242;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#ffa4a4;border-color:#ffa4a4}.el-button--danger.is-plain{color:#ff4949;background:#ffeded;border-color:#ffb6b6}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#ff4949;border-color:#ff4949;color:#fff}.el-button--danger.is-plain:active{background:#e64242;border-color:#e64242;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#ff9292;background-color:#ffeded;border-color:#ffdbdb}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#1890ff;background:transparent;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#46a6ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#1682e6;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #dfe6ec}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-calendar-table td{border-bottom:1px solid #dfe6ec;border-right:1px solid #dfe6ec;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#1890ff}.el-calendar-table tr:first-child td{border-top:1px solid #dfe6ec}.el-calendar-table tr td:first-child{border-left:1px solid #dfe6ec}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;color:#1890ff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{line-height:24px}.el-page-header,.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex}.el-page-header__left{cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#1890ff}.el-checkbox.is-bordered.is-disabled{border-color:#e6ebf5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#1890ff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1890ff;border-color:#1890ff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#1890ff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#1890ff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:none;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#1890ff;border-color:#1890ff;-webkit-box-shadow:-1px 0 0 0 #74bcff;box-shadow:-1px 0 0 0 #74bcff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#1890ff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#e6ebf5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#e6ebf5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#1890ff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;font-weight:500;line-height:1;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;outline:none;font-size:14px;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#1890ff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#e6ebf5}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#dfe4ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#1890ff;background:#1890ff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1890ff}.el-radio__input.is-focus .el-radio__inner{border-color:#1890ff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#1890ff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #1890ff;box-shadow:0 0 2px 2px #1890ff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #dfe4ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:1px solid #dfe4ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:none}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#1890ff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.el-drawer{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden;outline:0}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px;padding-bottom:0}.el-drawer__header>:first-child,.el-drawer__title{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.el-drawer__body>*{-webkit-box-sizing:border-box;box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:#000;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";text-align:center}.el-statistic .head{margin-bottom:4px;color:#606266;font-size:13px}.el-statistic .con{font-family:Sans-serif;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#303133}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;margin:0;line-height:100%}.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#dcdde0;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom{margin-top:20px}.el-descriptions{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #e6ebf5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small{font-size:12px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini{font-size:12px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:-webkit-box;display:-ms-flexbox;display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.el-descriptions-item__container .el-descriptions-item__content{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{word-break:break-word;overflow-wrap:break-word}.el-result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title{margin-top:20px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#13ce66}.el-result .icon-error{fill:#ff4949}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#ffba00}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .28s;transition:opacity .28s}.fade-enter,.fade-leave-active{opacity:0}.fade-transform-enter-active,.fade-transform-leave-active{-webkit-transition:all .5s;transition:all .5s}.fade-transform-enter{opacity:0;-webkit-transform:translateX(-30px);transform:translateX(-30px)}.fade-transform-leave-to{opacity:0;-webkit-transform:translateX(30px);transform:translateX(30px)}.breadcrumb-enter-active,.breadcrumb-leave-active{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-enter,.breadcrumb-leave-active{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.breadcrumb-move{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-leave-active{position:absolute}.el-breadcrumb__inner,.el-breadcrumb__inner a{font-weight:400!important}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.cell .el-tag{margin-right:0}.small-padding .cell{padding-left:5px;padding-right:5px}.fixed-width .el-button--mini{padding:7px 10px;width:60px}.status-col .cell{padding:0 10px;text-align:center}.status-col .cell .el-tag{margin-right:0}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-dropdown-menu a{display:block}.el-range-editor.el-input__inner{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.el-table .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9;color:#515a6e;height:40px;font-size:13px}.el-table--border th.el-table__cell{background-color:#f8f8f9}.el-table thead{color:#515a6e}#app .main-container{min-height:100%;-webkit-transition:margin-left .28s;transition:margin-left .28s;margin-left:210px;position:relative}#app .sidebar-container{-webkit-transition:width .28s;transition:width .28s;width:210px!important;background-color:#304156;height:100%;position:fixed;font-size:0;top:0;bottom:0;left:0;z-index:1001;overflow:hidden}#app .sidebar-container .horizontal-collapse-transition{-webkit-transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out;transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .el-scrollbar{height:100%}#app .sidebar-container.has-logo .el-scrollbar{height:calc(100% - 50px)}#app .sidebar-container .is-horizontal{display:none}#app .sidebar-container a{display:inline-block;width:100%;overflow:hidden}#app .sidebar-container .svg-icon{margin-right:16px}#app .sidebar-container .el-menu{border:none;height:100%;width:100%!important}#app .sidebar-container .el-submenu__title:hover,#app .sidebar-container .submenu-title-noDropdown:hover{background-color:#263445!important}#app .sidebar-container .is-active>.el-submenu__title{color:#f4f4f5!important}#app .sidebar-container .el-submenu .el-menu-item,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title{min-width:210px!important;background-color:#1f2d3d!important}#app .sidebar-container .el-submenu .el-menu-item:hover,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#001528!important}#app .hideSidebar .sidebar-container{width:54px!important}#app .hideSidebar .main-container{margin-left:54px}#app .hideSidebar .submenu-title-noDropdown{padding:0!important;position:relative}#app .hideSidebar .submenu-title-noDropdown .el-tooltip{padding:0!important}#app .hideSidebar .submenu-title-noDropdown .el-tooltip .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu{overflow:hidden}#app .hideSidebar .el-submenu>.el-submenu__title{padding:0!important}#app .hideSidebar .el-submenu>.el-submenu__title .svg-icon{margin-left:20px}#app .hideSidebar .el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}#app .hideSidebar .el-menu--collapse .el-submenu>.el-submenu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}#app .el-menu--collapse .el-menu .el-submenu{min-width:210px!important}#app .mobile .main-container{margin-left:0}#app .mobile .sidebar-container{-webkit-transition:-webkit-transform .28s;transition:-webkit-transform .28s;transition:transform .28s;transition:transform .28s,-webkit-transform .28s;width:210px!important}#app .mobile.hideSidebar .sidebar-container{pointer-events:none;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:translate3d(-210px,0,0);transform:translate3d(-210px,0,0)}#app .withoutAnimation .main-container,#app .withoutAnimation .sidebar-container{-webkit-transition:none;transition:none}.el-menu--vertical>.el-menu .svg-icon{margin-right:16px}.el-menu--vertical .el-menu-item:hover,.el-menu--vertical .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#263445!important}.el-menu--vertical>.el-menu--popup{max-height:100vh;overflow-y:auto}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-track-piece{background:#d3dce6}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar{width:6px}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-thumb{background:#99a9bf;border-radius:20px}.blue-btn{background:#324157}.blue-btn:hover{color:#324157}.blue-btn:hover:after,.blue-btn:hover:before{background:#324157}.light-blue-btn{background:#3a71a8}.light-blue-btn:hover{color:#3a71a8}.light-blue-btn:hover:after,.light-blue-btn:hover:before{background:#3a71a8}.red-btn{background:#c03639}.red-btn:hover{color:#c03639}.red-btn:hover:after,.red-btn:hover:before{background:#c03639}.pink-btn{background:#e65d6e}.pink-btn:hover{color:#e65d6e}.pink-btn:hover:after,.pink-btn:hover:before{background:#e65d6e}.green-btn{background:#30b08f}.green-btn:hover{color:#30b08f}.green-btn:hover:after,.green-btn:hover:before{background:#30b08f}.tiffany-btn{background:#4ab7bd}.tiffany-btn:hover{color:#4ab7bd}.tiffany-btn:hover:after,.tiffany-btn:hover:before{background:#4ab7bd}.yellow-btn{background:#fec171}.yellow-btn:hover{color:#fec171}.yellow-btn:hover:after,.yellow-btn:hover:before{background:#fec171}.pan-btn{font-size:14px;color:#fff;padding:14px 36px;border-radius:8px;border:none;outline:none;-webkit-transition:all .6s ease;transition:all .6s ease;position:relative;display:inline-block}.pan-btn:hover{background:#fff}.pan-btn:hover:after,.pan-btn:hover:before{width:100%;-webkit-transition:all .6s ease;transition:all .6s ease}.pan-btn:after,.pan-btn:before{content:"";position:absolute;top:0;right:0;height:2px;width:0;-webkit-transition:all .4s ease;transition:all .4s ease}.pan-btn:after{right:inherit;top:inherit;left:0;bottom:0}.custom-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;color:#fff;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;padding:10px 15px;font-size:14px;border-radius:4px}*{padding:0;margin:0}body{height:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}label{font-weight:700}html{-webkit-box-sizing:border-box;box-sizing:border-box}#app,html{height:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}.no-padding{padding:0!important}.padding-content{padding:4px 0}a:active,a:focus{outline:none}a,a:focus,a:hover{cursor:pointer;color:inherit;text-decoration:none}div:focus{outline:none}.fr{float:right}.fl{float:left}.pr-5{padding-right:5px}.pl-5{padding-left:5px}.block{display:block}.pointer{cursor:pointer}.inlineBlock{display:block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}aside{background:#eef1f6;padding:8px 24px;margin-bottom:20px;border-radius:2px;display:block;line-height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:#2c3e50;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}aside a{color:#337ab7;cursor:pointer}aside a:hover{color:#20a0ff}.app-container{padding:20px}.components-container{margin:30px 50px;position:relative}.pagination-container{margin-top:30px}.text-center{text-align:center}.sub-navbar{height:50px;line-height:50px;position:relative;width:100%;text-align:right;padding-right:20px;-webkit-transition:position .6s ease;transition:position .6s ease;background:-webkit-gradient(linear,left top,right top,from(#20b6f9),color-stop(0,#20b6f9),color-stop(100%,#2178f1),to(#2178f1));background:linear-gradient(90deg,#20b6f9,#20b6f9 0,#2178f1 100%,#2178f1 0)}.sub-navbar .subtitle{font-size:20px;color:#fff}.sub-navbar.deleted,.sub-navbar.draft{background:#d0d0d0}.link-type,.link-type:focus{color:#337ab7;cursor:pointer}.link-type:focus:hover,.link-type:hover{color:#20a0ff}.filter-container{padding-bottom:10px}.filter-container .filter-item{display:inline-block;vertical-align:middle;margin-bottom:10px}.multiselect{line-height:16px}.multiselect--active{z-index:1000!important}ol,ul{list-style:none}.app-main[data-v-5ad61798]{min-height:calc(100vh - 50px);width:100%;position:relative;overflow:hidden}.fixed-header+.app-main[data-v-5ad61798]{padding-top:50px}.hasTagsView .app-main[data-v-5ad61798]{min-height:calc(100vh - 84px)}.hasTagsView .fixed-header+.app-main[data-v-5ad61798]{padding-top:84px}.el-popup-parent--hidden .fixed-header{padding-right:15px}.app-breadcrumb.el-breadcrumb[data-v-37189a8c]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-37189a8c]{color:#97a8be;cursor:text}.hamburger[data-v-49e15297]{display:inline-block;vertical-align:middle;width:20px;height:20px}.hamburger.is-active[data-v-49e15297]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.message-title[data-v-be34583a]{font-size:16px;color:#333;font-weight:700;padding-right:8px}.lang-drop-wrap[data-v-0d170d36]{height:100%;margin-right:15px}.lang-drop-wrap .el-dropdown-link[data-v-0d170d36]{cursor:pointer}.dropdown-item-text[data-active=true][data-v-0d170d36]{color:var(--jjext-color-dropdown-text)!important}.navbar[data-v-7ef8238c]{height:50px;overflow:hidden;position:relative;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,21,41,.08);box-shadow:0 1px 4px rgba(0,21,41,.08)}.navbar .hamburger-container[data-v-7ef8238c]{line-height:46px;height:100%;float:left;cursor:pointer;-webkit-transition:background .3s;transition:background .3s;-webkit-tap-highlight-color:rgba(0,0,0,0)}.navbar .hamburger-container[data-v-7ef8238c]:hover{background:rgba(0,0,0,.025)}.navbar .breadcrumb-container[data-v-7ef8238c]{float:left}.navbar .errLog-container[data-v-7ef8238c]{display:inline-block;vertical-align:top}.navbar .right-menu[data-v-7ef8238c]{float:right;height:100%;line-height:50px;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar .right-menu[data-v-7ef8238c]:focus{outline:none}.navbar .right-menu .right-menu-item[data-v-7ef8238c]{display:inline-block;padding:0 8px;height:100%;font-size:18px;color:#5a5e66;vertical-align:text-bottom}.navbar .right-menu .right-menu-item.hover-effect[data-v-7ef8238c]{cursor:pointer;-webkit-transition:background .3s;transition:background .3s}.navbar .right-menu .right-menu-item.hover-effect[data-v-7ef8238c]:hover{background:rgba(0,0,0,.025)}.navbar .right-menu .avatar-container[data-v-7ef8238c]{margin-right:30px}.navbar .right-menu .avatar-container .avatar-wrapper[data-v-7ef8238c]{margin-top:5px;position:relative}.navbar .right-menu .avatar-container .avatar-wrapper .user-avatar[data-v-7ef8238c]{cursor:pointer;width:40px;height:40px;border-radius:10px}.navbar .right-menu .avatar-container .avatar-wrapper .el-icon-caret-bottom[data-v-7ef8238c]{cursor:pointer;position:absolute;right:-20px;top:25px;font-size:12px}.sidebarLogoFade-enter-active[data-v-fdfb555e]{-webkit-transition:opacity 1.5s;transition:opacity 1.5s}.sidebarLogoFade-enter[data-v-fdfb555e],.sidebarLogoFade-leave-to[data-v-fdfb555e]{opacity:0}.sidebar-logo-container[data-v-fdfb555e]{position:relative;width:100%;height:50px;line-height:50px;background:#2b2f3a;text-align:center;overflow:hidden}.sidebar-logo-container .sidebar-logo-link[data-v-fdfb555e]{height:100%;width:100%}.sidebar-logo-container .sidebar-logo-link .sidebar-logo[data-v-fdfb555e]{width:32px;height:32px;vertical-align:middle;margin-right:12px}.sidebar-logo-container .sidebar-logo-link .sidebar-title[data-v-fdfb555e]{display:inline-block;margin:0;color:#fff;font-weight:600;line-height:50px;font-size:14px;font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;vertical-align:middle}.sidebar-logo-container.collapse .sidebar-logo[data-v-fdfb555e]{margin-right:0}[data-v-4e3fc974]:export{menuText:#bfcbd9;menuActiveText:#409eff;subMenuActiveText:#f4f4f5;menuBg:#304156;menuHover:#263445;subMenuBg:#1f2d3d;subMenuHover:#001528;sideBarWidth:210px}.app-wrapper[data-v-4e3fc974]{position:relative;height:100%;width:100%}.app-wrapper[data-v-4e3fc974]:after{content:"";display:table;clear:both}.app-wrapper.mobile.openSidebar[data-v-4e3fc974]{position:fixed;top:0}.drawer-bg[data-v-4e3fc974]{background:#000;opacity:.3;width:100%;top:0;height:100%;position:absolute;z-index:999}.fixed-header[data-v-4e3fc974]{position:fixed;top:0;right:0;z-index:9;width:calc(100% - 210px);-webkit-transition:width .28s;transition:width .28s}.hideSidebar .fixed-header[data-v-4e3fc974]{width:calc(100% - 54px)}.mobile .fixed-header[data-v-4e3fc974]{width:100%}.svg-icon[data-v-f9f7fefc]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.svg-external-icon[data-v-f9f7fefc]{background-color:currentColor;-webkit-mask-size:cover!important;mask-size:cover!important;display:inline-block} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css similarity index 62% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css index d7ce8eef..0ea3eaa1 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css @@ -1 +1 @@ -.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none}[data-v-a1fe05c0]::-webkit-scrollbar{width:8px;height:8px}[data-v-a1fe05c0]::-webkit-scrollbar-track{border-radius:5px;background:rgba(0,0,0,.06);-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.08)}[data-v-a1fe05c0]::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.12);-webkit-box-shadow:inset 0 0 10px rgba(0,0,0,.2)}.stack-info[data-v-a1fe05c0]{height:400px;overflow:auto}.stack-info>li[data-v-a1fe05c0]{margin-bottom:24px}.stack-info>li p[data-v-a1fe05c0]:first-child{color:#06f;font-weight:600;margin-top:10px}.stack-info>li ul[data-v-a1fe05c0]{margin-left:30px}.stack-info>li ul li[data-v-a1fe05c0]{color:#fc5531;text-align:justify;margin:10px auto} \ No newline at end of file +.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none}[data-v-41b2dc5c]::-webkit-scrollbar{width:8px;height:8px}[data-v-41b2dc5c]::-webkit-scrollbar-track{border-radius:5px;background:rgba(0,0,0,.06);-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.08)}[data-v-41b2dc5c]::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.12);-webkit-box-shadow:inset 0 0 10px rgba(0,0,0,.2)}.stack-info[data-v-41b2dc5c]{height:400px;overflow:auto}.stack-info>li[data-v-41b2dc5c]{margin-bottom:24px}.stack-info>li p[data-v-41b2dc5c]:first-child{color:#06f;font-weight:600;margin-top:10px}.stack-info>li ul[data-v-41b2dc5c]{margin-left:30px}.stack-info>li ul li[data-v-41b2dc5c]{color:#fc5531;text-align:justify;margin:10px auto} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/app.06c3a6ec.js b/threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js similarity index 99% rename from threadpool/server/console/src/main/resources/static/static/js/app.06c3a6ec.js rename to threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js index 80c07877..307b3b3e 100644 --- a/threadpool/server/console/src/main/resources/static/static/js/app.06c3a6ec.js +++ b/threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(e,t,n){e.exports=n("56d7")},"0781":function(e,t,n){"use strict";n.r(t);var a=n("24ab"),o=n.n(a),i=n("83d6"),r=n.n(i),c=r.a.showSettings,s=r.a.tagsView,l=r.a.fixedHeader,u=r.a.sidebarLogo,d={theme:o.a.theme,showSettings:c,tagsView:s,fixedHeader:l,sidebarLogo:u},m={CHANGE_SETTING:function(e,t){var n=t.key,a=t.value;e.hasOwnProperty(n)&&(e[n]=a)}},h={changeSetting:function(e,t){var n=e.commit;n("CHANGE_SETTING",t)}};t["default"]={namespaced:!0,state:d,mutations:m,actions:h}},"0d3d":function(e,t,n){"use strict";n("a4f4")},"0f9a":function(e,t,n){"use strict";n.r(t);var a=n("c7eb"),o=n("1da1"),i=(n("b0c0"),n("d3b7"),n("498a"),n("e9c4"),n("b775"));function r(e){return Object(i["a"])({url:"/hippo4j/v1/cs/auth/login",method:"post",data:e})}var c=n("5f87"),s=n("a18c"),l={token:Object(c["a"])(),name:"",avatar:"",introduction:"",roles:[]},u={SET_TOKEN:function(e,t){e.token=t},SET_INTRODUCTION:function(e,t){e.introduction=t},SET_NAME:function(e,t){e.name=t},SET_AVATAR:function(e,t){e.avatar=t},SET_ROLES:function(e,t){e.roles=t}},d={login:function(e,t){var n=e.commit,a=t.username,o=t.password;return new Promise((function(e,t){r({username:a.trim(),password:o,rememberMe:1}).then((function(t){var a=t.data,o=t.roles;n("SET_TOKEN",a),localStorage.setItem("roles",JSON.stringify(o)),localStorage.setItem("USER_ROLE",o[0]),Object(c["c"])(a),e()})).catch((function(e){alert("登录失败"),t(e)}))}))},getInfo:function(e){var t=e.commit;e.state;return new Promise((function(e,n){var a={};a.roles=JSON.parse(localStorage.getItem("roles")),t("SET_ROLES",a.roles),e(a)}))},logout:function(e){var t=e.commit;e.state;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),Object(s["d"])(),e()}))},resetToken:function(e){var t=e.commit;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),e()}))},changeRoles:function(e,t){var n=e.commit,i=e.dispatch;return new Promise(function(){var e=Object(o["a"])(Object(a["a"])().mark((function e(o){var r,l,u,d;return Object(a["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=t+"-token",n("SET_TOKEN",r),Object(c["c"])(r),e.next=5,i("getInfo");case 5:return l=e.sent,u=l.roles,Object(s["d"])(),e.next=10,i("permission/generateRoutes",u,{root:!0});case 10:d=e.sent,s["c"].addRoutes(d),i("tagsView/delAllViews",null,{root:!0}),o();case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}};t["default"]={namespaced:!0,state:l,mutations:u,actions:d}},1424:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-tenant_logo2",use:"icon-tenant_logo2-usage",viewBox:"0 0 1331 1024",content:''});r.a.add(c);t["default"]=c},"158d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item",use:"icon-item-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"187a":function(e,t,n){},"18f0":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"24ab":function(e,t,n){e.exports={theme:"#1890ff"}},2538:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-json",use:"icon-json-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},2580:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-language",use:"icon-language-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},2976:function(e,t,n){"use strict";n("3bfd")},"2a3d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},"2cf1":function(e,t,n){"use strict";n("680b")},3150:function(e,t,n){},"31c2":function(e,t,n){"use strict";n.r(t),n.d(t,"filterAsyncRoutes",(function(){return r}));var a=n("5530"),o=(n("d3b7"),n("caad"),n("2532"),n("159b"),n("14d9"),n("99af"),n("a18c"));function i(e,t){return!t.meta||!t.meta.roles||e.some((function(e){return t.meta.roles.includes(e)}))}function r(e,t){var n=[];return e.forEach((function(e){var o=Object(a["a"])({},e);i(t,o)&&(o.children&&(o.children=r(o.children,t)),n.push(o))})),n}var c={routes:[],addRoutes:[]},s={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=o["b"].concat(t)}},l={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){var a;a=t.includes("ROLE_ADMIN")?o["a"]||[]:r(o["a"],t),n("SET_ROUTES",a),e(a)}))}};t["default"]={namespaced:!0,state:c,mutations:s,actions:l}},"38e2":function(e,t,n){},"3bfd":function(e,t,n){},4093:function(e,t,n){},4360:function(e,t,n){"use strict";n("13d5"),n("d3b7"),n("ddb0"),n("ac1f"),n("5319");var a=n("2b0e"),o=n("2f62"),i=(n("b0c0"),{sidebar:function(e){return e.app.sidebar},size:function(e){return e.app.size},device:function(e){return e.app.device},visitedViews:function(e){return e.tagsView.visitedViews},cachedViews:function(e){return e.tagsView.cachedViews},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},name:function(e){return e.user.name},introduction:function(e){return e.user.introduction},roles:function(e){return e.user.roles},permission_routes:function(e){return e.permission.routes},errorLogs:function(e){return e.errorLog.logs}}),r=i;a["default"].use(o["a"]);var c=n("c653"),s=c.keys().reduce((function(e,t){var n=t.replace(/^\.\/(.*)\.\w+$/,"$1"),a=c(t);return e[n]=a.default,e}),{}),l=new o["a"].Store({modules:s,getters:r});t["a"]=l},4837:function(e,t,n){"use strict";n("38e2")},"4d49":function(e,t,n){"use strict";n.r(t);n("14d9"),n("a434");var a={logs:[]},o={ADD_ERROR_LOG:function(e,t){e.logs.push(t)},CLEAR_ERROR_LOG:function(e){e.logs.splice(0)}},i={addErrorLog:function(e,t){var n=e.commit;n("ADD_ERROR_LOG",t)},clearErrorLog:function(e){var t=e.commit;t("CLEAR_ERROR_LOG")}};t["default"]={namespaced:!0,state:a,mutations:o,actions:i}},"51ff":function(e,t,n){var a={"./404.svg":"a14a","./audit.svg":"d393","./dashboard2.svg":"ea93","./item.svg":"158d","./item_logo4.svg":"8811","./json.svg":"2538","./language.svg":"2580","./lessee.svg":"dbd7","./link.svg":"18f0","./log.svg":"fea0","./notify.svg":"5448","./other.svg":"5f34","./password.svg":"2a3d","./pool.svg":"e720","./tenant_logo2.svg":"1424","./threadPool_logo1.svg":"b6d1","./threadPool_logo2.svg":"9bc4","./user.svg":"b3b5","./vessel.svg":"c34e"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="51ff"},5448:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-notify",use:"icon-notify-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"55f1":function(e,t,n){},"56d7":function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"parseTime",(function(){return q["c"]})),n.d(a,"formatTime",(function(){return q["b"]})),n.d(a,"timeAgo",(function(){return U})),n.d(a,"numberFormatter",(function(){return Q})),n.d(a,"toThousandFilter",(function(){return G})),n.d(a,"uppercaseFirst",(function(){return W}));n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b64b"),n("4de4");var o=n("2b0e"),i=n("a78e"),r=n.n(i),c=(n("f5df1"),n("5c96")),s=n.n(c),l=(n("24ab"),n("b20f"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)}),u=[],d={name:"App"},m=d,h=n("2877"),f=Object(h["a"])(m,l,u,!1,null,null,null),p=f.exports,b=n("4360"),g=n("a18c"),v=(n("d81d"),n("ddb0"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal?n("div",e._g({staticClass:"svg-external-icon svg-icon",style:e.styleExternalIcon},e.$listeners)):n("svg",e._g({class:e.svgClass,attrs:{"aria-hidden":"true"}},e.$listeners),[n("use",{attrs:{"xlink:href":e.iconName}})])}),w=[],y=n("61f7"),x={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(y["a"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},_=x,k=(n("64df"),Object(h["a"])(_,v,w,!1,null,"f9f7fefc",null)),M=k.exports;o["default"].component("svg-icon",M);var T=n("51ff"),C=function(e){return e.keys().map(e)};C(T);var S=n("c7eb"),z=n("5530"),E=n("1da1"),O=n("323e"),L=n.n(O),P=(n("a5d8"),n("5f87")),A=(n("99af"),n("83d6")),j=n.n(A),I=j.a.title||"Vue Element Admin";function R(e){return e?"".concat(e," - ").concat(I):"".concat(I)}var D=n("a925"),B=n("d3f0");o["default"].use(D["a"]);var H=new D["a"](B["a"]),F=H;L.a.configure({showSpinner:!1});var V=["/login","/auth-redirect"];g["c"].beforeEach(function(){var e=Object(E["a"])(Object(S["a"])().mark((function e(t,n,a){var o,i,r,s,l;return Object(S["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(L.a.start(),document.title=R(F.t(t.meta.title)),o=Object(P["a"])(),!o){e.next=35;break}if("/login"!==t.path){e.next=9;break}a({path:"/"}),L.a.done(),e.next=33;break;case 9:if(i=b["a"].getters.roles&&b["a"].getters.roles.length>0,!i){e.next=14;break}a(),e.next=33;break;case 14:return e.prev=14,e.next=17,b["a"].dispatch("user/getInfo");case 17:return r=e.sent,s=r.roles,e.next=21,b["a"].dispatch("permission/generateRoutes",s);case 21:l=e.sent,g["c"].addRoutes(l),a(Object(z["a"])(Object(z["a"])({},t),{},{replace:!0})),e.next=33;break;case 26:return e.prev=26,e.t0=e["catch"](14),e.next=30,b["a"].dispatch("user/resetToken");case 30:c["Message"].error(e.t0||"Has Error"),a("/login?redirect=".concat(t.path)),L.a.done();case 33:e.next=36;break;case 35:-1!==V.indexOf(t.path)?a():(a("/login?redirect=".concat(t.path)),L.a.done());case 36:case"end":return e.stop()}}),e,null,[[14,26]])})));return function(t,n,a){return e.apply(this,arguments)}}()),g["c"].afterEach((function(){L.a.done()}));n("d9e2");function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if("[object Object]"!==Object.prototype.toString.call(e))throw Error("The first argument to the langMatch method must be the object type");var n=F.locale;return Object.prototype.hasOwnProperty.call(e,n)?e[n]:t}o["default"].prototype.$langMatch=$;n("a9e3"),n("ac1f"),n("5319"),n("b680"),n("25f0"),n("fb6a");var q=n("ed08");function N(e,t){return 1===e?e+t:e+t+"s"}function U(e){var t=Date.now()/1e3-Number(e);return t<3600?N(~~(t/60)," minute"):t<86400?N(~~(t/3600)," hour"):N(~~(t/86400)," day")}function Q(e,t){for(var n=[{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"G"},{value:1e6,symbol:"M"},{value:1e3,symbol:"k"}],a=0;a=n[a].value)return(e/n[a].value+.1).toFixed(t).replace(/\.0+$|(\.[0-9]*[1-9])0+$/,"$1")+n[a].symbol;return e.toString()}function G(e){return(+e||0).toString().replace(/^-?\d+/g,(function(e){return e.replace(/(?=(?!\b)(\d{3})+$)/g,",")}))}function W(e){return e.charAt(0).toUpperCase()+e.slice(1)}var K=n("313e"),J=n("00e7"),Y=n.n(J);o["default"].prototype.$echarts=K["default"],o["default"].prototype.$cookie=Y.a,o["default"].use(s.a,{size:r.a.get("size")||"medium",i18n:function(e,t){return F.t(e,t)}}),Object.keys(a).forEach((function(e){o["default"].filter(e,a[e])})),o["default"].config.productionTip=!1,new o["default"]({el:"#app",router:g["c"],store:b["a"],i18n:F,render:function(e){return e(p)}})},"5e10":function(e,t,n){"use strict";n("3150")},"5f34":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-other",use:"icon-other-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"5f87":function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n("a78e"),o=n.n(a),i="Admin-Token";function r(){return o.a.get(i)}function c(e){return o.a.set(i,e)}function s(){return o.a.remove(i)}},"61f7":function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));n("ac1f"),n("00b4"),n("498a"),n("d3b7");function a(e){return/^(https?:|mailto:|tel:)/.test(e)}},"64df":function(e,t,n){"use strict";n("78bf")},"680b":function(e,t,n){},6820:function(e,t,n){"use strict";n("4093")},"78bf":function(e,t,n){},"7ad2":function(e,t,n){"use strict";n("55f1")},8326:function(e,t,n){},"83d6":function(e,t){e.exports={title:"Hippo4j Web",showSettings:!0,tagsView:!0,fixedHeader:!1,sidebarLogo:!0,errorLog:"production"}},8811:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item_logo4",use:"icon-item_logo4-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"9bc4":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo2",use:"icon-threadPool_logo2-usage",viewBox:"0 0 1044 1024",content:''});r.a.add(c);t["default"]=c},a14a:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-404",use:"icon-404-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var a,o,i=n("2b0e"),r=n("8c4f"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-wrapper",class:e.classObj},["mobile"===e.device&&e.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e._v(" "),n("sidebar",{staticClass:"sidebar-container"}),e._v(" "),n("div",{staticClass:"main-container"},[n("div",{class:{"fixed-header":e.fixedHeader}},[n("navbar")],1),e._v(" "),n("app-main")],1)],1)},s=[],l=n("5530"),u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("router-view",{key:e.key})],1)],1)},d=[],m={name:"AppMain",computed:{cachedViews:function(){return this.$store.state.tagsView.cachedViews},key:function(){return this.$route.path}}},h=m,f=(n("5e10"),n("0d3d"),n("2877")),p=Object(f["a"])(h,u,d,!1,null,"5ad61798",null),b=p.exports,g=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{toggleClick:e.toggleSideBar}}),e._v(" "),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),e._v(" "),a("div",{staticClass:"right-menu"},["mobile"!==e.device?void 0:e._e(),e._v(" "),a("langChange"),e._v(" "),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:n("f561")}}),e._v(" "),a("i",{staticClass:"el-icon-caret-bottom"})]),e._v(" "),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(e._s(this.$t("menu.dashboard")))])],1),e._v(" "),a("el-dropdown-item",{attrs:{divided:""}},[a("span",{staticStyle:{display:"block"},on:{click:e.logout}},[e._v(e._s(e.$t("system.logOut")))])])],1)],1)],2)],1)},v=[],w=n("c7eb"),y=n("1da1"),x=(n("14d9"),n("2f62")),_=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.levelList,(function(t,a){return n("el-breadcrumb-item",{key:t.path},["noRedirect"===t.redirect||a==e.levelList.length-1?n("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t(t.meta.title)))]):n("a",{on:{click:function(n){return n.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t(t.meta.title)))])])})),1)],1)},k=[],M=(n("2ca0"),n("4de4"),n("99af"),n("b0c0"),n("498a"),n("bd11")),T=n.n(M),C={data:function(){return{levelList:null}},watch:{$route:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"Dashboard"}}].concat(e)),this.levelList=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))},isDashboard:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()},pathCompile:function(e){var t=this.$route.params,n=T.a.compile(e);return n(t)},handleLink:function(e){var t=e.redirect,n=e.path;t?this.$router.push(t):this.$router.push(this.pathCompile(n))}}},S=C,z=(n("2976"),Object(f["a"])(S,_,k,!1,null,"37189a8c",null)),E=z.exports,O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{padding:"0 15px"},on:{click:e.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":e.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},L=[],P={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},A=P,j=(n("d49d"),Object(f["a"])(A,O,L,!1,null,"49e15297",null)),I=j.exports,R=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.errorLogs.length>0?n("div",[n("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[n("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[n("svg-icon",{attrs:{"icon-class":"bug"}})],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[n("div",{attrs:{slot:"title"},slot:"title"},[n("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v("Clear All")])],1),e._v(" "),n("el-table",{attrs:{data:e.errorLogs,border:""}},[n("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[n("div",[n("span",{staticClass:"message-title"},[e._v("Msg:")]),e._v(" "),n("el-tag",{attrs:{type:"danger"}},[e._v("\n "+e._s(a.err.message)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),e._v(" "),n("el-tag",{attrs:{type:"warning"}},[e._v("\n "+e._s(a.vm.$vnode.tag)+" error in "+e._s(a.info)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),e._v(" "),n("el-tag",{attrs:{type:"success"}},[e._v("\n "+e._s(a.url)+"\n ")])],1)]}}],null,!1,3621415002)}),e._v(" "),n("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.err.stack)+"\n ")]}}],null,!1,1726869048)})],1)],1)],1):e._e()},D=[],B={name:"ErrorLog",data:function(){return{dialogTableVisible:!1}},computed:{errorLogs:function(){return this.$store.getters.errorLogs}},methods:{clearAll:function(){this.dialogTableVisible=!1,this.$store.dispatch("errorLog/clearErrorLog")}}},H=B,F=(n("b36c"),Object(f["a"])(H,R,D,!1,null,"be34583a",null)),V=F.exports,$=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"lang-drop-wrap"},[n("el-dropdown",{attrs:{trigger:"click"},on:{command:e.selectedLang}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n "+e._s(e.currentLangName)+"\n "),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.langSelectList,(function(t){return n("el-dropdown-item",{key:t.lang,attrs:{command:t.lang}},[n("span",{staticClass:"dropdown-item-text",attrs:{"data-active":t.lang===e.currentLang}},[e._v(e._s(t.name))])])})),1)],1)],1)},q=[],N=(n("7db0"),n("d3f0")),U={data:function(){return{langSelectList:Object(N["b"])(),currentLang:""}},mounted:function(){var e=this.$i18n.locale;this.currentLang=e||null},computed:{currentLangName:function(){var e=this,t=this.langSelectList.find((function(t){return t.lang===e.currentLang}));return(null===t||void 0===t?void 0:t.name)||"选择语言"}},methods:{selectedLang:function(e){this.currentLang=e,this.$i18n.locale=e,localStorage.setItem("locale_lang",e)}}},Q=U,G=(n("7ad2"),Object(f["a"])(Q,$,q,!1,null,"0d170d36",null)),W=G.exports,K={components:{Breadcrumb:E,Hamburger:I,ErrorLog:V,langChange:W},computed:Object(l["a"])({},Object(x["b"])(["sidebar","avatar","device"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var e=this;return Object(y["a"])(Object(w["a"])().mark((function t(){return Object(w["a"])().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$cookie.delete("userName"),t.next=3,e.$store.dispatch("user/logout");case 3:e.$router.push("/login?redirect=".concat(e.$route.fullPath));case 4:case"end":return t.stop()}}),t)})))()}}},J=K,Y=(n("4837"),Object(f["a"])(J,g,v,!1,null,"7ef8238c",null)),Z=Y.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"has-logo":e.showLogo}},[e.showLogo?n("logo",{attrs:{collapse:e.isCollapse}}):e._e(),e._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"unique-opened":!1,"active-text-color":e.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},e._l(e.permission_routes,(function(e){return n("sidebar-item",{key:e.path,attrs:{item:e,"base-path":e.path}})})),1)],1)],1)},ee=[],te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):e._e(),e._v(" "),n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])])],1)],1)},ne=[],ae={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{title:"Hippo4j 1.5.0",logo:""}}},oe=ae,ie=(n("2cf1"),Object(f["a"])(oe,te,ne,!1,null,"fdfb555e",null)),re=ie.exports,ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.item.hidden?e._e():n("div",{staticClass:"menu-wrapper"},[!e.hasOneShowingChild(e.item.children,e.item)||e.onlyOneChild.children&&!e.onlyOneChild.noShowingChildren||e.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[e.item.meta?n("item",{attrs:{icon:e.item.meta&&e.item.meta.icon,title:this.$t(e.item.meta.title)}}):e._e()],1),e._v(" "),e._l(e.item.children,(function(t){return n("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:t,"base-path":e.resolvePath(t.path)}})}))],2):[e.onlyOneChild.meta?n("app-link",{attrs:{to:e.resolvePath(e.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!e.isNest},attrs:{index:e.resolvePath(e.onlyOneChild.path)}},[n("item",{attrs:{icon:e.onlyOneChild.meta.icon||e.item.meta&&e.item.meta.icon,title:this.$t(e.onlyOneChild.meta.title)}})],1)],1):e._e()]],2)},se=[],le=n("df7c"),ue=n.n(le),de=n("61f7"),me={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(e,t){var n=t.props,a=n.icon,o=n.title,i=[];return a&&i.push(e("svg-icon",{attrs:{"icon-class":a}})),o&&i.push(e("span",{slot:"title"},[o])),i}},he=me,fe=Object(f["a"])(he,a,o,!1,null,null,null),pe=fe.exports,be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("component",e._b({},"component",e.linkProps(e.to),!1),[e._t("default")],2)},ge=[],ve={props:{to:{type:String,required:!0}},methods:{linkProps:function(e){return Object(de["a"])(e)?{is:"a",href:e,target:"_blank",rel:"noopener"}:{is:"router-link",to:e}}}},we=ve,ye=Object(f["a"])(we,be,ge,!1,null,null,null),xe=ye.exports,_e={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var e=this,t=this.$refs.subMenu;if(t){var n=t.handleMouseleave;t.handleMouseleave=function(t){"mobile"!==e.device&&n(t)}}}}},ke={name:"SidebarItem",components:{Item:pe,AppLink:xe},mixins:[_e],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,a=t.filter((function(t){return!t.hidden&&(e.onlyOneChild=t,!0)}));return 1===a.length||0===a.length&&(this.onlyOneChild=Object(l["a"])(Object(l["a"])({},n),{},{path:"",noShowingChildren:!0}),!0)},resolvePath:function(e){return Object(de["a"])(e)?e:Object(de["a"])(this.basePath)?this.basePath:ue.a.resolve(this.basePath,e)}}},Me=ke,Te=Object(f["a"])(Me,ce,se,!1,null,null,null),Ce=Te.exports,Se=n("cf1e"),ze=n.n(Se),Ee={components:{SidebarItem:Ce,Logo:re},computed:Object(l["a"])(Object(l["a"])({},Object(x["b"])(["permission_routes","sidebar"])),{},{activeMenu:function(){var e=this.$route,t=e.meta,n=e.path;return t.activeMenu?t.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return ze.a},isCollapse:function(){return!this.sidebar.opened}})},Oe=Ee,Le=Object(f["a"])(Oe,X,ee,!1,null,null,null),Pe=Le.exports,Ae=n("4360"),je=document,Ie=je.body,Re=992,De={watch:{$route:function(e){"mobile"===this.device&&this.sidebar.opened&&Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var e=this.$_isMobile();e&&(Ae["a"].dispatch("app/toggleDevice","mobile"),Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var e=Ie.getBoundingClientRect();return e.width-1'});r.a.add(c);t["default"]=c},b6d1:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo1",use:"icon-threadPool_logo1-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},b775:function(e,t,n){"use strict";n("d3b7"),n("d9e2");var a=n("cee4"),o=n("5c96"),i=n("4360"),r=n("5f87"),c=n("a18c"),s=a["a"].create({baseURL:"",timeout:2e4});s.interceptors.request.use((function(e){return i["a"].getters.token&&(e.headers["Authorization"]=Object(r["a"])()),e}),(function(e){return console.log(e),Promise.reject(e)})),s.interceptors.response.use((function(e){var t=e.data;if("A000004"!==t.code){if("20000"!==t.code&&"0"!==t.code&&"200"!==t.code)return Object(o["Message"])({message:t.message||"Error",type:"error",duration:5e3}),"50008"!==t.code&&"50012"!==t.code&&"50014"!==t.code||o["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then((function(){i["a"].dispatch("user/resetToken").then((function(){location.reload()}))})),Promise.reject(new Error(t.message||"Error"));var n=e.data,a=n.code;if("0"===a){var s=n.data;return s}return"200"===a?n:t}Object(r["b"])(),Object(c["d"])(),alert(t.message),document.location.href="index.html"}),(function(e){return console.log("err"+e),Object(o["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)})),t["a"]=s},c34e:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-vessel",use:"icon-vessel-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},c653:function(e,t,n){var a={"./app.js":"d9cd","./errorLog.js":"4d49","./permission.js":"31c2","./settings.js":"0781","./user.js":"0f9a"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="c653"},cf1e:function(e,t,n){e.exports={menuText:"#bfcbd9",menuActiveText:"#409eff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},d393:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-audit",use:"icon-audit-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},d3f0:function(e,t,n){"use strict";var a=n("5530"),o=n("f0d9"),i=n.n(o),r=n("b2d6"),c=n.n(r),s={system:{login:"登 录",username:"用户名",password:"密码",logOut:"注销"},message:{requiredError:"这是必填项",success:"成功",createdSuccess:"创建成功",updateSuccess:"更新成功",deleteSuccess:"删除成功",deleteMessage:"此操作将删除 {name}, 是否继续?",selectMessage:"请选择{target}",NoDeletionPermissionTip:"请联系管理员删除",emptyWarning:"{name}不允许为空",queryFailure:"查询失败,请尝试刷新页面",updateFailure:"修改线程池失败",auditApprovedMessage:"此操作将接受线程池变更申请, 是否继续?",auditRejectionMessage:"此操作将拒绝线程池变更申请, 是否继续?",inputMessage:"请输入{target}"},common:{query:"搜索",insert:"添加",operation:"操作",create:"创建",edit:"编辑",delete:"删除",detail:"查看",cancel:"取消",confirm:"确认",reset:"重置",close:"关闭",refresh:"刷新",ok:"确定",num:"序号",createTime:"创建时间",updateTime:"修改时间",hint:"提示",info:"详情",stack:"堆栈",audit:"审核",yes:"是",no:"否"},report:{poolInstance:"线程池实例",user:"登录用户",role:"用户角色",tenants:"所属租户",threadPoolId:"线程池",taskCount:"任务数",inst:"实例数"},tenantManage:{tenant:"租户",tenantRequired:"租户(必填)",tenantName:"租户名称",owner:"负责人",tenantIntro:"租户简介"},projectManage:{item:"项目",itemRequired:"项目(必填)",itemName:"项目名称",owner:"负责人",itemIntro:"项目简介"},threadPool:{threadPool:"线程池",threadPoolRequired:"线程池(必填)",coreSize:"核心线程",maximumSize:"最大线程",queueType:"队列类型",queueCapacity:"队列容量",rejectedHandler:"拒绝策略",executionTimeout:"执行超时",executionTimeoutUnit:"执行超时 (毫秒)",keepAliveTime:"空闲回收",keepAliveTimeUnit:"空闲回收(秒)",isTimeout:"是否超时",timeout:"超时",noTimeout:"不超时",isAlarm:"是否报警",alarm:"报警",noAlarm:"不报警",activeAlarm:"活跃报警",capacityAlarm:"容量报警",customRejectedHandler:"自定义拒绝策略",customRejectedHandlerTip:"请输入自定义 SPI 拒绝策略标识",threadsNumErrorTip:"最大线程必须大于等于核心线程"},threadPoolInstance:{instanceID:"实例标识",active:"Active",stack:"堆栈",basicInformation:"基础信息",runningState:"运行状态",activeID:"环境标识",instanceHost:"实例Host",threadPoolID:"线程池",LoadInformation:"负载信息",CurrentLoad:"当前负载",PeakLoad:"峰值负载",RemainingMemory:"剩余内存",MemoryRatio:"内存占比",threadInformation:"线程信息",currentSize:"当前线程",activeSize:"活跃线程",largestSize:"同存最大线程",queueInformation:"队列信息",queueCount:"队列元素",queueRemainingCapacity:"队列剩余容量",queueType:"阻塞队列",otherInformation:"其它信息",totalTask:"任务总量",totalRejection:"拒绝次数",lastUpdateTime:"最后更新时间",allowCoreThreadTimeOut:"线程超时",changeAll:"全部修改",stackRequestFail:"当前线程池暂无堆栈信息"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(必填)",noResultsYet:"暂无结果"},frameworkThreadPool:{threadPoolIDRequired:"线程池标识(必填)",threadPoolID:"线程池标识",threadPoolType:"线程池类型"},threadPoolAudit:{changeType:"变更类型",modifiedBy:"修改人",auditStatus:"审核状态",reviewer:"审核人",submissionTime:"提交时间",auditTime:"审核时间",unaudited:"待审核",expired:"失效",auditApproved:"审核通过",auditRejection:"审核拒绝",manage:"管理",instance:"实例",container:"容器",framework:"框架",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",containerThreadPool:"容器线程池",frameworkThreadPool:"框架线程池"},notifyAlarm:{platform:"通知平台",type:"通知类型",enabled:"是否启用",interval:"通知间隔",receiver:"接收者",enabling:"启用",disabling:"禁用",token:"Token",receiverTip:"多个接收者使用英文逗号 , 分割 (注意不要有空格)\n- 钉钉:填写手机号\n- 企微:填写user_id会以@的消息发给用户,否则填写姓名,如:小马哥\n- 飞书:填写ou_开头用户唯一标识会以@的消息发给用户,填写手机号则是普通的@"},userAuthority:{userName:"用户名",role:"角色",password:"密码"},logManage:{bizType:"业务类型",bizID:"业务标识",operator:"操作人",logContent:"日志内容"},menu:{dashboard:"运行报表",tenantManage:"租户管理",itemManage:"项目管理",dynamicThreadPool:"动态线程池",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",threadPoolMonitor:"线程池监控",containerThreadPool:"容器线程池",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"框架线程池",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"rabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"线程池审核",notifyAlarm:"通知报警",userAuthority:"用户权限",logManage:"日志管理",officialWebsite:"官网外链"}},l={system:{login:"Login Form",username:"Username",password:"Password",logOut:"Log Out"},message:{requiredError:"this is required",success:"Success",createdSuccess:"Created Successfully",updateSuccess:"Update Successfully",deleteSuccess:"Delete Successfully",deleteMessage:"This action will delete {name}, Do you want to continue?",selectMessage:"Please select a {target}",NoDeletionPermissionTip:"Contact the administrator to delete it",emptyWarning:"The '{name}' cannot be empty",queryFailure:"The query fails. Please refresh the page",updateFailure:"Failed to modify thread-pool",auditApprovedMessage:"This operation will accept thread-pool change requests. Do you want to continue?",auditRejectionMessage:"This operation will reject the thread-pool change request. Do you want to continue?",inputMessage:"Please input {target}"},common:{query:"Query",insert:"Insert",operation:"Operation",create:"Create",edit:"Edit",delete:"Delete",detail:"Detail",cancel:"Cancel",confirm:"Confirm",reset:"Reset",ok:"Ok",num:"Num",close:"Close",refresh:"Refresh",createTime:"Create Time",updateTime:"Update Time",hint:"Warning",info:"Info",stack:"Stack",audit:"Audit",yes:"Yes",no:"No"},report:{poolInstance:"Pool Instance",user:"User",role:"Role",tenants:"Tenants",threadPoolId:"ThreadPool ID",taskCount:"Task Count",inst:"Instance"},tenantManage:{tenant:"Tenant",tenantRequired:"Tenant(Required)",tenantName:"Tenant Name",owner:"Owner",tenantIntro:"Tenant Intro"},projectManage:{item:"Item",itemRequired:"Item(Required)",itemName:"Item Name",owner:"Owner",itemIntro:"Item Intro"},threadPool:{threadPool:"ThreadPool",threadPoolRequired:"ThreadPool(Required)",coreSize:"Core Size",maximumSize:"Maximum Size",queueType:"Queue Type",queueCapacity:"Queue Capacity",rejectedHandler:"Rejected Handler",executionTimeout:"Execution Timeout",executionTimeoutUnit:"Execution Timeout (ms)",keepAliveTime:"Keep Alive Time",keepAliveTimeUnit:"Keep Alive Time(seconds)",isTimeout:"Is Timeout",timeout:"Timeout",noTimeout:"No Timeout",isAlarm:"Is Alarm",alarm:"Alarm",noAlarm:"No Alarm",activeAlarm:"Active Alarm",capacityAlarm:"Capacity Alarm",customRejectedHandler:"Custom Rejected Handler",customRejectedHandlerTip:"Please enter a custom SPI Deny Policy ID",threadsNumErrorTip:"The maximum thread must be greater than or equal to the core thread"},threadPoolInstance:{instanceID:"Instance ID",active:"Active",stack:"Stack",basicInformation:"Basic Information",runningState:"Running state",activeID:"Active",instanceHost:"Instance Host",threadPoolID:"ThreadPool ID",LoadInformation:"Load Information",CurrentLoad:"Current Load",PeakLoad:"Peak Load",RemainingMemory:"Remaining Memory",MemoryRatio:"Memory Ratio",threadInformation:"Thread Information",currentSize:"Current Size",activeSize:"Active Size",largestSize:"Largest Size",queueInformation:"Queue Information",queueCount:"Queue Count",queueRemainingCapacity:"Queue Remaining Capacity",queueType:"Queue Type",otherInformation:"Other Information",totalTask:"Total Task",totalRejection:"Total Rejection",lastUpdateTime:"Last update time",allowCoreThreadTimeOut:"Allow Core Thread Time Out",changeAll:"Change All",stackRequestFail:"The current thread-pool has no stack information"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(Required)",noResultsYet:"No results yet"},frameworkThreadPool:{threadPoolIDRequired:"ThreadPool ID(Required)",threadPoolID:"ThreadPool ID",threadPoolType:"ThreadPool Type"},threadPoolAudit:{changeType:"Change Type",modifiedBy:"Modified By",auditStatus:"Audit Status",reviewer:"Reviewer",submissionTime:"Submission Time",auditTime:"Audit Time",unaudited:"Unaudited",expired:"Expired",auditApproved:"Audit Approved",auditRejection:"Audit Rejection",manage:"Manage",instance:"Instance",container:"Container",framework:"Framework",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",containerThreadPool:"Container ThreadPool",frameworkThreadPool:"Framework ThreadPool"},notifyAlarm:{platform:"Platform",type:"Type",enabled:"Enabled",interval:"Interval",receiver:"Receiver",enabling:"Enabling",disabling:"Disabling",token:"Token",receiverTip:"Use English commas for multiple recipients and separate them (be careful not to have spaces)\n-Ding: Fill in the phone number\n-WeChat: Fill in 'userid' and it will be sent to the user as a @ message, otherwise fill in the name, such as: XiaomaGe\n-Lark: Fill in with 'ou_' the unique user ID at the beginning will be sent to the user as a @ message, and filling in the phone number is normal@"},userAuthority:{userName:"User Name",role:"Role",password:"Password"},logManage:{bizType:"Biz Type",bizID:"Biz ID",operator:"Operator",logContent:"Log Content"},menu:{dashboard:"Dashboard",tenantManage:"Tenant Manage",itemManage:"Item Manage",dynamicThreadPool:"Dynamic ThreadPool",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",threadPoolMonitor:"ThreadPool Monitor",containerThreadPool:"Container ThreadPool",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"Framework ThreadPool",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"RabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"ThreadPool Audit",notifyAlarm:"Notify Alarm",userAuthority:"User Authority",logManage:"Log Manage",officialWebsite:"Official Website"}};n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var u=localStorage.getItem("locale_lang"),d={locale:u||"en",messages:{zh:Object(a["a"])(Object(a["a"])({},s),i.a),en:Object(a["a"])(Object(a["a"])({},l),c.a)}},m=function(){return[{lang:"en",name:"English"},{lang:"zh",name:"简体中文"}]}},d49d:function(e,t,n){"use strict";n("8326")},d9cd:function(e,t,n){"use strict";n.r(t);var a=n("a78e"),o=n.n(a),i={sidebar:{opened:!o.a.get("sidebarStatus")||!!+o.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop",size:o.a.get("size")||"medium"},r={TOGGLE_SIDEBAR:function(e){e.sidebar.opened=!e.sidebar.opened,e.sidebar.withoutAnimation=!1,e.sidebar.opened?o.a.set("sidebarStatus",1):o.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(e,t){o.a.set("sidebarStatus",0),e.sidebar.opened=!1,e.sidebar.withoutAnimation=t},TOGGLE_DEVICE:function(e,t){e.device=t},SET_SIZE:function(e,t){e.size=t,o.a.set("size",t)}},c={toggleSideBar:function(e){var t=e.commit;t("TOGGLE_SIDEBAR")},closeSideBar:function(e,t){var n=e.commit,a=t.withoutAnimation;n("CLOSE_SIDEBAR",a)},toggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)},setSize:function(e,t){var n=e.commit;n("SET_SIZE",t)}};t["default"]={namespaced:!0,state:i,mutations:r,actions:c}},dbd7:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-lessee",use:"icon-lessee-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},e720:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-pool",use:"icon-pool-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ea93:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-dashboard2",use:"icon-dashboard2-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ed08:function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));var a=n("53ca");n("ac1f"),n("00b4"),n("d3b7"),n("25f0"),n("5319"),n("14d9"),n("a15b"),n("d81d"),n("b64b"),n("fb6a"),n("159b"),n("d9e2"),n("a630"),n("3ca3"),n("6062"),n("ddb0"),n("466d"),n("4d63"),n("c607"),n("2c3e");function o(e,t){if(0===arguments.length)return null;var n,o=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(a["a"])(e)?n=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),n=new Date(e));var i={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=o.replace(/{(y|m|d|h|i|s|a)+}/g,(function(e,t){var n=i[t];return"a"===t?["日","一","二","三","四","五","六"][n]:(e.length>0&&n<10&&(n="0"+n),n||0)}));return r}function i(e,t){e=10===(""+e).length?1e3*parseInt(e):+e;var n=new Date(e),a=Date.now(),i=(a-n)/1e3;return i<30?"刚刚":i<3600?Math.ceil(i/60)+"分钟前":i<86400?Math.ceil(i/3600)+"小时前":i<172800?"1天前":t?o(e,t):n.getMonth()+1+"月"+n.getDate()+"日"+n.getHours()+"时"+n.getMinutes()+"分"}function r(e,t,n){var a,o,i,r,c,s=function s(){var l=+new Date-r;l0?a=setTimeout(s,t-l):(a=null,n||(c=e.apply(i,o),a||(i=o=null)))};return function(){for(var o=arguments.length,l=new Array(o),u=0;u'});r.a.add(c);t["default"]=c}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(e,t,n){e.exports=n("56d7")},"0781":function(e,t,n){"use strict";n.r(t);var a=n("24ab"),o=n.n(a),i=n("83d6"),r=n.n(i),c=r.a.showSettings,s=r.a.tagsView,l=r.a.fixedHeader,u=r.a.sidebarLogo,d={theme:o.a.theme,showSettings:c,tagsView:s,fixedHeader:l,sidebarLogo:u},m={CHANGE_SETTING:function(e,t){var n=t.key,a=t.value;e.hasOwnProperty(n)&&(e[n]=a)}},h={changeSetting:function(e,t){var n=e.commit;n("CHANGE_SETTING",t)}};t["default"]={namespaced:!0,state:d,mutations:m,actions:h}},"0d3d":function(e,t,n){"use strict";n("a4f4")},"0f9a":function(e,t,n){"use strict";n.r(t);var a=n("c7eb"),o=n("1da1"),i=(n("b0c0"),n("d3b7"),n("498a"),n("e9c4"),n("b775"));function r(e){return Object(i["a"])({url:"/hippo4j/v1/cs/auth/login",method:"post",data:e})}var c=n("5f87"),s=n("a18c"),l={token:Object(c["a"])(),name:"",avatar:"",introduction:"",roles:[]},u={SET_TOKEN:function(e,t){e.token=t},SET_INTRODUCTION:function(e,t){e.introduction=t},SET_NAME:function(e,t){e.name=t},SET_AVATAR:function(e,t){e.avatar=t},SET_ROLES:function(e,t){e.roles=t}},d={login:function(e,t){var n=e.commit,a=t.username,o=t.password;return new Promise((function(e,t){r({username:a.trim(),password:o,rememberMe:1}).then((function(t){var a=t.data,o=t.roles;n("SET_TOKEN",a),localStorage.setItem("roles",JSON.stringify(o)),localStorage.setItem("USER_ROLE",o[0]),Object(c["c"])(a),e()})).catch((function(e){alert("登录失败"),t(e)}))}))},getInfo:function(e){var t=e.commit;e.state;return new Promise((function(e,n){var a={};a.roles=JSON.parse(localStorage.getItem("roles")),t("SET_ROLES",a.roles),e(a)}))},logout:function(e){var t=e.commit;e.state;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),Object(s["d"])(),e()}))},resetToken:function(e){var t=e.commit;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),e()}))},changeRoles:function(e,t){var n=e.commit,i=e.dispatch;return new Promise(function(){var e=Object(o["a"])(Object(a["a"])().mark((function e(o){var r,l,u,d;return Object(a["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=t+"-token",n("SET_TOKEN",r),Object(c["c"])(r),e.next=5,i("getInfo");case 5:return l=e.sent,u=l.roles,Object(s["d"])(),e.next=10,i("permission/generateRoutes",u,{root:!0});case 10:d=e.sent,s["c"].addRoutes(d),i("tagsView/delAllViews",null,{root:!0}),o();case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}};t["default"]={namespaced:!0,state:l,mutations:u,actions:d}},1424:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-tenant_logo2",use:"icon-tenant_logo2-usage",viewBox:"0 0 1331 1024",content:''});r.a.add(c);t["default"]=c},"158d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item",use:"icon-item-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"187a":function(e,t,n){},"18f0":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"24ab":function(e,t,n){e.exports={theme:"#1890ff"}},2538:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-json",use:"icon-json-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},2580:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-language",use:"icon-language-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},2976:function(e,t,n){"use strict";n("3bfd")},"2a3d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},"2cf1":function(e,t,n){"use strict";n("680b")},3150:function(e,t,n){},"31c2":function(e,t,n){"use strict";n.r(t),n.d(t,"filterAsyncRoutes",(function(){return r}));var a=n("5530"),o=(n("d3b7"),n("caad"),n("2532"),n("159b"),n("14d9"),n("99af"),n("a18c"));function i(e,t){return!t.meta||!t.meta.roles||e.some((function(e){return t.meta.roles.includes(e)}))}function r(e,t){var n=[];return e.forEach((function(e){var o=Object(a["a"])({},e);i(t,o)&&(o.children&&(o.children=r(o.children,t)),n.push(o))})),n}var c={routes:[],addRoutes:[]},s={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=o["b"].concat(t)}},l={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){var a;a=t.includes("ROLE_ADMIN")?o["a"]||[]:r(o["a"],t),n("SET_ROUTES",a),e(a)}))}};t["default"]={namespaced:!0,state:c,mutations:s,actions:l}},"38e2":function(e,t,n){},"3bfd":function(e,t,n){},4093:function(e,t,n){},4360:function(e,t,n){"use strict";n("13d5"),n("d3b7"),n("ddb0"),n("ac1f"),n("5319");var a=n("2b0e"),o=n("2f62"),i=(n("b0c0"),{sidebar:function(e){return e.app.sidebar},size:function(e){return e.app.size},device:function(e){return e.app.device},visitedViews:function(e){return e.tagsView.visitedViews},cachedViews:function(e){return e.tagsView.cachedViews},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},name:function(e){return e.user.name},introduction:function(e){return e.user.introduction},roles:function(e){return e.user.roles},permission_routes:function(e){return e.permission.routes},errorLogs:function(e){return e.errorLog.logs}}),r=i;a["default"].use(o["a"]);var c=n("c653"),s=c.keys().reduce((function(e,t){var n=t.replace(/^\.\/(.*)\.\w+$/,"$1"),a=c(t);return e[n]=a.default,e}),{}),l=new o["a"].Store({modules:s,getters:r});t["a"]=l},4837:function(e,t,n){"use strict";n("38e2")},"4d49":function(e,t,n){"use strict";n.r(t);n("14d9"),n("a434");var a={logs:[]},o={ADD_ERROR_LOG:function(e,t){e.logs.push(t)},CLEAR_ERROR_LOG:function(e){e.logs.splice(0)}},i={addErrorLog:function(e,t){var n=e.commit;n("ADD_ERROR_LOG",t)},clearErrorLog:function(e){var t=e.commit;t("CLEAR_ERROR_LOG")}};t["default"]={namespaced:!0,state:a,mutations:o,actions:i}},"51ff":function(e,t,n){var a={"./404.svg":"a14a","./audit.svg":"d393","./dashboard2.svg":"ea93","./item.svg":"158d","./item_logo4.svg":"8811","./json.svg":"2538","./language.svg":"2580","./lessee.svg":"dbd7","./link.svg":"18f0","./log.svg":"fea0","./notify.svg":"5448","./other.svg":"5f34","./password.svg":"2a3d","./pool.svg":"e720","./tenant_logo2.svg":"1424","./threadPool_logo1.svg":"b6d1","./threadPool_logo2.svg":"9bc4","./user.svg":"b3b5","./vessel.svg":"c34e"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="51ff"},5448:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-notify",use:"icon-notify-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"55f1":function(e,t,n){},"56d7":function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"parseTime",(function(){return q["c"]})),n.d(a,"formatTime",(function(){return q["b"]})),n.d(a,"timeAgo",(function(){return U})),n.d(a,"numberFormatter",(function(){return Q})),n.d(a,"toThousandFilter",(function(){return G})),n.d(a,"uppercaseFirst",(function(){return W}));n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b64b"),n("4de4");var o=n("2b0e"),i=n("a78e"),r=n.n(i),c=(n("f5df1"),n("5c96")),s=n.n(c),l=(n("24ab"),n("b20f"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)}),u=[],d={name:"App"},m=d,h=n("2877"),f=Object(h["a"])(m,l,u,!1,null,null,null),p=f.exports,b=n("4360"),g=n("a18c"),v=(n("d81d"),n("ddb0"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal?n("div",e._g({staticClass:"svg-external-icon svg-icon",style:e.styleExternalIcon},e.$listeners)):n("svg",e._g({class:e.svgClass,attrs:{"aria-hidden":"true"}},e.$listeners),[n("use",{attrs:{"xlink:href":e.iconName}})])}),w=[],y=n("61f7"),x={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(y["a"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},_=x,k=(n("64df"),Object(h["a"])(_,v,w,!1,null,"f9f7fefc",null)),M=k.exports;o["default"].component("svg-icon",M);var T=n("51ff"),C=function(e){return e.keys().map(e)};C(T);var S=n("c7eb"),z=n("5530"),E=n("1da1"),O=n("323e"),L=n.n(O),P=(n("a5d8"),n("5f87")),A=(n("99af"),n("83d6")),j=n.n(A),I=j.a.title||"Vue Element Admin";function R(e){return e?"".concat(e," - ").concat(I):"".concat(I)}var D=n("a925"),B=n("d3f0");o["default"].use(D["a"]);var H=new D["a"](B["a"]),F=H;L.a.configure({showSpinner:!1});var V=["/login","/auth-redirect"];g["c"].beforeEach(function(){var e=Object(E["a"])(Object(S["a"])().mark((function e(t,n,a){var o,i,r,s,l;return Object(S["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(L.a.start(),document.title=R(F.t(t.meta.title)),o=Object(P["a"])(),!o){e.next=35;break}if("/login"!==t.path){e.next=9;break}a({path:"/"}),L.a.done(),e.next=33;break;case 9:if(i=b["a"].getters.roles&&b["a"].getters.roles.length>0,!i){e.next=14;break}a(),e.next=33;break;case 14:return e.prev=14,e.next=17,b["a"].dispatch("user/getInfo");case 17:return r=e.sent,s=r.roles,e.next=21,b["a"].dispatch("permission/generateRoutes",s);case 21:l=e.sent,g["c"].addRoutes(l),a(Object(z["a"])(Object(z["a"])({},t),{},{replace:!0})),e.next=33;break;case 26:return e.prev=26,e.t0=e["catch"](14),e.next=30,b["a"].dispatch("user/resetToken");case 30:c["Message"].error(e.t0||"Has Error"),a("/login?redirect=".concat(t.path)),L.a.done();case 33:e.next=36;break;case 35:-1!==V.indexOf(t.path)?a():(a("/login?redirect=".concat(t.path)),L.a.done());case 36:case"end":return e.stop()}}),e,null,[[14,26]])})));return function(t,n,a){return e.apply(this,arguments)}}()),g["c"].afterEach((function(){L.a.done()}));n("d9e2");function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if("[object Object]"!==Object.prototype.toString.call(e))throw Error("The first argument to the langMatch method must be the object type");var n=F.locale;return Object.prototype.hasOwnProperty.call(e,n)?e[n]:t}o["default"].prototype.$langMatch=$;n("a9e3"),n("ac1f"),n("5319"),n("b680"),n("25f0"),n("fb6a");var q=n("ed08");function N(e,t){return 1===e?e+t:e+t+"s"}function U(e){var t=Date.now()/1e3-Number(e);return t<3600?N(~~(t/60)," minute"):t<86400?N(~~(t/3600)," hour"):N(~~(t/86400)," day")}function Q(e,t){for(var n=[{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"G"},{value:1e6,symbol:"M"},{value:1e3,symbol:"k"}],a=0;a=n[a].value)return(e/n[a].value+.1).toFixed(t).replace(/\.0+$|(\.[0-9]*[1-9])0+$/,"$1")+n[a].symbol;return e.toString()}function G(e){return(+e||0).toString().replace(/^-?\d+/g,(function(e){return e.replace(/(?=(?!\b)(\d{3})+$)/g,",")}))}function W(e){return e.charAt(0).toUpperCase()+e.slice(1)}var K=n("313e"),J=n("00e7"),Y=n.n(J);o["default"].prototype.$echarts=K["default"],o["default"].prototype.$cookie=Y.a,o["default"].use(s.a,{size:r.a.get("size")||"medium",i18n:function(e,t){return F.t(e,t)}}),Object.keys(a).forEach((function(e){o["default"].filter(e,a[e])})),o["default"].config.productionTip=!1,new o["default"]({el:"#app",router:g["c"],store:b["a"],i18n:F,render:function(e){return e(p)}})},"5e10":function(e,t,n){"use strict";n("3150")},"5f34":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-other",use:"icon-other-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"5f87":function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n("a78e"),o=n.n(a),i="Admin-Token";function r(){return o.a.get(i)}function c(e){return o.a.set(i,e)}function s(){return o.a.remove(i)}},"61f7":function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));n("ac1f"),n("00b4"),n("498a"),n("d3b7");function a(e){return/^(https?:|mailto:|tel:)/.test(e)}},"64df":function(e,t,n){"use strict";n("78bf")},"680b":function(e,t,n){},6820:function(e,t,n){"use strict";n("4093")},"78bf":function(e,t,n){},"7ad2":function(e,t,n){"use strict";n("55f1")},8326:function(e,t,n){},"83d6":function(e,t){e.exports={title:"Hippo4j Web",showSettings:!0,tagsView:!0,fixedHeader:!1,sidebarLogo:!0,errorLog:"production"}},8811:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item_logo4",use:"icon-item_logo4-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"9bc4":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo2",use:"icon-threadPool_logo2-usage",viewBox:"0 0 1044 1024",content:''});r.a.add(c);t["default"]=c},a14a:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-404",use:"icon-404-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var a,o,i=n("2b0e"),r=n("8c4f"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-wrapper",class:e.classObj},["mobile"===e.device&&e.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e._v(" "),n("sidebar",{staticClass:"sidebar-container"}),e._v(" "),n("div",{staticClass:"main-container"},[n("div",{class:{"fixed-header":e.fixedHeader}},[n("navbar")],1),e._v(" "),n("app-main")],1)],1)},s=[],l=n("5530"),u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("router-view",{key:e.key})],1)],1)},d=[],m={name:"AppMain",computed:{cachedViews:function(){return this.$store.state.tagsView.cachedViews},key:function(){return this.$route.path}}},h=m,f=(n("5e10"),n("0d3d"),n("2877")),p=Object(f["a"])(h,u,d,!1,null,"5ad61798",null),b=p.exports,g=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{toggleClick:e.toggleSideBar}}),e._v(" "),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),e._v(" "),a("div",{staticClass:"right-menu"},["mobile"!==e.device?void 0:e._e(),e._v(" "),a("langChange"),e._v(" "),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:n("f561")}}),e._v(" "),a("i",{staticClass:"el-icon-caret-bottom"})]),e._v(" "),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(e._s(this.$t("menu.dashboard")))])],1),e._v(" "),a("el-dropdown-item",{attrs:{divided:""}},[a("span",{staticStyle:{display:"block"},on:{click:e.logout}},[e._v(e._s(e.$t("system.logOut")))])])],1)],1)],2)],1)},v=[],w=n("c7eb"),y=n("1da1"),x=(n("14d9"),n("2f62")),_=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.levelList,(function(t,a){return n("el-breadcrumb-item",{key:t.path},["noRedirect"===t.redirect||a==e.levelList.length-1?n("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t(t.meta.title)))]):n("a",{on:{click:function(n){return n.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t(t.meta.title)))])])})),1)],1)},k=[],M=(n("2ca0"),n("4de4"),n("99af"),n("b0c0"),n("498a"),n("bd11")),T=n.n(M),C={data:function(){return{levelList:null}},watch:{$route:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"Dashboard"}}].concat(e)),this.levelList=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))},isDashboard:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()},pathCompile:function(e){var t=this.$route.params,n=T.a.compile(e);return n(t)},handleLink:function(e){var t=e.redirect,n=e.path;t?this.$router.push(t):this.$router.push(this.pathCompile(n))}}},S=C,z=(n("2976"),Object(f["a"])(S,_,k,!1,null,"37189a8c",null)),E=z.exports,O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{padding:"0 15px"},on:{click:e.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":e.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},L=[],P={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},A=P,j=(n("d49d"),Object(f["a"])(A,O,L,!1,null,"49e15297",null)),I=j.exports,R=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.errorLogs.length>0?n("div",[n("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[n("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[n("svg-icon",{attrs:{"icon-class":"bug"}})],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[n("div",{attrs:{slot:"title"},slot:"title"},[n("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v("Clear All")])],1),e._v(" "),n("el-table",{attrs:{data:e.errorLogs,border:""}},[n("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[n("div",[n("span",{staticClass:"message-title"},[e._v("Msg:")]),e._v(" "),n("el-tag",{attrs:{type:"danger"}},[e._v("\n "+e._s(a.err.message)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),e._v(" "),n("el-tag",{attrs:{type:"warning"}},[e._v("\n "+e._s(a.vm.$vnode.tag)+" error in "+e._s(a.info)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),e._v(" "),n("el-tag",{attrs:{type:"success"}},[e._v("\n "+e._s(a.url)+"\n ")])],1)]}}],null,!1,3621415002)}),e._v(" "),n("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.err.stack)+"\n ")]}}],null,!1,1726869048)})],1)],1)],1):e._e()},D=[],B={name:"ErrorLog",data:function(){return{dialogTableVisible:!1}},computed:{errorLogs:function(){return this.$store.getters.errorLogs}},methods:{clearAll:function(){this.dialogTableVisible=!1,this.$store.dispatch("errorLog/clearErrorLog")}}},H=B,F=(n("b36c"),Object(f["a"])(H,R,D,!1,null,"be34583a",null)),V=F.exports,$=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"lang-drop-wrap"},[n("el-dropdown",{attrs:{trigger:"click"},on:{command:e.selectedLang}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n "+e._s(e.currentLangName)+"\n "),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.langSelectList,(function(t){return n("el-dropdown-item",{key:t.lang,attrs:{command:t.lang}},[n("span",{staticClass:"dropdown-item-text",attrs:{"data-active":t.lang===e.currentLang}},[e._v(e._s(t.name))])])})),1)],1)],1)},q=[],N=(n("7db0"),n("d3f0")),U={data:function(){return{langSelectList:Object(N["b"])(),currentLang:""}},mounted:function(){var e=this.$i18n.locale;this.currentLang=e||null},computed:{currentLangName:function(){var e=this,t=this.langSelectList.find((function(t){return t.lang===e.currentLang}));return(null===t||void 0===t?void 0:t.name)||"选择语言"}},methods:{selectedLang:function(e){this.currentLang=e,this.$i18n.locale=e,localStorage.setItem("locale_lang",e)}}},Q=U,G=(n("7ad2"),Object(f["a"])(Q,$,q,!1,null,"0d170d36",null)),W=G.exports,K={components:{Breadcrumb:E,Hamburger:I,ErrorLog:V,langChange:W},computed:Object(l["a"])({},Object(x["b"])(["sidebar","avatar","device"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var e=this;return Object(y["a"])(Object(w["a"])().mark((function t(){return Object(w["a"])().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$cookie.delete("userName"),t.next=3,e.$store.dispatch("user/logout");case 3:e.$router.push("/login?redirect=".concat(e.$route.fullPath));case 4:case"end":return t.stop()}}),t)})))()}}},J=K,Y=(n("4837"),Object(f["a"])(J,g,v,!1,null,"7ef8238c",null)),Z=Y.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"has-logo":e.showLogo}},[e.showLogo?n("logo",{attrs:{collapse:e.isCollapse}}):e._e(),e._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"unique-opened":!1,"active-text-color":e.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},e._l(e.permission_routes,(function(e){return n("sidebar-item",{key:e.path,attrs:{item:e,"base-path":e.path}})})),1)],1)],1)},ee=[],te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):e._e(),e._v(" "),n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])])],1)],1)},ne=[],ae={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{title:"Hippo4j 1.5.0",logo:""}}},oe=ae,ie=(n("2cf1"),Object(f["a"])(oe,te,ne,!1,null,"fdfb555e",null)),re=ie.exports,ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.item.hidden?e._e():n("div",{staticClass:"menu-wrapper"},[!e.hasOneShowingChild(e.item.children,e.item)||e.onlyOneChild.children&&!e.onlyOneChild.noShowingChildren||e.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[e.item.meta?n("item",{attrs:{icon:e.item.meta&&e.item.meta.icon,title:this.$t(e.item.meta.title)}}):e._e()],1),e._v(" "),e._l(e.item.children,(function(t){return n("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:t,"base-path":e.resolvePath(t.path)}})}))],2):[e.onlyOneChild.meta?n("app-link",{attrs:{to:e.resolvePath(e.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!e.isNest},attrs:{index:e.resolvePath(e.onlyOneChild.path)}},[n("item",{attrs:{icon:e.onlyOneChild.meta.icon||e.item.meta&&e.item.meta.icon,title:this.$t(e.onlyOneChild.meta.title)}})],1)],1):e._e()]],2)},se=[],le=n("df7c"),ue=n.n(le),de=n("61f7"),me={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(e,t){var n=t.props,a=n.icon,o=n.title,i=[];return a&&i.push(e("svg-icon",{attrs:{"icon-class":a}})),o&&i.push(e("span",{slot:"title"},[o])),i}},he=me,fe=Object(f["a"])(he,a,o,!1,null,null,null),pe=fe.exports,be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("component",e._b({},"component",e.linkProps(e.to),!1),[e._t("default")],2)},ge=[],ve={props:{to:{type:String,required:!0}},methods:{linkProps:function(e){return Object(de["a"])(e)?{is:"a",href:e,target:"_blank",rel:"noopener"}:{is:"router-link",to:e}}}},we=ve,ye=Object(f["a"])(we,be,ge,!1,null,null,null),xe=ye.exports,_e={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var e=this,t=this.$refs.subMenu;if(t){var n=t.handleMouseleave;t.handleMouseleave=function(t){"mobile"!==e.device&&n(t)}}}}},ke={name:"SidebarItem",components:{Item:pe,AppLink:xe},mixins:[_e],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,a=t.filter((function(t){return!t.hidden&&(e.onlyOneChild=t,!0)}));return 1===a.length||0===a.length&&(this.onlyOneChild=Object(l["a"])(Object(l["a"])({},n),{},{path:"",noShowingChildren:!0}),!0)},resolvePath:function(e){return Object(de["a"])(e)?e:Object(de["a"])(this.basePath)?this.basePath:ue.a.resolve(this.basePath,e)}}},Me=ke,Te=Object(f["a"])(Me,ce,se,!1,null,null,null),Ce=Te.exports,Se=n("cf1e"),ze=n.n(Se),Ee={components:{SidebarItem:Ce,Logo:re},computed:Object(l["a"])(Object(l["a"])({},Object(x["b"])(["permission_routes","sidebar"])),{},{activeMenu:function(){var e=this.$route,t=e.meta,n=e.path;return t.activeMenu?t.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return ze.a},isCollapse:function(){return!this.sidebar.opened}})},Oe=Ee,Le=Object(f["a"])(Oe,X,ee,!1,null,null,null),Pe=Le.exports,Ae=n("4360"),je=document,Ie=je.body,Re=992,De={watch:{$route:function(e){"mobile"===this.device&&this.sidebar.opened&&Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var e=this.$_isMobile();e&&(Ae["a"].dispatch("app/toggleDevice","mobile"),Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var e=Ie.getBoundingClientRect();return e.width-1'});r.a.add(c);t["default"]=c},b6d1:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo1",use:"icon-threadPool_logo1-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},b775:function(e,t,n){"use strict";n("d3b7"),n("d9e2");var a=n("cee4"),o=n("5c96"),i=n("4360"),r=n("5f87"),c=n("a18c"),s=a["a"].create({baseURL:"",timeout:2e4});s.interceptors.request.use((function(e){return i["a"].getters.token&&(e.headers["Authorization"]=Object(r["a"])()),e}),(function(e){return console.log(e),Promise.reject(e)})),s.interceptors.response.use((function(e){var t=e.data;if("A000004"!==t.code){if("20000"!==t.code&&"0"!==t.code&&"200"!==t.code)return Object(o["Message"])({message:t.message||"Error",type:"error",duration:5e3}),"50008"!==t.code&&"50012"!==t.code&&"50014"!==t.code||o["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then((function(){i["a"].dispatch("user/resetToken").then((function(){location.reload()}))})),Promise.reject(new Error(t.message||"Error"));var n=e.data,a=n.code;if("0"===a){var s=n.data;return s}return"200"===a?n:t}Object(r["b"])(),Object(c["d"])(),alert(t.message),document.location.href="index.html"}),(function(e){return console.log("err"+e),Object(o["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)})),t["a"]=s},c34e:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-vessel",use:"icon-vessel-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},c653:function(e,t,n){var a={"./app.js":"d9cd","./errorLog.js":"4d49","./permission.js":"31c2","./settings.js":"0781","./user.js":"0f9a"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="c653"},cf1e:function(e,t,n){e.exports={menuText:"#bfcbd9",menuActiveText:"#409eff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},d393:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-audit",use:"icon-audit-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},d3f0:function(e,t,n){"use strict";var a=n("5530"),o=n("f0d9"),i=n.n(o),r=n("b2d6"),c=n.n(r),s={system:{login:"登 录",username:"用户名",password:"密码",logOut:"注销"},message:{requiredError:"这是必填项",success:"成功",createdSuccess:"创建成功",updateSuccess:"更新成功",deleteSuccess:"删除成功",deleteMessage:"此操作将删除 {name}, 是否继续?",selectMessage:"请选择{target}",NoDeletionPermissionTip:"请联系管理员删除",emptyWarning:"{name}不允许为空",queryFailure:"查询失败,请尝试刷新页面",updateFailure:"修改线程池失败",auditApprovedMessage:"此操作将接受线程池变更申请, 是否继续?",auditRejectionMessage:"此操作将拒绝线程池变更申请, 是否继续?",inputMessage:"请输入{target}"},common:{query:"搜索",insert:"添加",operation:"操作",create:"创建",edit:"编辑",delete:"删除",detail:"查看",cancel:"取消",confirm:"确认",reset:"重置",close:"关闭",refresh:"刷新",ok:"确定",num:"序号",createTime:"创建时间",updateTime:"修改时间",hint:"提示",info:"详情",stack:"堆栈",audit:"审核",yes:"是",no:"否"},report:{poolInstance:"线程池实例",user:"登录用户",role:"用户角色",tenants:"所属租户",threadPoolId:"线程池",taskCount:"任务数",inst:"实例数"},tenantManage:{tenant:"租户",tenantRequired:"租户(必填)",tenantName:"租户名称",owner:"负责人",tenantIntro:"租户简介"},projectManage:{item:"项目",itemRequired:"项目(必填)",itemName:"项目名称",owner:"负责人",itemIntro:"项目简介"},threadPool:{threadPool:"线程池",threadPoolRequired:"线程池(必填)",coreSize:"核心线程",maximumSize:"最大线程",queueType:"队列类型",queueCapacity:"队列容量",rejectedHandler:"拒绝策略",executionTimeout:"执行超时",executionTimeoutUnit:"执行超时 (毫秒)",keepAliveTime:"空闲回收",keepAliveTimeUnit:"空闲回收(秒)",isTimeout:"是否超时",timeout:"超时",noTimeout:"不超时",isAlarm:"是否报警",alarm:"报警",noAlarm:"不报警",activeAlarm:"活跃报警",capacityAlarm:"容量报警",customRejectedHandler:"自定义拒绝策略",customRejectedHandlerTip:"请输入自定义 SPI 拒绝策略标识",threadsNumErrorTip:"最大线程必须大于等于核心线程"},threadPoolInstance:{instanceID:"实例标识",active:"Active",stack:"堆栈",basicInformation:"基础信息",runningState:"运行状态",activeID:"环境标识",instanceHost:"实例Host",threadPoolID:"线程池",LoadInformation:"负载信息",CurrentLoad:"当前负载",PeakLoad:"峰值负载",RemainingMemory:"剩余内存",MemoryRatio:"内存占比",threadInformation:"线程信息",currentSize:"当前线程",activeSize:"活跃线程",largestSize:"同存最大线程",queueInformation:"队列信息",queueCount:"队列元素",queueRemainingCapacity:"队列剩余容量",queueType:"阻塞队列",otherInformation:"其它信息",totalTask:"任务总量",totalRejection:"拒绝次数",lastUpdateTime:"最后更新时间",allowCoreThreadTimeOut:"线程超时",changeAll:"全部修改",stackRequestFail:"当前线程池暂无堆栈信息"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(必填)",noResultsYet:"暂无结果"},frameworkThreadPool:{threadPoolIDRequired:"线程池标识(必填)",threadPoolID:"线程池标识",threadPoolType:"线程池类型"},threadPoolAudit:{changeType:"变更类型",modifiedBy:"修改人",auditStatus:"审核状态",reviewer:"审核人",submissionTime:"提交时间",auditTime:"审核时间",unaudited:"待审核",expired:"失效",auditApproved:"审核通过",auditRejection:"审核拒绝",manage:"管理",instance:"实例",container:"容器",framework:"框架",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",containerThreadPool:"容器线程池",frameworkThreadPool:"框架线程池"},notifyAlarm:{platform:"通知平台",type:"通知类型",enabled:"是否启用",interval:"通知间隔",receiver:"接收者",enabling:"启用",disabling:"禁用",token:"Token",receiverTip:"多个接收者使用英文逗号 , 分割 (注意不要有空格)\n- 钉钉:填写手机号\n- 企微:填写user_id会以@的消息发给用户,否则填写姓名,如:小马哥\n- 飞书:填写ou_开头用户唯一标识会以@的消息发给用户,填写手机号则是普通的@"},userAuthority:{userName:"用户名",role:"角色",password:"密码"},logManage:{bizType:"业务类型",bizID:"业务标识",operator:"操作人",logContent:"日志内容"},menu:{dashboard:"运行报表",tenantManage:"租户管理",itemManage:"项目管理",dynamicThreadPool:"动态线程池",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",threadPoolMonitor:"线程池监控",containerThreadPool:"容器线程池",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"框架线程池",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"rabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"线程池审核",notifyAlarm:"通知报警",userAuthority:"用户权限",logManage:"日志管理",officialWebsite:"官网外链"}},l={system:{login:"Login Form",username:"Username",password:"Password",logOut:"Log Out"},message:{requiredError:"this is required",success:"Success",createdSuccess:"Created Successfully",updateSuccess:"Update Successfully",deleteSuccess:"Delete Successfully",deleteMessage:"This action will delete {name}, Do you want to continue?",selectMessage:"Please select a {target}",NoDeletionPermissionTip:"Contact the administrator to delete it",emptyWarning:"The '{name}' cannot be empty",queryFailure:"The query fails. Please refresh the page",updateFailure:"Failed to modify thread-pool",auditApprovedMessage:"This operation will accept thread-pool change requests. Do you want to continue?",auditRejectionMessage:"This operation will reject the thread-pool change request. Do you want to continue?",inputMessage:"Please input {target}"},common:{query:"Query",insert:"Insert",operation:"Operation",create:"Create",edit:"Edit",delete:"Delete",detail:"Detail",cancel:"Cancel",confirm:"Confirm",reset:"Reset",ok:"Ok",num:"Num",close:"Close",refresh:"Refresh",createTime:"Create Time",updateTime:"Update Time",hint:"Warning",info:"Info",stack:"Stack",audit:"audit",yes:"Yes",no:"No"},report:{poolInstance:"Pool Instance",user:"User",role:"Role",tenants:"Tenants",threadPoolId:"ThreadPool ID",taskCount:"Task Count",inst:"Instance"},tenantManage:{tenant:"Tenant",tenantRequired:"Tenant(Required)",tenantName:"Tenant Name",owner:"Owner",tenantIntro:"Tenant Intro"},projectManage:{item:"Item",itemRequired:"Item(Required)",itemName:"Item Name",owner:"Owner",itemIntro:"Item Intro"},threadPool:{threadPool:"ThreadPool",threadPoolRequired:"ThreadPool(Required)",coreSize:"Core Size",maximumSize:"Maximum Size",queueType:"Queue Type",queueCapacity:"Queue Capacity",rejectedHandler:"Rejected Handler",executionTimeout:"Execution Timeout",executionTimeoutUnit:"Execution Timeout (ms)",keepAliveTime:"Keep Alive Time",keepAliveTimeUnit:"Keep Alive Time(seconds)",isTimeout:"Is Timeout",timeout:"Timeout",noTimeout:"No Timeout",isAlarm:"Is Alarm",alarm:"Alarm",noAlarm:"No Alarm",activeAlarm:"Active Alarm",capacityAlarm:"Capacity Alarm",customRejectedHandler:"Custom Rejected Handler",customRejectedHandlerTip:"Please enter a custom SPI Deny Policy ID",threadsNumErrorTip:"The maximum thread must be greater than or equal to the core thread"},threadPoolInstance:{instanceID:"Instance ID",active:"Active",stack:"Stack",basicInformation:"Basic Information",runningState:"Running state",activeID:"Active",instanceHost:"Instance Host",threadPoolID:"ThreadPool ID",LoadInformation:"Load Information",CurrentLoad:"Current Load",PeakLoad:"Peak Load",RemainingMemory:"Remaining Memory",MemoryRatio:"Memory Ratio",threadInformation:"Thread Information",currentSize:"Current Size",activeSize:"Active Size",largestSize:"Largest Size",queueInformation:"Queue Information",queueCount:"Queue Count",queueRemainingCapacity:"Queue Remaining Capacity",queueType:"Queue Type",otherInformation:"Other Information",totalTask:"Total Task",totalRejection:"Total Rejection",lastUpdateTime:"Last update time",allowCoreThreadTimeOut:"Allow Core Thread Time Out",changeAll:"Change All",stackRequestFail:"The current thread-pool has no stack information"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(Required)",noResultsYet:"No results yet"},frameworkThreadPool:{threadPoolIDRequired:"ThreadPool ID(Required)",threadPoolID:"ThreadPool ID",threadPoolType:"ThreadPool Type"},threadPoolAudit:{changeType:"Change Type",modifiedBy:"Modified by",auditStatus:"Audit Status",reviewer:"Reviewer",submissionTime:"Submission Time",auditTime:"Audit Time",unaudited:"Unaudited",expired:"Expired",auditApproved:"Audit Approved",auditRejection:"Audit Rejection",manage:"Manage",instance:"Instance",container:"Container",framework:"Framework",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",containerThreadPool:"Container ThreadPool",frameworkThreadPool:"Framework ThreadPool"},notifyAlarm:{platform:"Platform",type:"Type",enabled:"Enabled",interval:"Interval",receiver:"Receiver",enabling:"Enabling",disabling:"Disabling",token:"Token",receiverTip:"Use English commas for multiple recipients and separate them (be careful not to have spaces)\n-Ding: Fill in the phone number\n-WeChat: Fill in 'userid' and it will be sent to the user as a @ message, otherwise fill in the name, such as: XiaomaGe\n-Lark: Fill in with 'ou_' the unique user ID at the beginning will be sent to the user as a @ message, and filling in the phone number is normal@"},userAuthority:{userName:"User Name",role:"Role",password:"Password"},logManage:{bizType:"Biz Type",bizID:"Biz ID",operator:"Operator",logContent:"Log Content"},menu:{dashboard:"Dashboard",tenantManage:"Tenant Manage",itemManage:"Item Manage",dynamicThreadPool:"Dynamic ThreadPool",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",threadPoolMonitor:"ThreadPool Monitor",containerThreadPool:"Container ThreadPool",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"Framework ThreadPool",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"RabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"ThreadPool Audit",notifyAlarm:"Notify Alarm",userAuthority:"User Authority",logManage:"Log Manage",officialWebsite:"Official Website"}};n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var u=localStorage.getItem("locale_lang"),d={locale:u||"en",messages:{zh:Object(a["a"])(Object(a["a"])({},s),i.a),en:Object(a["a"])(Object(a["a"])({},l),c.a)}},m=function(){return[{lang:"en",name:"English"},{lang:"zh",name:"简体中文"}]}},d49d:function(e,t,n){"use strict";n("8326")},d9cd:function(e,t,n){"use strict";n.r(t);var a=n("a78e"),o=n.n(a),i={sidebar:{opened:!o.a.get("sidebarStatus")||!!+o.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop",size:o.a.get("size")||"medium"},r={TOGGLE_SIDEBAR:function(e){e.sidebar.opened=!e.sidebar.opened,e.sidebar.withoutAnimation=!1,e.sidebar.opened?o.a.set("sidebarStatus",1):o.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(e,t){o.a.set("sidebarStatus",0),e.sidebar.opened=!1,e.sidebar.withoutAnimation=t},TOGGLE_DEVICE:function(e,t){e.device=t},SET_SIZE:function(e,t){e.size=t,o.a.set("size",t)}},c={toggleSideBar:function(e){var t=e.commit;t("TOGGLE_SIDEBAR")},closeSideBar:function(e,t){var n=e.commit,a=t.withoutAnimation;n("CLOSE_SIDEBAR",a)},toggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)},setSize:function(e,t){var n=e.commit;n("SET_SIZE",t)}};t["default"]={namespaced:!0,state:i,mutations:r,actions:c}},dbd7:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-lessee",use:"icon-lessee-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},e720:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-pool",use:"icon-pool-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ea93:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-dashboard2",use:"icon-dashboard2-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ed08:function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));var a=n("53ca");n("ac1f"),n("00b4"),n("d3b7"),n("25f0"),n("5319"),n("14d9"),n("a15b"),n("d81d"),n("b64b"),n("fb6a"),n("159b"),n("d9e2"),n("a630"),n("3ca3"),n("6062"),n("ddb0"),n("466d"),n("4d63"),n("c607"),n("2c3e");function o(e,t){if(0===arguments.length)return null;var n,o=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(a["a"])(e)?n=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),n=new Date(e));var i={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=o.replace(/{(y|m|d|h|i|s|a)+}/g,(function(e,t){var n=i[t];return"a"===t?["日","一","二","三","四","五","六"][n]:(e.length>0&&n<10&&(n="0"+n),n||0)}));return r}function i(e,t){e=10===(""+e).length?1e3*parseInt(e):+e;var n=new Date(e),a=Date.now(),i=(a-n)/1e3;return i<30?"刚刚":i<3600?Math.ceil(i/60)+"分钟前":i<86400?Math.ceil(i/3600)+"小时前":i<172800?"1天前":t?o(e,t):n.getMonth()+1+"月"+n.getDate()+"日"+n.getHours()+"时"+n.getMinutes()+"分"}function r(e,t,n){var a,o,i,r,c,s=function s(){var l=+new Date-r;l0?a=setTimeout(s,t-l):(a=null,n||(c=e.apply(i,o),a||(i=o=null)))};return function(){for(var o=arguments.length,l=new Array(o),u=0;u'});r.a.add(c);t["default"]=c}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.6236115b.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.6236115b.js new file mode 100644 index 00000000..f339b3d4 --- /dev/null +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.6236115b.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-078a7535"],{3737:function(e,t,i){"use strict";i.d(t,"c",(function(){return a})),i.d(t,"d",(function(){return o})),i.d(t,"a",(function(){return r})),i.d(t,"b",(function(){return l}));var n=i("b775");function a(e){return Object(n["a"])({url:"/hippo4j/v1/cs/item/query/page",method:"post",data:e})}function o(e){return Object(n["a"])({url:"/hippo4j/v1/cs/item/update",method:"post",data:e})}function r(e){return Object(n["a"])({url:"/hippo4j/v1/cs/item/save",method:"post",data:e})}function l(e){return Object(n["a"])({url:"/hippo4j/v1/cs/item/delete/"+e[0]+"/"+e[1],method:"delete"})}},"395c":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"app-container"},[i("div",{staticClass:"filter-container"},[i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("tenantManage.tenantRequired"),filterable:""},on:{change:function(t){return e.tenantSelectList()}},model:{value:e.listQuery.tenantId,callback:function(t){e.$set(e.listQuery,"tenantId",t)},expression:"listQuery.tenantId"}},e._l(e.tenantOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("projectManage.itemRequired"),filterable:""},on:{change:function(t){return e.itemSelectList()}},model:{value:e.listQuery.itemId,callback:function(t){e.$set(e.listQuery,"itemId",t)},expression:"listQuery.itemId"}},e._l(e.itemOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("frameworkThreadPool.threadPoolIDRequired"),filterable:""},model:{value:e.listQuery.threadPoolKey,callback:function(t){e.$set(e.listQuery,"threadPoolKey",t)},expression:"listQuery.threadPoolKey"}},e._l(e.threadPoolKeyOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-button",{directives:[{name:"waves",rawName:"v-waves"}],staticClass:"filter-item",attrs:{type:"primary",icon:"el-icon-search"},on:{click:e.fetchData}},[e._v("\n "+e._s(e.$t("common.query"))+"\n ")]),e._v(" "),i("el-button",{directives:[{name:"waves",rawName:"v-waves"}],staticClass:"filter-item",staticStyle:{"margin-left":"10px"},attrs:{type:"primary",icon:"el-icon-refresh"},on:{click:e.refreshData}},[e._v("\n "+e._s(e.$t("common.reset"))+"\n ")])],1),e._v(" "),i("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.listLoading,expression:"listLoading"}],attrs:{data:e.list,"element-loading-text":"Loading",border:"",fit:"","max-height":"714","highlight-current-row":""}},[i("el-table-column",{attrs:{label:e.$t("common.num"),fixed:"",width:"95"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.$index+1))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.instanceID"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"primary",underline:!1}},[e._v(e._s(t.row.identify))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.active"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-tag",{attrs:{type:e._f("statusFilter")(t.row.active)}},[e._v("\n "+e._s(t.row.active)+"\n ")])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("frameworkThreadPool.threadPoolID")},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.threadPoolKey)+"\n ")]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.coreSize")},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(t.row.coreSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.maximumSize"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(t.row.maximumSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("common.operation"),width:"180","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.row;return[i("el-button",{attrs:{type:"text",size:"small"},on:{click:function(t){return e.handleUpdate(n)}}},[e._v("\n "+e._s(e.$t("common.edit"))+"\n ")])]}}])})],1),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maximumSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.maximumSize,callback:function(t){e.$set(e.temp,"maximumSize",t)},expression:"temp.maximumSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.temp.allUpdate,callback:function(t){e.$set(e.temp,"allUpdate",t)},expression:"temp.allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.updateData()}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v("Confirm")])],1)],1)],1)},a=[],o=(i("14d9"),i("3737")),r=i("dd71"),l=i("4d85"),s=i("47ec"),d=i("6724"),u={name:"JobProject",directives:{waves:d["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]}},data:function(){return{isRejectShow:!1,list:null,listLoading:!1,total:0,listQuery:{itemId:"",mark:"Hystrix",tenantId:"",threadPoolKey:""},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,runTimeTemp:{},typeOptions:[{key:"Dubbo",display_name:"Dubbo"},{key:"RocketMQ",display_name:"RocketMQ"},{key:"RocketMQSpringCloudStream",display_name:"RocketMQSpringCloudStream"},{key:"RabbitMQ",display_name:"RabbitMQ"},{key:"RabbitMQSpringCloudStream",display_name:"RabbitMQSpringCloudStream"}],tenantOptions:[],instanceDialogFormVisible:!1,threadPoolOptions:[],itemOptions:[],threadPoolKeyOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{coreSize:[{required:!0,message:"this is required",trigger:"blur"}],maximumSize:[{required:!0,message:"this is required",trigger:"blur"}]},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,allUpdate:"1",customRejectedType:null},visible:!0}},created:function(){this.initSelect()},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listQuery.mark?this.listQuery.tenantId?this.listQuery.itemId?this.listQuery.threadPoolKey?(this.listLoading=!0,s["a"](this.listQuery).then((function(t){null==t&&(e.listLoading=!1),e.list=t,e.listLoading=!1}))):this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("frameworkThreadPool.threadPoolID")})):this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("projectManage.item")})):this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("tenantManage.tenant")})):this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("frameworkThreadPool.threadPoolType")}))},initSelect:function(){var e=this;r["c"]({size:this.size}).then((function(t){for(var i=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticClass:"filter-item",staticStyle:{display:"block"},attrs:{placeholder:e.$t("tenantManage.tenant"),filterable:"",clearable:"",disabled:"create"!==e.dialogStatus},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-input",{attrs:{disabled:"create"!==e.dialogStatus,placeholder:e.$t("projectManage.item")},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemName"),prop:"itemName"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.itemName")},model:{value:e.temp.itemName,callback:function(t){e.$set(e.temp,"itemName",t)},expression:"temp.itemName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.owner"),prop:"owner"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.owner")},model:{value:e.temp.owner,callback:function(t){e.$set(e.temp,"owner",t)},expression:"temp.owner"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemIntro"),prop:"itemDesc"}},[a("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:e.$t("projectManage.itemIntro")},model:{value:e.temp.itemDesc,callback:function(t){e.$set(e.temp,"itemDesc",t)},expression:"temp.itemDesc"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],o=(a("fb6a"),a("14d9"),a("3737")),r=a("dd71"),s=a("6724"),l=a("333d"),c={name:"JobProject",components:{Pagination:l["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>26?e.slice(0,26)+"...":e:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],dialogStatus:"",isEditDisabled:!1,textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var e=this;this.listLoading=!0,o["c"](this.listQuery).then((function(t){var a=t.records,n=t.total;e.total=n,e.list=a,e.listLoading=!1}))},initSelect:function(){var e=this;r["c"]({}).then((function(t){for(var a=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticClass:"filter-item",staticStyle:{display:"block"},attrs:{placeholder:e.$t("tenantManage.tenant"),filterable:"",clearable:"",disabled:"create"!==e.dialogStatus},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-input",{attrs:{disabled:"create"!==e.dialogStatus,placeholder:e.$t("projectManage.item")},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemName"),prop:"itemName"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.itemName")},model:{value:e.temp.itemName,callback:function(t){e.$set(e.temp,"itemName",t)},expression:"temp.itemName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.owner"),prop:"owner"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.owner")},model:{value:e.temp.owner,callback:function(t){e.$set(e.temp,"owner",t)},expression:"temp.owner"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemIntro"),prop:"itemDesc"}},[a("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:e.$t("projectManage.itemIntro")},model:{value:e.temp.itemDesc,callback:function(t){e.$set(e.temp,"itemDesc",t)},expression:"temp.itemDesc"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],o=(a("fb6a"),a("14d9"),a("3737")),r=a("dd71"),s=a("6724"),l=a("333d"),c={name:"JobProject",components:{Pagination:l["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>26?e.slice(0,26)+"...":e:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],dialogStatus:"",isEditDisabled:!1,textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var e=this;this.listLoading=!0,o["c"](this.listQuery).then((function(t){var a=t.records,n=t.total;e.total=n,e.list=a,e.listLoading=!1}))},initSelect:function(){var e=this;r["c"]({}).then((function(t){for(var a=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolManagerDialog},on:{"update:visible":function(e){t.threadPoolManagerDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"140px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maxSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isAlarm"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.isAlarm,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[t._v("\n "+t._s(t.detailInfo.livenessAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[t._v("\n "+t._s(t.detailInfo.capacityAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")])],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolInstanceDialog},on:{"update:visible":function(e){t.threadPoolInstanceDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"80px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{type:"primary",disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.webThreadPoolDialog},on:{"update:visible":function(e){t.webThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"modifyAll"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.adapterThreadPoolDialog},on:{"update:visible":function(e){t.adapterThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:"mark",prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.mark)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v("Confirm")])],1)],1)],1)},a=[],n=(i("14d9"),i("3737")),l=i("dd71"),r=i("b775");function s(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/page",method:"post",data:t})}function d(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify",method:"post",data:t})}function u(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/detail?id="+t,method:"get",data:t})}var c=i("6724"),p=i("333d"),m=(i("4d85"),i("47ec"),{name:"JobProject",components:{Pagination:p["a"]},directives:{waves:c["a"]},filters:{modifyAllTagFilter:function(t){var e={true:"success",false:"danger"};return e[t]},defaultExecuteTimeoutValue:function(t){return void 0==t||null==t?0:t},enableFilter:function(t,e){return 1==t?e.$t("common.yes"):0==t?e.$t("common.no"):void 0},alarmFilter:function(t){return 1==t?"报警":0==t?"不报警":void 0},queueTypeFilter:function(t){return"1"==t?"ArrayBlockingQueue":"2"==t?"LinkedBlockingQueue":"3"==t?"LinkedBlockingDeque":"4"==t?"SynchronousQueue":"5"==t?"LinkedTransferQueue":"6"==t?"PriorityBlockingQueue":"9"==t?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(t){return"1"==t?"CallerRunsPolicy":"2"==t?"AbortPolicy":"3"==t?"DiscardPolicy":"4"==t?"DiscardOldestPolicy":"5"==t?"RunsOldestTaskPolicy":"6"==t?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+t},modifyTypeFilter:function(t,e){return console.log(e),1==t?e.$t("threadPoolAudit.manage"):2==t?e.$t("threadPoolAudit.instance"):3==t?e.$t("threadPoolAudit.container"):4==t?e.$t("threadPoolAudit.framework"):void 0},verifyStatusFilter:function(t,e){return 0==t?e.$t("threadPoolAudit.unaudited"):1==t?e.$t("threadPoolAudit.auditApproved"):2==t?e.$t("threadPoolAudit.auditRejection"):3==t?e.$t("threadPoolAudit.expired"):void 0},modifyAllFilter:function(t){return 0==t?"N":1==t?"Y":void 0}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},detailInfo:{},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!0,threadPoolManagerDialog:!1,threadPoolInstanceDialog:!1,webThreadPoolDialog:!1,adapterThreadPoolDialog:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{1:this.$t("threadPoolAudit.threadPoolManage"),2:this.$t("threadPoolAudit.threadPoolInstance"),3:this.$t("threadPoolAudit.containerThreadPool"),4:this.$t("threadPoolAudit.frameworkThreadPool")},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0,that:this}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var t=this;this.listLoading=!0,s(this.listQuery).then((function(e){var i=e.records,o=e.total;t.total=o,t.list=i,t.listLoading=!1}))},initSelect:function(){var t=this;l["c"]({size:this.size}).then((function(e){for(var i=e.records,o=0;o0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolManagerDialog},on:{"update:visible":function(e){t.threadPoolManagerDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"140px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maxSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isAlarm"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.isAlarm,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[t._v("\n "+t._s(t.detailInfo.livenessAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[t._v("\n "+t._s(t.detailInfo.capacityAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")])],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolInstanceDialog},on:{"update:visible":function(e){t.threadPoolInstanceDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"80px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{type:"primary",disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.webThreadPoolDialog},on:{"update:visible":function(e){t.webThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"modifyAll"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.adapterThreadPoolDialog},on:{"update:visible":function(e){t.adapterThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:"mark",prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.mark)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v("Confirm")])],1)],1)],1)},a=[],n=(i("14d9"),i("3737")),l=i("dd71"),r=i("b775");function s(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/page",method:"post",data:t})}function d(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify",method:"post",data:t})}function u(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/detail?id="+t,method:"get",data:t})}var c=i("6724"),p=i("333d"),m=(i("4d85"),i("47ec"),{name:"JobProject",components:{Pagination:p["a"]},directives:{waves:c["a"]},filters:{modifyAllTagFilter:function(t){var e={true:"success",false:"danger"};return e[t]},defaultExecuteTimeoutValue:function(t){return void 0==t||null==t?0:t},enableFilter:function(t,e){return 1==t?e.$t("common.yes"):0==t?e.$t("common.no"):void 0},alarmFilter:function(t){return 1==t?"报警":0==t?"不报警":void 0},queueTypeFilter:function(t){return"1"==t?"ArrayBlockingQueue":"2"==t?"LinkedBlockingQueue":"3"==t?"LinkedBlockingDeque":"4"==t?"SynchronousQueue":"5"==t?"LinkedTransferQueue":"6"==t?"PriorityBlockingQueue":"9"==t?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(t){return"1"==t?"CallerRunsPolicy":"2"==t?"AbortPolicy":"3"==t?"DiscardPolicy":"4"==t?"DiscardOldestPolicy":"5"==t?"RunsOldestTaskPolicy":"6"==t?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+t},modifyTypeFilter:function(t,e){return console.log(e),1==t?e.$t("threadPoolAudit.manage"):2==t?e.$t("threadPoolAudit.instance"):3==t?e.$t("threadPoolAudit.container"):4==t?e.$t("threadPoolAudit.framework"):void 0},verifyStatusFilter:function(t,e){return 0==t?e.$t("threadPoolAudit.unaudited"):1==t?e.$t("threadPoolAudit.auditApproved"):2==t?e.$t("threadPoolAudit.auditRejection"):3==t?e.$t("threadPoolAudit.expired"):void 0},modifyAllFilter:function(t){return 0==t?"N":1==t?"Y":void 0}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},detailInfo:{},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!0,threadPoolManagerDialog:!1,threadPoolInstanceDialog:!1,webThreadPoolDialog:!1,adapterThreadPoolDialog:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{1:this.$t("threadPoolAudit.threadPoolManage"),2:this.$t("threadPoolAudit.threadPoolInstance"),3:this.$t("threadPoolAudit.containerThreadPool"),4:this.$t("threadPoolAudit.frameworkThreadPool")},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0,that:this}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var t=this;this.listLoading=!0,s(this.listQuery).then((function(e){var i=e.records,o=e.total;t.total=o,t.list=i,t.listLoading=!1}))},initSelect:function(){var t=this;l["c"]({size:this.size}).then((function(e){for(var i=e.records,o=0;o0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"105px"}},[e.isEdit?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.itemTempSelectList()}},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.threadPool"),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}},e._l(e.threadPoolTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.platform"),prop:"platform"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.platform,callback:function(t){e.$set(e.temp,"platform",t)},expression:"temp.platform"}},[n("el-radio-button",{attrs:{label:"DING"}},[e._v("DING")]),e._v(" "),n("el-radio-button",{attrs:{label:"LARK"}},[e._v("LARK")]),e._v(" "),n("el-radio-button",{attrs:{label:"WECHAT"}},[e._v("WECHAT")])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.enabled"),prop:"enable"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.enable,callback:function(t){e.$set(e.temp,"enable",t)},expression:"temp.enable"}},[n("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("notifyAlarm.enabling")))]),e._v(" "),n("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("notifyAlarm.disabling")))])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.type"),prop:"configType"}},[[n("div",[n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"CONFIG",border:""},model:{value:e.temp.configType,callback:function(t){e.$set(e.temp,"configType",t)},expression:"temp.configType"}}),e._v(" "),n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"ALARM",border:""},model:{value:e.temp.alarmType,callback:function(t){e.$set(e.temp,"alarmType",t)},expression:"temp.alarmType"}})],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.interval"),prop:"interval"}},[n("el-input-number",{attrs:{placeholder:e.$t("notifyAlarm.interval")+" / Min","controls-position":"right",min:0,max:999999,disabled:!0!==e.temp.alarmType},model:{value:e.temp.interval,callback:function(t){e.$set(e.temp,"interval",t)},expression:"temp.interval"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.token"),prop:"secretKey"}},[n("el-input",{attrs:{type:"textarea",placeholder:e.$t("message.inputMessage",{target:e.$t("notifyAlarm.token")}),"show-word-limit":""},model:{value:e.temp.secretKey,callback:function(t){e.$set(e.temp,"secretKey",t)},expression:"temp.secretKey"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.receiver"),prop:"receives"}},[n("el-input",{attrs:{type:"textarea",autosize:{minRows:4,maxRows:4},placeholder:e.$t("notifyAlarm.receiverTip")},model:{value:e.temp.receives,callback:function(t){e.$set(e.temp,"receives",t)},expression:"temp.receives"}})],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cleanForm()}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],r=(n("fb6a"),n("14d9"),n("b64b"),n("3737")),o=n("dd71"),l=n("b775");function s(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/query/page",method:"post",data:e})}function c(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/update",method:"post",data:e})}function u(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/save",method:"post",data:e})}function d(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/remove",method:"delete",data:e})}function p(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/enable/"+e.id+"/"+e.enable,method:"post"})}var m=n("4d85"),f=n("6724"),h=n("333d"),v={name:"JobProject",components:{Pagination:h["a"]},directives:{waves:f["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>22?e.slice(0,22)+"...":e:""},intervals:function(e){return null==e||""==e?"-":e}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:""},isEdit:!1,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],itemOptions:[],itemTempOptions:[],identifyOptions:[],threadPoolTempOptions:[],threadPoolOptions:[],platformTypes:[{key:"DING",display_name:"DING"},{key:"LARK",display_name:"LARK"},{key:"WECHAT",display_name:"WECHAT"}],typeTypes:[{key:"CONFIG",display_name:"CONFIG"},{key:"ALARM",display_name:"ALARM"}],enableTypes:[{key:1,display_name:"启用"},{key:0,display_name:"停用"}],dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",interval:void 0,configType:!1,alarmType:!1},visible:!0,size:500}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],receives:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],secretKey:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],platform:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],configType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],enable:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},methods:{fetchData:function(){var e=this;this.listLoading=!0,s(this.listQuery).then((function(t){var n=t.records,a=t.total;e.total=a,e.list=n,e.listLoading=!1}))},initSelect:function(){var e=this;o["c"]({}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"105px"}},[e.isEdit?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.itemTempSelectList()}},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.threadPool"),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}},e._l(e.threadPoolTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.platform"),prop:"platform"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.platform,callback:function(t){e.$set(e.temp,"platform",t)},expression:"temp.platform"}},[n("el-radio-button",{attrs:{label:"DING"}},[e._v("DING")]),e._v(" "),n("el-radio-button",{attrs:{label:"LARK"}},[e._v("LARK")]),e._v(" "),n("el-radio-button",{attrs:{label:"WECHAT"}},[e._v("WECHAT")])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.enabled"),prop:"enable"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.enable,callback:function(t){e.$set(e.temp,"enable",t)},expression:"temp.enable"}},[n("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("notifyAlarm.enabling")))]),e._v(" "),n("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("notifyAlarm.disabling")))])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.type"),prop:"configType"}},[[n("div",[n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"CONFIG",border:""},model:{value:e.temp.configType,callback:function(t){e.$set(e.temp,"configType",t)},expression:"temp.configType"}}),e._v(" "),n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"ALARM",border:""},model:{value:e.temp.alarmType,callback:function(t){e.$set(e.temp,"alarmType",t)},expression:"temp.alarmType"}})],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.interval"),prop:"interval"}},[n("el-input-number",{attrs:{placeholder:e.$t("notifyAlarm.interval")+" / Min","controls-position":"right",min:0,max:999999,disabled:!0!==e.temp.alarmType},model:{value:e.temp.interval,callback:function(t){e.$set(e.temp,"interval",t)},expression:"temp.interval"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.token"),prop:"secretKey"}},[n("el-input",{attrs:{type:"textarea",placeholder:e.$t("message.inputMessage",{target:e.$t("notifyAlarm.token")}),"show-word-limit":""},model:{value:e.temp.secretKey,callback:function(t){e.$set(e.temp,"secretKey",t)},expression:"temp.secretKey"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.receiver"),prop:"receives"}},[n("el-input",{attrs:{type:"textarea",autosize:{minRows:4,maxRows:4},placeholder:e.$t("notifyAlarm.receiverTip")},model:{value:e.temp.receives,callback:function(t){e.$set(e.temp,"receives",t)},expression:"temp.receives"}})],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cleanForm()}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],r=(n("fb6a"),n("14d9"),n("b64b"),n("3737")),o=n("dd71"),l=n("b775");function s(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/query/page",method:"post",data:e})}function c(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/update",method:"post",data:e})}function u(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/save",method:"post",data:e})}function d(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/remove",method:"delete",data:e})}function p(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/enable/"+e.id+"/"+e.enable,method:"post"})}var m=n("4d85"),f=n("6724"),h=n("333d"),v={name:"JobProject",components:{Pagination:h["a"]},directives:{waves:f["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>22?e.slice(0,22)+"...":e:""},intervals:function(e){return null==e||""==e?"-":e}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:""},isEdit:!1,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],itemOptions:[],itemTempOptions:[],identifyOptions:[],threadPoolTempOptions:[],threadPoolOptions:[],platformTypes:[{key:"DING",display_name:"DING"},{key:"LARK",display_name:"LARK"},{key:"WECHAT",display_name:"WECHAT"}],typeTypes:[{key:"CONFIG",display_name:"CONFIG"},{key:"ALARM",display_name:"ALARM"}],enableTypes:[{key:1,display_name:"启用"},{key:0,display_name:"停用"}],dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],receives:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],secretKey:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],platform:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],configType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],enable:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",interval:void 0,configType:!1,alarmType:!1},visible:!0}},created:function(){this.fetchData(),this.initSelect()},methods:{fetchData:function(){var e=this;this.listLoading=!0,s(this.listQuery).then((function(t){var n=t.records,a=t.total;e.total=a,e.list=n,e.listLoading=!1}))},initSelect:function(){var e=this;o["c"]({}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),n("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.dialogFormVisible},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:t.rules,model:t.temp,"label-width":"120px"}},[n("el-form-item",{attrs:{label:t.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-input",{attrs:{disabled:"create"!==t.dialogStatus,placeholder:t.$t("tenantManage.tenant")},model:{value:t.temp.tenantId,callback:function(e){t.$set(t.temp,"tenantId",e)},expression:"temp.tenantId"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantName"),prop:"tenantName"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.tenantName")},model:{value:t.temp.tenantName,callback:function(e){t.$set(t.temp,"tenantName",e)},expression:"temp.tenantName"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.owner"),prop:"owner"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.owner")},model:{value:t.temp.owner,callback:function(e){t.$set(t.temp,"owner",e)},expression:"temp.owner"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantIntro"),prop:"tenantDesc"}},[n("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:t.$t("tenantManage.tenantIntro")},model:{value:t.temp.tenantDesc,callback:function(e){t.$set(t.temp,"tenantDesc",e)},expression:"temp.tenantDesc"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v(" "+t._s(t.$t("common.cancel"))+" ")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){"create"===t.dialogStatus?t.createData():t.updateData()}}},[t._v("\n "+t._s(t.$t("common.confirm"))+"\n ")])],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v(t._s(t.$t("common.confirm")))])],1)],1)],1)},i=[],o=(n("fb6a"),n("dd71")),l=n("6724"),r=n("333d"),s={name:"JobProject",components:{Pagination:r["a"]},directives:{waves:l["a"]},filters:{statusFilter:function(t){var e={published:"success",draft:"gray",deleted:"danger"};return e[t]},ellipsis:function(t){return t?t.length>26?t.slice(0,26)+"...":t:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tenantId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var t=this;this.listLoading=!0,o["c"](this.listQuery).then((function(e){var n=e.records,a=e.total;t.total=a,t.list=n,t.listLoading=!1}))},resetTemp:function(){this.temp={id:void 0,tenantName:"",tenantDesc:""}},handleCreate:function(){var t=this;this.resetTemp(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick((function(){t.$refs["dataForm"].clearValidate()}))},createData:function(){var t=this;this.$refs["dataForm"].validate((function(e){e&&o["a"](t.temp).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:t.$t("message.success"),message:t.$t("message.createdSuccess"),type:"success",duration:2e3})}))}))},handleUpdate:function(t){var e=this;this.temp=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick((function(){e.$refs["dataForm"].clearValidate()}))},updateData:function(){var t=this;this.$refs["dataForm"].validate((function(e){if(e){var n=Object.assign({},t.temp);o["d"](n).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:"Success",message:"Update Successfully",type:"success",duration:2e3})}))}}))},openDelConfirm:function(t){return this.$confirm(this.$t("message.deleteMessage",{name:t}),this.$t("common.hint"),{confirmButtonText:this.$t("common.ok"),cancelButtonText:this.$t("common.cancel"),type:"warning"})},handleDelete:function(t){var e=this;this.openDelConfirm(t.tenantId).then((function(){o["b"](t.tenantId).then((function(t){e.fetchData(),e.$notify({title:"Success",message:"Delete Successfully",type:"success",duration:2e3})}))}))}}},c=s,u=n("2877"),d=Object(u["a"])(c,a,i,!1,null,null,null);e["default"]=d.exports},6724:function(t,e,n){"use strict";n("8d41");var a="@@wavesContext";function i(t,e){function n(n){var a=Object.assign({},e.value),i=Object.assign({ele:t,type:"hit",color:"rgba(0, 0, 0, 0.15)"},a),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var l=o.getBoundingClientRect(),r=o.querySelector(".waves-ripple");switch(r?r.className="waves-ripple":(r=document.createElement("span"),r.className="waves-ripple",r.style.height=r.style.width=Math.max(l.width,l.height)+"px",o.appendChild(r)),i.type){case"center":r.style.top=l.height/2-r.offsetHeight/2+"px",r.style.left=l.width/2-r.offsetWidth/2+"px";break;default:r.style.top=(n.pageY-l.top-r.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",r.style.left=(n.pageX-l.left-r.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return r.style.backgroundColor=i.color,r.className="waves-ripple z-active",!1}}return t[a]?t[a].removeHandle=n:t[a]={removeHandle:n},n}var o={bind:function(t,e){t.addEventListener("click",i(t,e),!1)},update:function(t,e){t.removeEventListener("click",t[a].removeHandle,!1),t.addEventListener("click",i(t,e),!1)},unbind:function(t){t.removeEventListener("click",t[a].removeHandle,!1),t[a]=null,delete t[a]}},l=function(t){t.directive("waves",o)};window.Vue&&(window.waves=o,Vue.use(l)),o.install=l;e["a"]=o},"8d41":function(t,e,n){},b36cf:function(t,e,n){},dd71:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return o})),n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return r}));var a=n("b775");function i(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/query/page",method:"post",data:t})}function o(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/update",method:"post",data:t})}function l(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/save",method:"post",data:t})}function r(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/delete/"+t,method:"delete"})}},fe41:function(t,e,n){"use strict";n("b36cf")}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-37b6768d"],{"333d":function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[n("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,"page-sizes":t.pageSizes,total:t.total,"hide-on-single-page":!0},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},i=[];n("a9e3");Math.easeInOutQuad=function(t,e,n,a){return t/=a/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var o=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function l(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function r(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function s(t,e,n){var a=r(),i=t-a,s=20,c=0;e="undefined"===typeof e?500:e;var u=function t(){c+=s;var r=Math.easeInOutQuad(c,a,i,e);l(r),c0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),n("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.dialogFormVisible},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:t.rules,model:t.temp,"label-width":"120px"}},[n("el-form-item",{attrs:{label:t.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-input",{attrs:{disabled:"create"!==t.dialogStatus,placeholder:t.$t("tenantManage.tenant")},model:{value:t.temp.tenantId,callback:function(e){t.$set(t.temp,"tenantId",e)},expression:"temp.tenantId"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantName"),prop:"tenantName"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.tenantName")},model:{value:t.temp.tenantName,callback:function(e){t.$set(t.temp,"tenantName",e)},expression:"temp.tenantName"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.owner"),prop:"owner"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.owner")},model:{value:t.temp.owner,callback:function(e){t.$set(t.temp,"owner",e)},expression:"temp.owner"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantIntro"),prop:"tenantDesc"}},[n("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:t.$t("tenantManage.tenantIntro")},model:{value:t.temp.tenantDesc,callback:function(e){t.$set(t.temp,"tenantDesc",e)},expression:"temp.tenantDesc"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v(" "+t._s(t.$t("common.cancel"))+" ")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){"create"===t.dialogStatus?t.createData():t.updateData()}}},[t._v("\n "+t._s(t.$t("common.confirm"))+"\n ")])],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v(t._s(t.$t("common.confirm")))])],1)],1)],1)},i=[],o=(n("fb6a"),n("dd71")),l=n("6724"),r=n("333d"),s={name:"JobProject",components:{Pagination:r["a"]},directives:{waves:l["a"]},filters:{statusFilter:function(t){var e={published:"success",draft:"gray",deleted:"danger"};return e[t]},ellipsis:function(t){return t?t.length>26?t.slice(0,26)+"...":t:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tenantId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},created:function(){this.fetchData()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var t=this;this.listLoading=!0,o["c"](this.listQuery).then((function(e){var n=e.records,a=e.total;t.total=a,t.list=n,t.listLoading=!1}))},resetTemp:function(){this.temp={id:void 0,tenantName:"",tenantDesc:""}},handleCreate:function(){var t=this;this.resetTemp(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick((function(){t.$refs["dataForm"].clearValidate()}))},createData:function(){var t=this;this.$refs["dataForm"].validate((function(e){e&&o["a"](t.temp).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:t.$t("message.success"),message:t.$t("message.createdSuccess"),type:"success",duration:2e3})}))}))},handleUpdate:function(t){var e=this;this.temp=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick((function(){e.$refs["dataForm"].clearValidate()}))},updateData:function(){var t=this;this.$refs["dataForm"].validate((function(e){if(e){var n=Object.assign({},t.temp);o["d"](n).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:"Success",message:"Update Successfully",type:"success",duration:2e3})}))}}))},openDelConfirm:function(t){return this.$confirm(this.$t("message.deleteMessage",{name:t}),this.$t("common.hint"),{confirmButtonText:this.$t("common.ok"),cancelButtonText:this.$t("common.cancel"),type:"warning"})},handleDelete:function(t){var e=this;this.openDelConfirm(t.tenantId).then((function(){o["b"](t.tenantId).then((function(t){e.fetchData(),e.$notify({title:"Success",message:"Delete Successfully",type:"success",duration:2e3})}))}))}}},c=s,u=n("2877"),d=Object(u["a"])(c,a,i,!1,null,null,null);e["default"]=d.exports},6724:function(t,e,n){"use strict";n("8d41");var a="@@wavesContext";function i(t,e){function n(n){var a=Object.assign({},e.value),i=Object.assign({ele:t,type:"hit",color:"rgba(0, 0, 0, 0.15)"},a),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var l=o.getBoundingClientRect(),r=o.querySelector(".waves-ripple");switch(r?r.className="waves-ripple":(r=document.createElement("span"),r.className="waves-ripple",r.style.height=r.style.width=Math.max(l.width,l.height)+"px",o.appendChild(r)),i.type){case"center":r.style.top=l.height/2-r.offsetHeight/2+"px",r.style.left=l.width/2-r.offsetWidth/2+"px";break;default:r.style.top=(n.pageY-l.top-r.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",r.style.left=(n.pageX-l.left-r.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return r.style.backgroundColor=i.color,r.className="waves-ripple z-active",!1}}return t[a]?t[a].removeHandle=n:t[a]={removeHandle:n},n}var o={bind:function(t,e){t.addEventListener("click",i(t,e),!1)},update:function(t,e){t.removeEventListener("click",t[a].removeHandle,!1),t.addEventListener("click",i(t,e),!1)},unbind:function(t){t.removeEventListener("click",t[a].removeHandle,!1),t[a]=null,delete t[a]}},l=function(t){t.directive("waves",o)};window.Vue&&(window.waves=o,Vue.use(l)),o.install=l;e["a"]=o},"8d41":function(t,e,n){},b36cf:function(t,e,n){},dd71:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return o})),n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return r}));var a=n("b775");function i(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/query/page",method:"post",data:t})}function o(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/update",method:"post",data:t})}function l(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/save",method:"post",data:t})}function r(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/delete/"+t,method:"delete"})}},fe41:function(t,e,n){"use strict";n("b36cf")}}]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.ce81c8e6.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.865748af.js similarity index 55% rename from threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.ce81c8e6.js rename to threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.865748af.js index 2a34a6f0..ced8d417 100644 --- a/threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.ce81c8e6.js +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-3a6f2dc9.865748af.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3a6f2dc9"],{"25a2":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"app-container"},[i("div",{staticClass:"filter-container"},[i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("tenantManage.tenantRequired"),filterable:""},on:{change:function(t){return e.tenantSelectList()}},model:{value:e.listQuery.tenantId,callback:function(t){e.$set(e.listQuery,"tenantId",t)},expression:"listQuery.tenantId"}},e._l(e.tenantOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("projectManage.itemRequired"),filterable:""},on:{change:function(t){return e.itemSelectList()}},model:{value:e.listQuery.itemId,callback:function(t){e.$set(e.listQuery,"itemId",t)},expression:"listQuery.itemId"}},e._l(e.itemOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-button",{directives:[{name:"waves",rawName:"v-waves"}],staticClass:"filter-item",attrs:{type:"primary",icon:"el-icon-search"},on:{click:e.fetchData}},[e._v("\n "+e._s(e.$t("common.query"))+"\n ")])],1),e._v(" "),i("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.listLoading,expression:"listLoading"}],attrs:{data:e.list,"element-loading-text":"Loading",border:"",fit:"","max-height":"714","highlight-current-row":""}},[i("el-table-column",{attrs:{label:e.$t("common.num"),fixed:"",width:"95"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.$index+1))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.instanceID"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"primary",underline:!1}},[e._v(e._s(t.row.identify))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.active"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-tag",{attrs:{type:e._f("statusFilter")(t.row.active)}},[e._v("\n "+e._s(t.row.active)+"\n ")])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.coreSize"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(t.row.coreSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.maximumSize"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(t.row.maximumSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.queueType"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.queueType))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.queueCapacity"),width:"160"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.queueCapacity))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.rejectedHandler"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.rejectedName))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.keepAliveTime"),width:"100"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.keepAliveTime))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("common.operation"),width:"90",align:"center",fixed:"right","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.row;return[i("el-button",{attrs:{type:"text",size:"small"},on:{click:function(t){return e.handleInfo(n)}}},[e._v("\n "+e._s(e.$t("common.detail"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"text",disabled:e.isEditDisabled,size:"small"},on:{click:function(t){return e.handleUpdate(n)}}},[e._v("\n "+e._s(e.$t("common.edit"))+"\n ")])]}}])})],1),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v("\n "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+"\n ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maximumSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.maximumSize,callback:function(t){e.$set(e.temp,"maximumSize",t)},expression:"temp.maximumSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[[i("el-input-number",{attrs:{placeholder:"Time(秒)","controls-position":"right",min:1},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.temp.allUpdate,callback:function(t){e.$set(e.temp,"allUpdate",t)},expression:"temp.allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.updateData()}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v("Confirm")])],1)],1)],1)},a=[],s=(i("14d9"),i("caad"),i("3737")),l=i("dd71"),o=i("4d85"),r=i("6724"),c={name:"JobProject",directives:{waves:r["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]}},data:function(){return{isRejectShow:!1,list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",mark:"Undertow"},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isEditDisabled:!1,runTimeTemp:{},tenantOptions:[],instanceDialogFormVisible:!1,threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create",info:"Info"},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,allUpdate:"1",customRejectedType:null},visible:!0}},computed:{rules:function(){return{coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maximumSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listQuery.tenantId?this.listQuery.itemId?(this.listLoading=!0,o["f"](this.listQuery).then((function(t){if(null!=t){for(var i=t,n=[],a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.basicInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.threadPoolID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.tpId)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeID"))+" ")]),e._v(" "),i("el-tag",{attrs:{type:e._f("statusFilter")(e.runTimeTemp.active)}},[e._v("\n "+e._s(e.runTimeTemp.active)+"\n ")])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.runningState"))+" ")]),e._v(" "),i("el-tag",[e._v(e._s(e.runTimeTemp.state))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceHost"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.host)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.identify)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalRejection"))+" ")]),e._v(" "),i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(e.runTimeTemp.rejectCount))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"80px",en:"150px"})}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType"),disabled:!0},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:9!==e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[[i("div",[i("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[i("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),i("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?i("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[i("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e(),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.allUpdate,callback:function(t){e.allUpdate=t},expression:"allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"Stack Info",visible:e.isStackShow,width:"60%"},on:{"update:visible":function(t){e.isStackShow=t}}},[i("ul",{staticClass:"stack-info"},e._l(e.stackInfo,(function(t){return i("li",{key:t.threadId},[i("p",[e._v('\n "'+e._s(t.threadName)+'" #'+e._s(t.threadId)+" java.lang.Thread.State:\n "+e._s(t.threadStatus)+"\n ")]),e._v(" "),i("ul",e._l(t.threadStack,(function(t,n){return i("li",{key:n},[e._v("at "+e._s(t))])})),0)])})),0),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.isStackShow=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v(e._s(e.$t("common.close")))]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.handleStackInfo}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)])],1)},a=[],o=(i("14d9"),i("caad"),i("dd71")),l=i("3737"),s=i("4d85"),r=i("397f"),c=i("6724"),u=i("333d"),d={components:{Pagination:u["a"]},directives:{waves:c["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,itemId:"",tpId:""},isStackShow:!1,stackInfo:[],rowInfo:{},size:500,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isRejectShow:!1,instanceDialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],rules:{tenantId:[{required:!0,message:"this is required",trigger:"blur"}],itemId:[{required:!0,message:"this is required",trigger:"blur"}],tpId:[{required:!0,message:"this is required",trigger:"blur"}],coreSize:[{required:!0,message:"this is required",trigger:"blur"}],maxSize:[{required:!0,message:"this is required",trigger:"blur"}],queueType:[{required:!0,message:"this is required",trigger:"blur"}],executeTimeOut:[{required:!0,message:"this is required",trigger:"blur"}],keepAliveTime:[{required:!0,message:"this is required",trigger:"blur"}],isAlarm:[{required:!0,message:"this is required",trigger:"blur"}],capacity:[{required:!0,message:"this is required",trigger:"blur"}],capacityAlarm:[{required:!0,message:"this is required",trigger:"blur"}],livenessAlarm:[{required:!0,message:"this is required",trigger:"blur"}],rejectedType:[{required:!0,message:"this is required",trigger:"blur"}]},dialogStatus:"",textMap:{update:this.$t("common.edit"),create:this.$t("common.create"),info:this.$t("common.info")},allUpdate:!1,temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null},runTimeTemp:{},tempRow:{},visible:!0}},created:function(){this.initSelect()},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;if(this.listQuery.tenantId)if(this.listQuery.itemId)if(this.listQuery.tpId){this.listLoading=!0;var t=[this.listQuery.itemId,this.listQuery.tpId];r["a"](t).then((function(t){e.list=t,e.listLoading=!1}))}else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("threadPool.threadPool")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("projectManage.item")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("tenantManage.tenant")}))},refreshData:function(){this.listQuery.tenantId=null,this.listQuery.itemId=null,this.listQuery.tpId=null,this.itemOptions=[],this.threadPoolOptions=[]},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var i=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"100px",en:"150px"})}},[e.isEdit?[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[a("el-input",{attrs:{size:"medium",placeholder:e.$t("message.selectMessage",{target:e.$t("threadPool.threadPool")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}})],1)]:e._e(),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType")},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:4===e.temp.queueType||5===e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[a("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),a("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isAlarm"),prop:"isAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.isAlarm,callback:function(t){e.$set(e.temp,"isAlarm",t)},expression:"temp.isAlarm"}},[a("el-radio-button",{attrs:{label:"1"}},[e._v(e._s(e.$t("threadPool.alarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.livenessAlarm,callback:function(t){e.$set(e.temp,"livenessAlarm",t)},expression:"temp.livenessAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.capacityAlarm,callback:function(t){e.$set(e.temp,"capacityAlarm",t)},expression:"temp.capacityAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?a("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[a("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e()],2),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},n=[],r=(a("14d9"),a("3737")),o=a("dd71"),l=a("4d85"),s=a("6724"),u=a("333d"),c={name:"JobProject",components:{Pagination:u["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},defaultExecuteTimeoutValue:function(e){return void 0==e||null==e?0:e},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],allowCoreThreadTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")&&"ROLE_MANAGE"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listLoading=!0,l["e"](this.listQuery).then((function(t){var a=t.records,i=t.total;e.total=i,e.list=a,e.listLoading=!1}))},changeAlarm:function(e){var t=this;l["a"](e).then((function(){t.fetchData(),t.$notify({title:t.$t("message.success"),message:t.$t("message.updateSuccess"),type:"success",duration:2e3})}))},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var a=t.records,i=0;i0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"100px",en:"150px"})}},[e.isEdit?[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[a("el-input",{attrs:{size:"medium",placeholder:e.$t("message.selectMessage",{target:e.$t("threadPool.threadPool")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}})],1)]:e._e(),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType")},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:4===e.temp.queueType||5===e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[a("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),a("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isAlarm"),prop:"isAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.isAlarm,callback:function(t){e.$set(e.temp,"isAlarm",t)},expression:"temp.isAlarm"}},[a("el-radio-button",{attrs:{label:"1"}},[e._v(e._s(e.$t("threadPool.alarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.livenessAlarm,callback:function(t){e.$set(e.temp,"livenessAlarm",t)},expression:"temp.livenessAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.capacityAlarm,callback:function(t){e.$set(e.temp,"capacityAlarm",t)},expression:"temp.capacityAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?a("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[a("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e()],2),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},n=[],r=(a("14d9"),a("3737")),o=a("dd71"),l=a("4d85"),s=a("6724"),u=a("333d"),c={name:"JobProject",components:{Pagination:u["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},defaultExecuteTimeoutValue:function(e){return void 0==e||null==e?0:e},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],allowCoreThreadTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")&&"ROLE_MANAGE"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listLoading=!0,l["e"](this.listQuery).then((function(t){var a=t.records,i=t.total;e.total=i,e.list=a,e.listLoading=!1}))},changeAlarm:function(e){var t=this;l["a"](e).then((function(){t.fetchData(),t.$notify({title:t.$t("message.success"),message:t.$t("message.updateSuccess"),type:"success",duration:2e3})}))},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var a=t.records,i=0;i0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-form-item",{attrs:{label:e.$t("userAuthority.userName"),prop:"userName"}},[n("el-input",{attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.userName")},model:{value:e.temp.userName,callback:function(t){e.$set(e.temp,"userName",t)},expression:"temp.userName"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("userAuthority.password"),prop:"password"}},[n("el-input",{attrs:{placeholder:e.$t("userAuthority.password"),minlength:"6"},model:{value:e.temp.password,callback:function(t){e.$set(e.temp,"password",t)},expression:"temp.password"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("userAuthority.role"),prop:"role"}},[n("el-select",{staticClass:"filter-item",attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.role")},model:{value:e.temp.role,callback:function(t){e.$set(e.temp,"role",t)},expression:"temp.role"}},e._l(e.roles,(function(e){return n("el-option",{key:e.key,attrs:{label:e,value:e}})})),1)],1),e._v(" "),"admin"!==e.temp.userName?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenants"}},[n("el-checkbox-group",{model:{value:e.temp.tempResources,callback:function(t){e.$set(e.temp,"tempResources",t)},expression:"temp.tempResources"}},e._l(e.tenantList,(function(t){return n("el-checkbox",{key:t,attrs:{label:t}},[e._v(e._s(t))])})),1)],1):e._e()],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1)],1)},i=[],r=(n("14d9"),n("cc68")),s=n("6724"),o=n("333d"),l=n("dd71"),u={name:"User",components:{Pagination:o["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={ROLE_ADMIN:"danger",ROLE_MANAGE:"warning",ROLE_USER:""};return t[e]}},data:function(){return{isTenantsShow:!0,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,userName:void 0},roles:["ROLE_USER","ROLE_MANAGE","ROLE_ADMIN"],tenantList:[],checkedCities:["smo"],checkAll:!1,isIndeterminate:!0,cities:[],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,role:"",userName:"",password:"",permission:"",resources:[]},resetTemp:function(){this.temp={id:void 0,role:"",userName:"",password:"",permission:"",resources:[]}}}},computed:{rules:function(){return{role:[{required:!0,message:this.$t("message.requiredError"),trigger:"change"}],userName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenants:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}],password:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initData()},methods:{fetchData:function(){var e=this;this.listLoading=!0,r["d"](this.listQuery).then((function(t){e.total=t.total,e.list=t.records,e.listLoading=!1}))},initData:function(){var e=this;l["c"]({size:this.size}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[a("el-form-item",{attrs:{label:e.$t("userAuthority.userName"),prop:"userName"}},[a("el-input",{attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.userName")},model:{value:e.temp.userName,callback:function(t){e.$set(e.temp,"userName",t)},expression:"temp.userName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("userAuthority.password"),prop:"password"}},[a("el-input",{attrs:{placeholder:e.$t("userAuthority.password"),minlength:"6"},model:{value:e.temp.password,callback:function(t){e.$set(e.temp,"password",t)},expression:"temp.password"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("userAuthority.role"),prop:"role"}},[a("el-select",{staticClass:"filter-item",attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.role")},model:{value:e.temp.role,callback:function(t){e.$set(e.temp,"role",t)},expression:"temp.role"}},e._l(e.roles,(function(e){return a("el-option",{key:e.key,attrs:{label:e,value:e}})})),1)],1),e._v(" "),"admin"!==e.temp.userName?a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenants"}},[a("el-checkbox-group",{model:{value:e.temp.tempResources,callback:function(t){e.$set(e.temp,"tempResources",t)},expression:"temp.tempResources"}},e._l(e.tenantList,(function(t){return a("el-checkbox",{key:t,attrs:{label:t}},[e._v(e._s(t))])})),1)],1):e._e()],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1)],1)},i=[],r=(a("14d9"),a("cc68")),s=a("6724"),o=a("333d"),l=a("dd71"),u={name:"User",components:{Pagination:o["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={ROLE_ADMIN:"danger",ROLE_MANAGE:"warning",ROLE_USER:""};return t[e]}},data:function(){return{isTenantsShow:!0,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,userName:void 0},roles:["ROLE_USER","ROLE_MANAGE","ROLE_ADMIN"],tenantList:[],checkedCities:["smo"],checkAll:!1,isIndeterminate:!0,cities:[],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{role:[{required:!0,message:this.$t("message.requiredError"),trigger:"change"}],userName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenants:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}],password:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,role:"",userName:"",password:"",permission:"",resources:[]},resetTemp:function(){this.temp={id:void 0,role:"",userName:"",password:"",permission:"",resources:[]}}}},created:function(){this.fetchData(),this.initData()},methods:{fetchData:function(){var e=this;this.listLoading=!0,r["d"](this.listQuery).then((function(t){e.total=t.total,e.list=t.records,e.listLoading=!1}))},initData:function(){var e=this;l["c"]({size:this.size}).then((function(t){for(var a=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.basicInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.threadPoolID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.tpId)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeID"))+" ")]),e._v(" "),i("el-tag",{attrs:{type:e._f("statusFilter")(e.runTimeTemp.active)}},[e._v("\n "+e._s(e.runTimeTemp.active)+"\n ")])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.runningState"))+" ")]),e._v(" "),i("el-tag",[e._v(e._s(e.runTimeTemp.state))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceHost"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.host)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.identify)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalRejection"))+" ")]),e._v(" "),i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(e.runTimeTemp.rejectCount))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"80px",en:"150px"})}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType"),disabled:!0},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:9!==e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[[i("div",[i("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[i("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),i("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?i("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[i("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e(),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.allUpdate,callback:function(t){e.allUpdate=t},expression:"allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"Stack Info",visible:e.isStackShow,width:"60%"},on:{"update:visible":function(t){e.isStackShow=t}}},[i("ul",{staticClass:"stack-info"},e._l(e.stackInfo,(function(t){return i("li",{key:t.threadId},[i("p",[e._v('\n "'+e._s(t.threadName)+'" #'+e._s(t.threadId)+" java.lang.Thread.State:\n "+e._s(t.threadStatus)+"\n ")]),e._v(" "),i("ul",e._l(t.threadStack,(function(t,n){return i("li",{key:n},[e._v("at "+e._s(t))])})),0)])})),0),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.isStackShow=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v(e._s(e.$t("common.close")))]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.handleStackInfo}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)])],1)},a=[],o=(i("14d9"),i("caad"),i("dd71")),r=i("3737"),s=i("4d85"),l=i("397f"),c=i("6724"),u=i("333d"),d={components:{Pagination:u["a"]},directives:{waves:c["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,itemId:"",tpId:""},isStackShow:!1,stackInfo:[],rowInfo:{},size:500,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isRejectShow:!1,instanceDialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],dialogStatus:"",textMap:{update:this.$t("common.edit"),create:this.$t("common.create"),info:this.$t("common.info")},allUpdate:!1,temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null},runTimeTemp:{},tempRow:{},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.initSelect()},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;if(this.listQuery.tenantId)if(this.listQuery.itemId)if(this.listQuery.tpId){this.listLoading=!0;var t=[this.listQuery.itemId,this.listQuery.tpId];l["a"](t).then((function(t){e.list=t,e.listLoading=!1}))}else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("threadPool.threadPool")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("projectManage.item")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("tenantManage.tenant")}))},refreshData:function(){this.listQuery.tenantId=null,this.listQuery.itemId=null,this.listQuery.tpId=null,this.itemOptions=[],this.threadPoolOptions=[]},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var i=t.records,n=0;n Date: Sun, 14 May 2023 16:03:48 +0800 Subject: [PATCH 03/58] Modify the output name of the agent. (#1270) --- .gitignore | 2 +- .../threadpool/hippo4j-agent-bootstrap/pom.xml | 16 ++++++++-------- agents/threadpool/hippo4j-agent-plugin/pom.xml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index afd66f5e..3435ace4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ target/ !**/dist/ ### Agent ### -/hippo4j-agent/hippo4j-agent/ +agent-dist/ **/dependency-reduced-pom.xml ### STS ### diff --git a/agents/threadpool/hippo4j-agent-bootstrap/pom.xml b/agents/threadpool/hippo4j-agent-bootstrap/pom.xml index 33b5556f..6dddcc4f 100644 --- a/agents/threadpool/hippo4j-agent-bootstrap/pom.xml +++ b/agents/threadpool/hippo4j-agent-bootstrap/pom.xml @@ -29,7 +29,7 @@ - hippo4j-agent + hippo4j-threadpool-agent maven-shade-plugin @@ -96,7 +96,7 @@ - + @@ -108,12 +108,12 @@ - - - - - - + + + + + + diff --git a/agents/threadpool/hippo4j-agent-plugin/pom.xml b/agents/threadpool/hippo4j-agent-plugin/pom.xml index b2064ffa..a49097de 100644 --- a/agents/threadpool/hippo4j-agent-plugin/pom.xml +++ b/agents/threadpool/hippo4j-agent-plugin/pom.xml @@ -23,7 +23,7 @@ net.bytebuddy ${shade.package}.${shade.net.bytebuddy.source} - ${project.build.directory}${sdk.plugin.related.dir}/../../../hippo4j-agent + ${project.build.directory}${sdk.plugin.related.dir}/../../../agent-dist ${agent.package.dest.dir}/plugins From 37c44db64da31910479808a2b4f6250cabe63650 Mon Sep 17 00:00:00 2001 From: "Tung Bui (Leo)" <85242618+tungbq@users.noreply.github.com> Date: Sun, 14 May 2023 23:20:09 +0700 Subject: [PATCH 04/58] Changed sleep time in multiThreadTryWriteLockTest (#1260) --- .../java/cn/hippo4j/config/toolkit/SimpleReadWriteLockTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threadpool/server/config/src/test/java/cn/hippo4j/config/toolkit/SimpleReadWriteLockTest.java b/threadpool/server/config/src/test/java/cn/hippo4j/config/toolkit/SimpleReadWriteLockTest.java index afa70bbd..c0364f1a 100644 --- a/threadpool/server/config/src/test/java/cn/hippo4j/config/toolkit/SimpleReadWriteLockTest.java +++ b/threadpool/server/config/src/test/java/cn/hippo4j/config/toolkit/SimpleReadWriteLockTest.java @@ -101,7 +101,7 @@ public class SimpleReadWriteLockTest { while (true) { if (simpleReadWriteLock.tryWriteLock()) { System.out.println(Thread.currentThread() + " -1 get write lock success"); - TimeUnit.SECONDS.sleep(5); + TimeUnit.SECONDS.sleep(1); System.out.println(Thread.currentThread() + " -1 execute done"); simpleReadWriteLock.releaseWriteLock(); countDownLatch.countDown(); From 84bd81871866ecebcac0344ea149f7d3314bf9f5 Mon Sep 17 00:00:00 2001 From: Dmego Date: Mon, 15 May 2023 11:27:34 +0800 Subject: [PATCH 05/58] test: AbstractBuildThreadPoolTemplate add unit test. (#1275) --- .../AbstractBuildThreadPoolTemplateTest.java | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java new file mode 100644 index 00000000..67cbc82a --- /dev/null +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.core.executor.support; + +import cn.hippo4j.common.toolkit.ThreadUtil; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * test for {@link AbstractBuildThreadPoolTemplate} + * @author dmego + */ +public class AbstractBuildThreadPoolTemplateTest { + + AbstractBuildThreadPoolTemplate.ThreadPoolInitParam initParam; + + @Before + public void before() { + initParam = new AbstractBuildThreadPoolTemplate.ThreadPoolInitParam(Executors.defaultThreadFactory()); + initParam.setCorePoolNum(1) + .setMaximumPoolSize(1) + .setKeepAliveTime(1000L) + .setCapacity(10) + .setExecuteTimeOut(5000L) + .setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy()) + .setWorkQueue(new LinkedBlockingQueue<>(1)) + .setTimeUnit(TimeUnit.MILLISECONDS) + .setAllowCoreThreadTimeOut(false) + .setThreadPoolId("test") + .setTaskDecorator(runnable -> runnable); + } + + + @Test + public void testBuildPool() { + ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildPool(initParam); + AtomicInteger count = new AtomicInteger(0); + executor.submit(() -> { + ThreadUtil.sleep(100L); + return count.incrementAndGet(); + }); + executor.submit(() -> { + ThreadUtil.sleep(100L); + count.incrementAndGet(); + }); + + // waiting for shutdown + executor.shutdown(); + while (!executor.isTerminated()) { + } + Assert.assertEquals(2, count.get()); + + } + + + @Test + public void testBuildFastPool() { + ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildFastPool(initParam); + AtomicInteger count = new AtomicInteger(0); + executor.submit(() -> { + ThreadUtil.sleep(100L); + return count.incrementAndGet(); + }); + executor.submit(() -> { + ThreadUtil.sleep(100L); + count.incrementAndGet(); + }); + + // waiting for shutdown + executor.shutdown(); + while (!executor.isTerminated()) { + } + Assert.assertEquals(2, count.get()); + + } + + + + @Test + public void testBuildDynamicPool() { + initParam.setWaitForTasksToCompleteOnShutdown(true); + initParam.setAwaitTerminationMillis(5000L); + ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildDynamicPool(initParam); + AtomicInteger count = new AtomicInteger(0); + executor.submit(() -> { + ThreadUtil.sleep(100L); + return count.incrementAndGet(); + }); + executor.submit(() -> { + ThreadUtil.sleep(100L); + count.incrementAndGet(); + }); + // waiting for shutdown + executor.shutdown(); + while (!executor.isTerminated()) { + } + + Assert.assertEquals(2, count.get()); + + } + +} From 0035e970dde348e8a0e1691effe2e868d90d2ec8 Mon Sep 17 00:00:00 2001 From: magestack Date: Mon, 15 May 2023 12:45:52 +0800 Subject: [PATCH 06/58] Update .codecov.yml (#1276) --- .codecov.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index e40bf54f..f08462af 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -26,10 +26,10 @@ coverage: default: informational: true ignore: - - "hippo4j-example/.*" + - "examples/.*" - "docs/.*" - - "dev-support/.*" - - "hippo4j-ui/.*" - - "hippo4j-ui-new/.*" + - "tests/.*" - "checkstyle/.*" - "format/.*" + - "threadpool/console-new/.*" + - "threadpool/console/.*" From 9698d8d7d2f6d82e32765087f25922f7809be86a Mon Sep 17 00:00:00 2001 From: BigXin0109 <1064730540@qq.com> Date: Mon, 15 May 2023 22:00:36 +0800 Subject: [PATCH 07/58] Server mode Docker packaging function migrated to the root directory (#1273) * feat: Server mode Docker packaging function migrated to the root directory * feat: Server mode Docker packaging function migrated to the root directory * feat: remove comment * feat: i18n --- .gitignore | 5 ++ .../threadpool}/Dockerfile | 0 .../threadpool}/docker-startup.sh | 0 docs/docs/user_docs/ops/server-docker.md | 7 +- .../current/user_docs/ops/server-docker.md | 7 +- threadpool/server/bootstrap/pom.xml | 73 ++++++++++++++++--- 6 files changed, 75 insertions(+), 17 deletions(-) rename {threadpool/server/bootstrap => docker/threadpool}/Dockerfile (100%) rename {threadpool/server/bootstrap => docker/threadpool}/docker-startup.sh (100%) diff --git a/.gitignore b/.gitignore index 3435ace4..a23b0ea7 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,8 @@ build/ docs/node_modules docs/build docs/.docusaurus + + +### Docker ### +docker/threadpool/conf +docker/threadpool/target \ No newline at end of file diff --git a/threadpool/server/bootstrap/Dockerfile b/docker/threadpool/Dockerfile similarity index 100% rename from threadpool/server/bootstrap/Dockerfile rename to docker/threadpool/Dockerfile diff --git a/threadpool/server/bootstrap/docker-startup.sh b/docker/threadpool/docker-startup.sh similarity index 100% rename from threadpool/server/bootstrap/docker-startup.sh rename to docker/threadpool/docker-startup.sh diff --git a/docs/docs/user_docs/ops/server-docker.md b/docs/docs/user_docs/ops/server-docker.md index 826bb99f..2f81a57e 100644 --- a/docs/docs/user_docs/ops/server-docker.md +++ b/docs/docs/user_docs/ops/server-docker.md @@ -34,10 +34,11 @@ hippo4j/hippo4j-server 方式一: ```shell -# 进入到 hippo4j-server/hippo4j-bootstrap 工程路径下 +# 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -Dskip.spotless.apply=true +# 进入到 docker/threadpool 工程路径下 # 默认打包是打包的 tag 是 latest -docker build -t hippo4j/hippo4j-server ../hippo4j-bootstrap +docker build -t hippo4j/hippo4j-server ../threadpool ``` 方式二: @@ -45,6 +46,6 @@ docker build -t hippo4j/hippo4j-server ../hippo4j-bootstrap 通过 `maven docker plugin` ```shell -# 进入到 hippo4j-server 工程路径下 +# 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -DskipTests -Dskip.spotless.apply=true docker:build ``` diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md index 826bb99f..2f81a57e 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md @@ -34,10 +34,11 @@ hippo4j/hippo4j-server 方式一: ```shell -# 进入到 hippo4j-server/hippo4j-bootstrap 工程路径下 +# 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -Dskip.spotless.apply=true +# 进入到 docker/threadpool 工程路径下 # 默认打包是打包的 tag 是 latest -docker build -t hippo4j/hippo4j-server ../hippo4j-bootstrap +docker build -t hippo4j/hippo4j-server ../threadpool ``` 方式二: @@ -45,6 +46,6 @@ docker build -t hippo4j/hippo4j-server ../hippo4j-bootstrap 通过 `maven docker plugin` ```shell -# 进入到 hippo4j-server 工程路径下 +# 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -DskipTests -Dskip.spotless.apply=true docker:build ``` diff --git a/threadpool/server/bootstrap/pom.xml b/threadpool/server/bootstrap/pom.xml index d3fb3002..2fd29939 100644 --- a/threadpool/server/bootstrap/pom.xml +++ b/threadpool/server/bootstrap/pom.xml @@ -11,6 +11,7 @@ true + ${project.parent.parent.parent.basedir}/docker/threadpool @@ -58,19 +59,69 @@ - com.spotify + org.apache.maven.plugins + maven-resources-plugin + + + copy-resources + package + + copy-resources + + + UTF-8 + ../../../docker/threadpool/conf/ + + + conf + + hippo4j-logback.xml + application.properties + application-h2.properties + + + + + + + copy-build + package + + copy-resources + + + UTF-8 + ../../../docker/threadpool/target + + + target + + + + + + + + io.fabric8 docker-maven-plugin - 1.2.2 + 0.42.1 - hippo4j-server:${project.version} - ${project.basedir} - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - + + + hippo4j/${project.build.finalName}:${project.version} + ${project.build.finalName} + + ${contextDir} + + + + hippo4j/${project.build.finalName}:latest + ${project.build.finalName} + + ${contextDir} + + + From f7eb468af8b737767f98d35cc948ca6dd5fe6eb7 Mon Sep 17 00:00:00 2001 From: magestack Date: Mon, 15 May 2023 23:57:32 +0800 Subject: [PATCH 08/58] Refactor package directory, abstract infra and kernel layers (#1285) * Refactor package directory, abstract infra and kernel layers * Update pom.xml --- agents/threadpool/hippo4j-agent-core/pom.xml | 2 +- .../thread-pool-plugin/pom.xml | 2 +- {threadpool => infra}/common/pom.xml | 4 ++-- .../common/api/ClientCloseHookExecute.java | 0 .../common/api/ClientNetworkService.java | 0 .../common/api/IExecutorProperties.java | 0 .../cn/hippo4j/common/api/JsonFacade.java | 0 .../cn/hippo4j/common/api/NotifyRequest.java | 0 .../hippo4j/common/api/ThreadDetailState.java | 0 .../common/api/ThreadPoolCheckAlarm.java | 0 .../common/api/ThreadPoolConfigChange.java | 0 .../common/api/ThreadPoolDynamicRefresh.java | 0 .../config/ApplicationContextHolder.java | 0 .../config/ExecutorNotifyProperties.java | 0 .../common/config/ExecutorProperties.java | 0 .../constant/ChangeThreadPoolConstants.java | 0 .../constant/ConfigModifyTypeConstants.java | 0 .../cn/hippo4j/common/constant/Constants.java | 0 .../common/constant/HttpHeaderConstants.java | 0 .../common/constant/HttpMediaType.java | 0 .../hippo4j/common/constant/HttpMethod.java | 0 .../common/constant/HttpResponseCode.java | 0 .../common/design/builder/Builder.java | 0 .../design/builder/ThreadFactoryBuilder.java | 0 .../observer/AbstractSubjectCenter.java | 0 .../common/design/observer/Observer.java | 0 .../design/observer/ObserverMessage.java | 0 .../java/cn/hippo4j/common/enums/DelEnum.java | 0 .../cn/hippo4j/common/enums/EnableEnum.java | 0 .../cn/hippo4j/common/enums/VerifyEnum.java | 0 .../common/enums/WebContainerEnum.java | 0 .../common/executor/ExecutorFactory.java | 0 .../common/executor/ThreadPoolManager.java | 0 .../support/BlockingQueueTypeEnum.java | 0 .../executor/support/CustomBlockingQueue.java | 0 .../CustomRejectedExecutionHandler.java | 0 .../support/NotSupportedException.java | 0 .../support/RejectedPolicyTypeEnum.java | 0 .../ResizableCapacityLinkedBlockingQueue.java | 0 .../support/RunsOldestTaskPolicy.java | 0 .../executor/support/SyncPutQueuePolicy.java | 0 .../hippo4j/common/extension/IExtension.java | 0 .../common/extension/IExtensionRequest.java | 0 .../extension/annotation/Realization.java | 0 .../extension/annotation/SingletonSPI.java | 0 .../config/ExtensionRegisterBootstrap.java | 0 .../common/extension/reducer/AllMatch.java | 0 .../common/extension/reducer/AnyMatch.java | 0 .../common/extension/reducer/FirstOf.java | 0 .../common/extension/reducer/None.java | 0 .../common/extension/reducer/Reducer.java | 0 .../common/extension/reducer/Reducers.java | 0 .../support/ExtensionAutoConfiguration.java | 0 .../extension/support/ExtensionCallback.java | 0 .../extension/support/ExtensionInvoker.java | 0 .../extension/support/ExtensionRegistry.java | 0 .../extension/support/IExtensionRegistry.java | 0 .../common/extension/support/ReduceType.java | 0 .../ServiceLoaderInstantiationException.java | 0 .../support/ServiceLoaderRegistry.java | 0 .../cn/hippo4j/common/function/Matcher.java | 0 .../common/function/NoArgsConsumer.java | 0 .../common/model/GlobalRemotePoolInfo.java | 0 .../cn/hippo4j/common/model/InstanceInfo.java | 0 .../model/ManyThreadPoolRunStateInfo.java | 0 .../common/model/ThreadDetailStateInfo.java | 0 .../common/model/ThreadPoolBaseInfo.java | 0 .../common/model/ThreadPoolParameter.java | 0 .../common/model/ThreadPoolParameterInfo.java | 0 .../common/model/ThreadPoolRunStateInfo.java | 0 .../cn/hippo4j/common/model/TokenInfo.java | 0 .../common/model/WebIpAndPortInfo.java | 0 .../DynamicThreadPoolRegisterParameter.java | 0 .../DynamicThreadPoolRegisterWrapper.java | 0 ...ThreadPoolRegisterCoreNotifyParameter.java | 0 ...readPoolRegisterServerNotifyParameter.java | 0 .../common/monitor/AbstractMessage.java | 0 .../cn/hippo4j/common/monitor/Message.java | 0 .../common/monitor/MessageRequest.java | 0 .../common/monitor/MessageTypeEnum.java | 0 .../common/monitor/MessageWrapper.java | 0 .../common/monitor/RuntimeMessage.java | 0 .../cn/hippo4j/common/toolkit/ArrayUtil.java | 0 .../cn/hippo4j/common/toolkit/Assert.java | 0 .../cn/hippo4j/common/toolkit/BeanUtil.java | 0 .../hippo4j/common/toolkit/BooleanUtil.java | 0 .../common/toolkit/ByteConvertUtil.java | 0 .../hippo4j/common/toolkit/CalculateUtil.java | 0 .../cn/hippo4j/common/toolkit/ClassUtil.java | 0 .../common/toolkit/CollectionUtil.java | 0 .../hippo4j/common/toolkit/ConditionUtil.java | 0 .../hippo4j/common/toolkit/ContentUtil.java | 0 .../cn/hippo4j/common/toolkit/DateUtil.java | 0 .../cn/hippo4j/common/toolkit/FileUtil.java | 0 .../cn/hippo4j/common/toolkit/GroupKey.java | 0 .../cn/hippo4j/common/toolkit/IdUtil.java | 0 .../cn/hippo4j/common/toolkit/IoUtil.java | 0 .../cn/hippo4j/common/toolkit/JSONUtil.java | 0 .../common/toolkit/JacksonHandler.java | 0 .../cn/hippo4j/common/toolkit/Joiner.java | 0 .../cn/hippo4j/common/toolkit/MapUtil.java | 0 .../cn/hippo4j/common/toolkit/Md5Util.java | 0 .../cn/hippo4j/common/toolkit/MemoryUtil.java | 0 .../common/toolkit/MessageConvert.java | 0 .../hippo4j/common/toolkit/ReflectUtil.java | 0 .../cn/hippo4j/common/toolkit/Singleton.java | 0 .../cn/hippo4j/common/toolkit/StringUtil.java | 0 .../toolkit/ThreadPoolExecutorUtil.java | 0 .../cn/hippo4j/common/toolkit/ThreadUtil.java | 0 .../hippo4j/common/toolkit/UserContext.java | 0 .../hippo4j/common/toolkit/http/Header.java | 0 .../toolkit/http/HttpClientResponse.java | 0 .../hippo4j/common/toolkit/http/HttpUtil.java | 0 .../toolkit/http/JdkHttpClientResponse.java | 0 .../common/toolkit/logtracing/LogMessage.java | 0 .../cn/hippo4j/common/web/base/Result.java | 0 .../cn/hippo4j/common/web/base/Results.java | 0 .../web/exception/AbstractException.java | 0 .../common/web/exception/ErrorCode.java | 0 .../common/web/exception/ErrorCodeEnum.java | 0 .../web/exception/IllegalException.java | 0 .../web/exception/ServiceException.java | 0 .../main/resources/META-INF/spring.factories | 0 .../java/cn/hippo4j/common/MockitoTests.java | 0 .../common/executor/ExecutorFactoryTest.java | 0 .../executor/ThreadPoolManagerTest.java | 0 .../support/BlockingQueueTypeEnumTest.java | 0 .../extension/ExtensionInvokerTest.java | 0 .../extension/anymatch/AnyMatchExtImplA.java | 0 .../extension/anymatch/AnyMatchExtImplB.java | 0 .../anymatch/IAnyMatchExtension.java | 0 .../extension/firstof/FirstOfExtImplA.java | 0 .../extension/firstof/FirstOfExtImplB.java | 0 .../extension/firstof/IFirstOfExtension.java | 0 .../hippo4j/common/extension/spi/IOldSpi.java | 0 .../common/extension/spi/IOldSpiImplA.java | 0 .../common/function/MatcherFunctionTest.java | 0 .../common/function/NoArgsConsumerTest.java | 0 .../DynamicThreadPoolServiceLoaderTest.java | 0 .../common/spi/MyArrayBlockingQueue.java | 0 .../hippo4j/common/spi/TestInterfaceSPI.java | 0 .../common/spi/TestInterfaceSPIImpl.java | 0 .../common/spi/TestSingletonInterfaceSPI.java | 0 .../spi/TestSingletonInterfaceSPIImpl.java | 0 .../hippo4j/common/toolkit/ArrayUtilTest.java | 0 .../cn/hippo4j/common/toolkit/AssertTest.java | 0 .../hippo4j/common/toolkit/BeanUtilTest.java | 0 .../common/toolkit/BooleanUtilTest.java | 0 .../common/toolkit/ByteConvertUtilTest.java | 0 .../common/toolkit/CalculateUtilTest.java | 0 .../common/toolkit/CollectionUtilTest.java | 0 .../common/toolkit/ConditionUtilTest.java | 0 .../common/toolkit/ContentUtilTest.java | 0 .../hippo4j/common/toolkit/FileUtilTest.java | 0 .../hippo4j/common/toolkit/GroupKeyTest.java | 0 .../cn/hippo4j/common/toolkit/IdUtilTest.java | 0 .../hippo4j/common/toolkit/JSONUtilTest.java | 0 .../hippo4j/common/toolkit/MapUtilTest.java | 0 .../hippo4j/common/toolkit/Md5UtilTest.java | 0 .../common/toolkit/MemoryUtilTest.java | 0 .../common/toolkit/ReflectUtilTest.java | 0 .../hippo4j/common/toolkit/SingletonTest.java | 0 .../common/toolkit/StringUtilTest.java | 0 .../common/toolkit/ThreadUtilTest.java | 0 .../common/toolkit/UserContextTest.java | 0 .../common/toolkit/http/HomeServlet.java | 0 .../common/toolkit/http/HttpUtilsTest.java | 0 .../common/toolkit/http/LoginServlet.java | 0 .../cn/hippo4j/common/web/ResultsTest.java | 0 .../hippo4j/common/web/base/ResultsTest.java | 0 ...ommon.executor.support.CustomBlockingQueue | 0 .../cn.hippo4j.common.extension.spi.IOldSpi | 0 .../cn.hippo4j.common.spi.TestInterfaceSPI | 0 ...ppo4j.common.spi.TestSingletonInterfaceSPI | 0 .../src/test/resources/test/test_utf8.txt | 0 infra/pom.xml | 19 ++++++++++++++++++ {common => infra/toolkit}/pom.xml | 5 +++-- kernel/alarm/pom.xml | 13 ++++++++++++ kernel/dynamic/pom.xml | 13 ++++++++++++ kernel/message/pom.xml | 13 ++++++++++++ kernel/pom.xml | 20 +++++++++++++++++++ pom.xml | 9 +++++---- starters/threadpool/server/pom.xml | 2 +- threadpool/adapter/base/pom.xml | 2 +- threadpool/core/pom.xml | 2 +- .../AbstractBuildThreadPoolTemplateTest.java | 6 ------ threadpool/pom.xml | 1 - threadpool/rpc/pom.xml | 2 +- threadpool/server/auth/pom.xml | 2 +- threadpool/server/config/pom.xml | 2 +- threadpool/server/discovery/pom.xml | 2 +- 191 files changed, 97 insertions(+), 24 deletions(-) rename {threadpool => infra}/common/pom.xml (95%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/JsonFacade.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/NotifyRequest.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ThreadDetailState.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ThreadPoolConfigChange.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/ChangeThreadPoolConstants.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/ConfigModifyTypeConstants.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/Constants.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/HttpMediaType.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/HttpMethod.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/constant/HttpResponseCode.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/ExecutorFactory.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/CustomBlockingQueue.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/CustomRejectedExecutionHandler.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueue.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicy.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicy.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/IExtension.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/function/Matcher.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/GlobalRemotePoolInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/InstanceInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ManyThreadPoolRunStateInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ThreadDetailStateInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ThreadPoolBaseInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameterInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/ThreadPoolRunStateInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/TokenInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/WebIpAndPortInfo.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterParameter.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterCoreNotifyParameter.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterServerNotifyParameter.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/Message.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/MessageRequest.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/MessageTypeEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/MessageWrapper.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/monitor/RuntimeMessage.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/BooleanUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ByteConvertUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/CalculateUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ClassUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ContentUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/DateUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/IdUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/JSONUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/JacksonHandler.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/Md5Util.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/MemoryUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/Singleton.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ThreadPoolExecutorUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/ThreadUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/UserContext.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpClientResponse.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/http/JdkHttpClientResponse.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/toolkit/logtracing/LogMessage.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/base/Result.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/base/Results.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java (100%) rename {threadpool => infra}/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java (100%) rename {threadpool => infra}/common/src/main/resources/META-INF/spring.factories (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/MockitoTests.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/AssertTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/BeanUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/BooleanUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ByteConvertUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/CalculateUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ContentUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/IdUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/JSONUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/MapUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/Md5UtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/MemoryUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ReflectUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/SingletonTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/ThreadUtilTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/http/HomeServlet.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/toolkit/http/LoginServlet.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java (100%) rename {threadpool => infra}/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java (100%) rename {threadpool => infra}/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue (100%) rename {threadpool => infra}/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi (100%) rename {threadpool => infra}/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI (100%) rename {threadpool => infra}/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI (100%) rename {threadpool => infra}/common/src/test/resources/test/test_utf8.txt (100%) create mode 100644 infra/pom.xml rename {common => infra/toolkit}/pom.xml (77%) create mode 100644 kernel/alarm/pom.xml create mode 100644 kernel/dynamic/pom.xml create mode 100644 kernel/message/pom.xml create mode 100644 kernel/pom.xml diff --git a/agents/threadpool/hippo4j-agent-core/pom.xml b/agents/threadpool/hippo4j-agent-core/pom.xml index add15fd7..b299e9dc 100644 --- a/agents/threadpool/hippo4j-agent-core/pom.xml +++ b/agents/threadpool/hippo4j-agent-core/pom.xml @@ -75,7 +75,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} provided diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml index 4fb78e25..c3fa56bb 100644 --- a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml +++ b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml @@ -20,7 +20,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/common/pom.xml b/infra/common/pom.xml similarity index 95% rename from threadpool/common/pom.xml rename to infra/common/pom.xml index 5d9d6faf..767eb6ee 100644 --- a/threadpool/common/pom.xml +++ b/infra/common/pom.xml @@ -4,10 +4,10 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool + hippo4j-infra ${revision} - hippo4j-threadpool-common + hippo4j-threadpool-infra-common diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java b/infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java b/infra/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java b/infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java rename to infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/JsonFacade.java b/infra/common/src/main/java/cn/hippo4j/common/api/JsonFacade.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/JsonFacade.java rename to infra/common/src/main/java/cn/hippo4j/common/api/JsonFacade.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/NotifyRequest.java b/infra/common/src/main/java/cn/hippo4j/common/api/NotifyRequest.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/NotifyRequest.java rename to infra/common/src/main/java/cn/hippo4j/common/api/NotifyRequest.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadDetailState.java b/infra/common/src/main/java/cn/hippo4j/common/api/ThreadDetailState.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadDetailState.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ThreadDetailState.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java b/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolConfigChange.java b/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolConfigChange.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolConfigChange.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolConfigChange.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java b/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java rename to infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java b/infra/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java rename to infra/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java b/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java rename to infra/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java b/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java rename to infra/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/ChangeThreadPoolConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/ChangeThreadPoolConstants.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/ChangeThreadPoolConstants.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/ChangeThreadPoolConstants.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/ConfigModifyTypeConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/ConfigModifyTypeConstants.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/ConfigModifyTypeConstants.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/ConfigModifyTypeConstants.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/Constants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/Constants.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpMediaType.java b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpMediaType.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpMediaType.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/HttpMediaType.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpMethod.java b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpMethod.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpMethod.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/HttpMethod.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpResponseCode.java b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpResponseCode.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/constant/HttpResponseCode.java rename to infra/common/src/main/java/cn/hippo4j/common/constant/HttpResponseCode.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java b/infra/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java rename to infra/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java b/infra/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java rename to infra/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java b/infra/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java rename to infra/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java b/infra/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java rename to infra/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java b/infra/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java rename to infra/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java b/infra/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java b/infra/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java b/infra/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java b/infra/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/ExecutorFactory.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ExecutorFactory.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/ExecutorFactory.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ExecutorFactory.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/CustomBlockingQueue.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/CustomBlockingQueue.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/CustomBlockingQueue.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/CustomBlockingQueue.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/CustomRejectedExecutionHandler.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/CustomRejectedExecutionHandler.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/CustomRejectedExecutionHandler.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/CustomRejectedExecutionHandler.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueue.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueue.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueue.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueue.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicy.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicy.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicy.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicy.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicy.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicy.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicy.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicy.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/IExtension.java b/infra/common/src/main/java/cn/hippo4j/common/extension/IExtension.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/IExtension.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/IExtension.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java b/infra/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java b/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java b/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java b/infra/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java b/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/function/Matcher.java b/infra/common/src/main/java/cn/hippo4j/common/function/Matcher.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/function/Matcher.java rename to infra/common/src/main/java/cn/hippo4j/common/function/Matcher.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java b/infra/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java rename to infra/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/GlobalRemotePoolInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/GlobalRemotePoolInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/GlobalRemotePoolInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/GlobalRemotePoolInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/InstanceInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/InstanceInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/InstanceInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/InstanceInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ManyThreadPoolRunStateInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/ManyThreadPoolRunStateInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ManyThreadPoolRunStateInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ManyThreadPoolRunStateInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadDetailStateInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/ThreadDetailStateInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadDetailStateInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ThreadDetailStateInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolBaseInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolBaseInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolBaseInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolBaseInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java b/infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameterInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameterInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameterInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameterInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolRunStateInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolRunStateInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/ThreadPoolRunStateInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/ThreadPoolRunStateInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/TokenInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/TokenInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/TokenInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/TokenInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/WebIpAndPortInfo.java b/infra/common/src/main/java/cn/hippo4j/common/model/WebIpAndPortInfo.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/WebIpAndPortInfo.java rename to infra/common/src/main/java/cn/hippo4j/common/model/WebIpAndPortInfo.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterParameter.java b/infra/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterParameter.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterParameter.java rename to infra/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterParameter.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java b/infra/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java rename to infra/common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterCoreNotifyParameter.java b/infra/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterCoreNotifyParameter.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterCoreNotifyParameter.java rename to infra/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterCoreNotifyParameter.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterServerNotifyParameter.java b/infra/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterServerNotifyParameter.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterServerNotifyParameter.java rename to infra/common/src/main/java/cn/hippo4j/common/model/register/notify/DynamicThreadPoolRegisterServerNotifyParameter.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/Message.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/Message.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/Message.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/Message.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageRequest.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/MessageRequest.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageRequest.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/MessageRequest.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/MessageTypeEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageTypeEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/MessageTypeEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageWrapper.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/MessageWrapper.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/MessageWrapper.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/MessageWrapper.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/monitor/RuntimeMessage.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/RuntimeMessage.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/monitor/RuntimeMessage.java rename to infra/common/src/main/java/cn/hippo4j/common/monitor/RuntimeMessage.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/BooleanUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BooleanUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/BooleanUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/BooleanUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ByteConvertUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ByteConvertUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ByteConvertUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ByteConvertUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/CalculateUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/CalculateUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/CalculateUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/CalculateUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ClassUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ClassUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ClassUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ClassUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ContentUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ContentUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ContentUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ContentUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/DateUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/DateUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/DateUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/DateUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/IdUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/IdUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/IdUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/IdUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/JSONUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/JSONUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/JSONUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/JSONUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/JacksonHandler.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/JacksonHandler.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/JacksonHandler.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/JacksonHandler.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Md5Util.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Md5Util.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Md5Util.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/Md5Util.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MemoryUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MemoryUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MemoryUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/MemoryUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Singleton.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Singleton.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/Singleton.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/Singleton.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ThreadPoolExecutorUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ThreadPoolExecutorUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ThreadPoolExecutorUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ThreadPoolExecutorUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ThreadUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ThreadUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/ThreadUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/ThreadUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/UserContext.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/UserContext.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/UserContext.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/UserContext.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpClientResponse.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpClientResponse.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpClientResponse.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpClientResponse.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/JdkHttpClientResponse.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/JdkHttpClientResponse.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/http/JdkHttpClientResponse.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/http/JdkHttpClientResponse.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/toolkit/logtracing/LogMessage.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/logtracing/LogMessage.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/toolkit/logtracing/LogMessage.java rename to infra/common/src/main/java/cn/hippo4j/common/toolkit/logtracing/LogMessage.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/base/Result.java b/infra/common/src/main/java/cn/hippo4j/common/web/base/Result.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/base/Result.java rename to infra/common/src/main/java/cn/hippo4j/common/web/base/Result.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/base/Results.java b/infra/common/src/main/java/cn/hippo4j/common/web/base/Results.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/base/Results.java rename to infra/common/src/main/java/cn/hippo4j/common/web/base/Results.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java b/infra/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java rename to infra/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java b/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java rename to infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java b/infra/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java rename to infra/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java diff --git a/threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java b/infra/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java similarity index 100% rename from threadpool/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java rename to infra/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java diff --git a/threadpool/common/src/main/resources/META-INF/spring.factories b/infra/common/src/main/resources/META-INF/spring.factories similarity index 100% rename from threadpool/common/src/main/resources/META-INF/spring.factories rename to infra/common/src/main/resources/META-INF/spring.factories diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/MockitoTests.java b/infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/MockitoTests.java rename to infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java rename to infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java rename to infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java rename to infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java b/infra/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java b/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java b/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java b/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java b/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java b/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java b/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java b/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java b/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java rename to infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java b/infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java rename to infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java b/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java rename to infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java b/infra/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java b/infra/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java b/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java b/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java b/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java b/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java rename to infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/AssertTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/AssertTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/AssertTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/AssertTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/BeanUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/BeanUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/BeanUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/BeanUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/BooleanUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/BooleanUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/BooleanUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/BooleanUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ByteConvertUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ByteConvertUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ByteConvertUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ByteConvertUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/CalculateUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/CalculateUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/CalculateUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/CalculateUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ContentUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ContentUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ContentUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ContentUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/IdUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/IdUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/IdUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/IdUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/JSONUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/JSONUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/JSONUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/JSONUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/MapUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MapUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/MapUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/MapUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/Md5UtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/Md5UtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/Md5UtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/Md5UtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/MemoryUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MemoryUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/MemoryUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/MemoryUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ReflectUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ReflectUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ReflectUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ReflectUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/SingletonTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/SingletonTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/SingletonTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/SingletonTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ThreadUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ThreadUtilTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/ThreadUtilTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/ThreadUtilTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/HomeServlet.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HomeServlet.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/HomeServlet.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HomeServlet.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/LoginServlet.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/LoginServlet.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/toolkit/http/LoginServlet.java rename to infra/common/src/test/java/cn/hippo4j/common/toolkit/http/LoginServlet.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java b/infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java rename to infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java diff --git a/threadpool/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java b/infra/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java similarity index 100% rename from threadpool/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java rename to infra/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java diff --git a/threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue similarity index 100% rename from threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue rename to infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue diff --git a/threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi similarity index 100% rename from threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi rename to infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi diff --git a/threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI similarity index 100% rename from threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI rename to infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI diff --git a/threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI similarity index 100% rename from threadpool/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI rename to infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI diff --git a/threadpool/common/src/test/resources/test/test_utf8.txt b/infra/common/src/test/resources/test/test_utf8.txt similarity index 100% rename from threadpool/common/src/test/resources/test/test_utf8.txt rename to infra/common/src/test/resources/test/test_utf8.txt diff --git a/infra/pom.xml b/infra/pom.xml new file mode 100644 index 00000000..17518798 --- /dev/null +++ b/infra/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-all + ${revision} + + + hippo4j-infra + pom + + + common + toolkit + + \ No newline at end of file diff --git a/common/pom.xml b/infra/toolkit/pom.xml similarity index 77% rename from common/pom.xml rename to infra/toolkit/pom.xml index e650370a..8784aa5e 100644 --- a/common/pom.xml +++ b/infra/toolkit/pom.xml @@ -5,8 +5,9 @@ 4.0.0 cn.hippo4j - hippo4j-all + hippo4j-infra ${revision} - hippo4j-common + + hippo4j-threadpool-infra-toolkit \ No newline at end of file diff --git a/kernel/alarm/pom.xml b/kernel/alarm/pom.xml new file mode 100644 index 00000000..0bb19b1c --- /dev/null +++ b/kernel/alarm/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-kernel + ${revision} + + + hippo4j-threadpool-kernel-alarm + \ No newline at end of file diff --git a/kernel/dynamic/pom.xml b/kernel/dynamic/pom.xml new file mode 100644 index 00000000..ee66f779 --- /dev/null +++ b/kernel/dynamic/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-kernel + ${revision} + + + hippo4j-threadpool-kernel-dynamic + \ No newline at end of file diff --git a/kernel/message/pom.xml b/kernel/message/pom.xml new file mode 100644 index 00000000..1957cad9 --- /dev/null +++ b/kernel/message/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-kernel + ${revision} + + + hippo4j-threadpool-kernel-message + \ No newline at end of file diff --git a/kernel/pom.xml b/kernel/pom.xml new file mode 100644 index 00000000..3b194094 --- /dev/null +++ b/kernel/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-all + ${revision} + + + hippo4j-kernel + pom + + + alarm + dynamic + message + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index c986a1de..4a2f7683 100644 --- a/pom.xml +++ b/pom.xml @@ -43,13 +43,14 @@ + agents dependencies - threadpool - common + examples + infra + kernel starters tests - examples - agents + threadpool diff --git a/starters/threadpool/server/pom.xml b/starters/threadpool/server/pom.xml index 4d4f15cc..daf82eaa 100644 --- a/starters/threadpool/server/pom.xml +++ b/starters/threadpool/server/pom.xml @@ -25,7 +25,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/adapter/base/pom.xml b/threadpool/adapter/base/pom.xml index c9db0b08..2c253278 100644 --- a/threadpool/adapter/base/pom.xml +++ b/threadpool/adapter/base/pom.xml @@ -12,7 +12,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/core/pom.xml b/threadpool/core/pom.xml index e3538d46..fac63720 100644 --- a/threadpool/core/pom.xml +++ b/threadpool/core/pom.xml @@ -12,7 +12,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java index 67cbc82a..0e77555c 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java @@ -52,7 +52,6 @@ public class AbstractBuildThreadPoolTemplateTest { .setTaskDecorator(runnable -> runnable); } - @Test public void testBuildPool() { ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildPool(initParam); @@ -74,7 +73,6 @@ public class AbstractBuildThreadPoolTemplateTest { } - @Test public void testBuildFastPool() { ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildFastPool(initParam); @@ -96,8 +94,6 @@ public class AbstractBuildThreadPoolTemplateTest { } - - @Test public void testBuildDynamicPool() { initParam.setWaitForTasksToCompleteOnShutdown(true); @@ -118,7 +114,5 @@ public class AbstractBuildThreadPoolTemplateTest { } Assert.assertEquals(2, count.get()); - } - } diff --git a/threadpool/pom.xml b/threadpool/pom.xml index 99831ecb..b167f2f3 100644 --- a/threadpool/pom.xml +++ b/threadpool/pom.xml @@ -13,7 +13,6 @@ adapter - common core message monitor diff --git a/threadpool/rpc/pom.xml b/threadpool/rpc/pom.xml index 15307e93..c6f0d91b 100644 --- a/threadpool/rpc/pom.xml +++ b/threadpool/rpc/pom.xml @@ -12,7 +12,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/server/auth/pom.xml b/threadpool/server/auth/pom.xml index ea452b5c..2b431f09 100644 --- a/threadpool/server/auth/pom.xml +++ b/threadpool/server/auth/pom.xml @@ -54,7 +54,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/server/config/pom.xml b/threadpool/server/config/pom.xml index 77b50351..75740382 100644 --- a/threadpool/server/config/pom.xml +++ b/threadpool/server/config/pom.xml @@ -16,7 +16,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} diff --git a/threadpool/server/discovery/pom.xml b/threadpool/server/discovery/pom.xml index 0f46eabf..42894bb4 100644 --- a/threadpool/server/discovery/pom.xml +++ b/threadpool/server/discovery/pom.xml @@ -24,7 +24,7 @@ cn.hippo4j - hippo4j-threadpool-common + hippo4j-threadpool-infra-common ${project.version} From f80f50c82ae43c6c6cd6c68c2d58a12e3329e391 Mon Sep 17 00:00:00 2001 From: lucca suen <72333564+lucca-suen@users.noreply.github.com> Date: Tue, 16 May 2023 00:53:19 +0800 Subject: [PATCH 09/58] Optimize HttpUtilsTest for different operating systems (#1286) --- .../test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java index f238ea96..a4e500b7 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java @@ -52,7 +52,7 @@ public class HttpUtilsTest { static final String CONTEXT_PATH = "/"; static final String PATH_NAME = "."; static final String USER_DIR = "user.dir"; - static final String PREFIX = "\\tomcat."; + static final String PREFIX = File.separator + "tomcat."; @BeforeClass public static void startWeb() throws IOException, LifecycleException { From 95cd53af35a203cacf90d02efadf53f83adf8333 Mon Sep 17 00:00:00 2001 From: Xin Chen <37373516+DDreame@users.noreply.github.com> Date: Tue, 16 May 2023 09:25:11 +0800 Subject: [PATCH 10/58] fix StyleCheck Errors. (#1288) * fix checkType errors about module hippo4j-threadpool-adapter-web * fix checkType errors about module hippo4j-threadpool-spring-boot-starter-adapter-web * fix checkType errors about module hippo4j-threadpool-rpc. --- .../adapter/web/WebThreadPoolHandlerConfiguration.java | 9 +++++++++ .../undertow/UndertowWebThreadPoolHandlerSupport.java | 3 ++- .../cn/hippo4j/rpc/client/NettyClientConnection.java | 4 +++- .../src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java | 5 +++-- .../main/java/cn/hippo4j/rpc/handler/HandlerManager.java | 4 ++++ .../main/java/cn/hippo4j/rpc/model/DefaultRequest.java | 6 ++++-- .../main/java/cn/hippo4j/rpc/model/DefaultResponse.java | 6 ++++-- .../cn/hippo4j/rpc/server/NettyServerConnection.java | 3 ++- 8 files changed, 31 insertions(+), 9 deletions(-) diff --git a/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebThreadPoolHandlerConfiguration.java b/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebThreadPoolHandlerConfiguration.java index 2027668b..7dd86213 100644 --- a/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebThreadPoolHandlerConfiguration.java +++ b/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebThreadPoolHandlerConfiguration.java @@ -50,6 +50,9 @@ import javax.servlet.Servlet; @Configuration(proxyBeanMethods = false) public class WebThreadPoolHandlerConfiguration { + /** + * embedded tomcat + */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({Servlet.class, Tomcat.class, UpgradeProtocol.class}) @ConditionalOnBean(value = ConfigurableTomcatWebServerFactory.class, search = SearchStrategy.CURRENT) @@ -67,6 +70,9 @@ public class WebThreadPoolHandlerConfiguration { } } + /** + * embedded jetty + */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({Servlet.class, Server.class, Loader.class, WebAppContext.class}) @ConditionalOnBean(value = ConfigurableJettyWebServerFactory.class, search = SearchStrategy.CURRENT) @@ -84,6 +90,9 @@ public class WebThreadPoolHandlerConfiguration { } } + /** + * embedded undertow + */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({Servlet.class, Undertow.class, SslClientAuthMode.class}) @ConditionalOnBean(value = ConfigurableUndertowWebServerFactory.class, search = SearchStrategy.CURRENT) diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java index 6917a26a..0c2cd8bb 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java @@ -55,6 +55,7 @@ public class UndertowWebThreadPoolHandlerSupport implements IWebThreadPoolHandle this.executor = executor; } + private final long noRejectCount = -1L; @Override public ThreadPoolBaseInfo simpleInfo() { ThreadPoolBaseInfo poolBaseInfo = new ThreadPoolBaseInfo(); @@ -122,7 +123,7 @@ public class UndertowWebThreadPoolHandlerSupport implements IWebThreadPoolHandle stateInfo.setPeakLoad(peakLoad); long rejectCount = fieldObject instanceof DynamicThreadPoolExecutor ? ((DynamicThreadPoolExecutor) fieldObject).getRejectCountNum() - : -1L; + : -noRejectCount; stateInfo.setRejectCount(rejectCount); stateInfo.setClientLastRefreshTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); stateInfo.setTimestamp(System.currentTimeMillis()); diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java index e6337999..b98228c7 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java @@ -49,6 +49,8 @@ public class NettyClientConnection implements ClientConnection { * Obtain the connection timeout period. The default value is 30s */ long timeout = 30000L; + final int nanosPerMilliSecond = 1000000; + EventLoopGroup worker = new NioEventLoopGroup(); NettyConnectPool connectionPool; ChannelFuture future; @@ -74,7 +76,7 @@ public class NettyClientConnection implements ClientConnection { } // Wait for execution to complete ResultHolder.putThread(key, Thread.currentThread()); - LockSupport.parkNanos(timeout() * 1000000); + LockSupport.parkNanos(timeout() * nanosPerMilliSecond); response = ResultHolder.get(key); if (response == null) { throw new TimeOutException("Timeout waiting for server-side response"); diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java index 7cbfaff7..3197b3a7 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java @@ -34,7 +34,8 @@ import java.io.Serializable; */ public class NettyEncoder extends MessageToByteEncoder { - private static final byte[] BYTE = new byte[4]; + private static final int BYTE_LENGTH = 4; + private static final byte[] BYTE = new byte[BYTE_LENGTH]; @Override protected void encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) throws Exception { @@ -49,6 +50,6 @@ public class NettyEncoder extends MessageToByteEncoder { throw new CoderException("The encoding is abnormal, which may be caused by the transfer object being unable to be serialized"); } int endIndex = out.writerIndex(); - out.setInt(startIndex, endIndex - startIndex - 4); + out.setInt(startIndex, endIndex - startIndex - BYTE_LENGTH); } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java index 18460ac3..fbc72bc4 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java @@ -73,6 +73,10 @@ public interface HandlerManager { return new HandlerEntity<>(order, handler, name); } + /** + * handler entity + * @param + */ @Getter @AllArgsConstructor class HandlerEntity implements Comparable> { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java index 4dc30bb8..a49ad075 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java @@ -71,10 +71,12 @@ public final class DefaultRequest implements Request { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } DefaultRequest that = (DefaultRequest) o; return Objects.equals(key, that.key) && Objects.equals(className, that.className) diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java index 0fc68f44..1f4d46ae 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java @@ -84,10 +84,12 @@ public class DefaultResponse implements Response { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } DefaultResponse that = (DefaultResponse) o; return Objects.equals(key, that.key) && Objects.equals(cls, that.cls); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java index a6adc0d1..65a8c2b6 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java @@ -56,6 +56,7 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement Class socketChannelCls = NioServerSocketChannel.class; ChannelFuture future; Channel channel; + private final int maxPortNum = 65535; public NettyServerConnection(EventLoopGroup leader, EventLoopGroup worker, List handlers) { super(handlers); @@ -80,7 +81,7 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement @Override public void bind(ServerPort port) { int serverPort = port.getPort(); - if (serverPort < 0 || serverPort > 65535) { + if (serverPort < 0 || serverPort > maxPortNum) { throw new ConnectionException("The port number " + serverPort + " is outside 0~65535, which is not a legal port number"); } ServerBootstrap server = new ServerBootstrap(); From 80fd519a7be70be8f55f2022177bc6d5c876f723 Mon Sep 17 00:00:00 2001 From: pc <52450205+pc-mysql@users.noreply.github.com> Date: Tue, 16 May 2023 09:30:06 +0800 Subject: [PATCH 11/58] fix H2 database usage error (#1287) --- .../auth/src/main/java/cn/hippo4j/auth/model/UserInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/UserInfo.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/UserInfo.java index e9818615..412aa717 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/UserInfo.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/UserInfo.java @@ -31,7 +31,7 @@ import java.util.Date; * User info. */ @Data -@TableName("user") +@TableName("`user`") public class UserInfo { /** From 19d4a85777992cee1a7aaf59fb7f8e4ac35b6e74 Mon Sep 17 00:00:00 2001 From: Dmego Date: Wed, 17 May 2023 12:16:37 +0800 Subject: [PATCH 12/58] optimize: fix StyleCheck errors for hippo4j-threadpool-core (#1289) * optimize: fix StyleCheck errors for hippo4j-threadpool-core * add TaskTimeRecordPlugin#TableSizeFor test method --- .../cn/hippo4j/common/constant/Constants.java | 2 + .../core/enable/BeforeCheckConfiguration.java | 3 ++ .../core/enable/MarkerConfiguration.java | 3 ++ .../executor/DynamicThreadPoolExecutor.java | 20 +++++++-- .../state/AbstractThreadPoolRuntime.java | 4 +- .../AbstractDynamicExecutorSupport.java | 4 +- .../DynamicThreadPoolAdapterChoose.java | 2 +- .../adpter/ThreadPoolTaskExecutorAdapter.java | 2 +- ...ansmittableThreadLocalExecutorAdapter.java | 4 +- ...ableThreadLocalExecutorServiceAdapter.java | 4 +- .../support/adpter/ZipkinExecutorAdapter.java | 6 +-- .../DynamicThreadPoolBannerHandler.java | 10 ++--- .../plugin/impl/TaskTimeRecordPlugin.java | 41 +++++++++++++------ .../ThreadPoolExecutorShutdownPlugin.java | 2 +- ...ommonDynamicThreadPoolProviderFactory.java | 23 +++++++++-- .../toolkit/ExecutorTraceContextUtil.java | 8 ++-- .../cn/hippo4j/core/toolkit/IdentifyUtil.java | 19 +++++---- .../cn/hippo4j/core/toolkit/SystemClock.java | 2 +- .../hippo4j/core/toolkit/inet/InetUtils.java | 2 +- .../plugin/impl/TaskTimeRecordPluginTest.java | 20 +++++++++ 20 files changed, 131 insertions(+), 50 deletions(-) diff --git a/infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java index 80e7951d..06de3506 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java +++ b/infra/common/src/main/java/cn/hippo4j/common/constant/Constants.java @@ -131,4 +131,6 @@ public class Constants { public static final String CLIENT_VERSION = "Client-Version"; public static final String CONFIGURATION_PROPERTIES_PREFIX = "spring.dynamic.thread-pool"; + + public static final long NO_REJECT_COUNT_NUM = -1L; } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java index bbcc377d..17baabd0 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java @@ -70,6 +70,9 @@ public class BeforeCheckConfiguration { return new BeforeCheckConfiguration.BeforeCheck(); } + /** + * Before check. + */ public class BeforeCheck { } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/enable/MarkerConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/enable/MarkerConfiguration.java index de7c762e..f22ea7fd 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/enable/MarkerConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/enable/MarkerConfiguration.java @@ -31,6 +31,9 @@ public class MarkerConfiguration { return new Marker(); } + /** + * Marker. + */ public class Marker { } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java index a33c6b83..15c4f07f 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java @@ -40,6 +40,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +import static cn.hippo4j.common.constant.Constants.NO_REJECT_COUNT_NUM; + /** * Enhanced dynamic and monitored thread pool. */ @@ -57,7 +59,17 @@ public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor impl */ @Getter @Setter - public boolean waitForTasksToCompleteOnShutdown; + private boolean waitForTasksToCompleteOnShutdown; + + /** + * The default await termination millis + */ + private static final Long DEFAULT_AWAIT_TERMINATION_MILLIS = -1L; + + /** + * The default execute timeout + */ + private static final Long DEFAULT_EXECUTE_TIMEOUT = -1L; /** * Creates a new {@code DynamicThreadPoolExecutor} with the given initial parameters. @@ -149,7 +161,7 @@ public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor impl public long getAwaitTerminationMillis() { return getPluginOfType(ThreadPoolExecutorShutdownPlugin.PLUGIN_NAME, ThreadPoolExecutorShutdownPlugin.class) .map(ThreadPoolExecutorShutdownPlugin::getAwaitTerminationMillis) - .orElse(-1L); + .orElse(DEFAULT_AWAIT_TERMINATION_MILLIS); } /** @@ -176,7 +188,7 @@ public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor impl public Long getRejectCountNum() { return getPluginOfType(TaskRejectCountRecordPlugin.PLUGIN_NAME, TaskRejectCountRecordPlugin.class) .map(TaskRejectCountRecordPlugin::getRejectCountNum) - .orElse(-1L); + .orElse(NO_REJECT_COUNT_NUM); } /** @@ -201,7 +213,7 @@ public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor impl public Long getExecuteTimeOut() { return getPluginOfType(TaskTimeoutNotifyAlarmPlugin.PLUGIN_NAME, TaskTimeoutNotifyAlarmPlugin.class) .map(TaskTimeoutNotifyAlarmPlugin::getExecuteTimeOut) - .orElse(-1L); + .orElse(DEFAULT_EXECUTE_TIMEOUT); } /** diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java index 8d9ca68f..90b5f547 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java @@ -29,6 +29,8 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; +import static cn.hippo4j.common.constant.Constants.NO_REJECT_COUNT_NUM; + /** * Abstract threadPool runtime info. */ @@ -66,7 +68,7 @@ public abstract class AbstractThreadPoolRuntime { int activeCount = actualExecutor.getActiveCount(); int largestPoolSize = actualExecutor.getLargestPoolSize(); BlockingQueue blockingQueue = actualExecutor.getQueue(); - long rejectCount = actualExecutor instanceof DynamicThreadPoolExecutor ? ((DynamicThreadPoolExecutor) actualExecutor).getRejectCountNum() : -1L; + long rejectCount = actualExecutor instanceof DynamicThreadPoolExecutor ? ((DynamicThreadPoolExecutor) actualExecutor).getRejectCountNum() : NO_REJECT_COUNT_NUM; ThreadPoolRunStateInfo stateInfo = ThreadPoolRunStateInfo.builder() .tpId(threadPoolId) .activeSize(activeCount) diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java index 91de8469..b44ef7d0 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java @@ -44,9 +44,9 @@ public abstract class AbstractDynamicExecutorSupport extends ThreadPoolExecutor private ExecutorService executor; - public long awaitTerminationMillis; + private long awaitTerminationMillis; - public boolean waitForTasksToCompleteOnShutdown; + private boolean waitForTasksToCompleteOnShutdown; public AbstractDynamicExecutorSupport(int corePoolSize, int maximumPoolSize, diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java index 420fc353..528eaa5e 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java @@ -33,7 +33,7 @@ import java.util.concurrent.Executor; */ public class DynamicThreadPoolAdapterChoose { - private static List DYNAMIC_THREAD_POOL_ADAPTERS = new ArrayList<>(); + private static final List DYNAMIC_THREAD_POOL_ADAPTERS = new ArrayList<>(); static { DYNAMIC_THREAD_POOL_ADAPTERS.add(new TransmittableThreadLocalExecutorAdapter()); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java index 283942db..79b6aa22 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java @@ -46,7 +46,7 @@ public class ThreadPoolTaskExecutorAdapter implements DynamicThreadPoolAdapter { private static final String QUEUE_CAPACITY = "queueCapacity"; - private static String MATCH_CLASS_NAME = "ThreadPoolTaskExecutor"; + private static final String MATCH_CLASS_NAME = "ThreadPoolTaskExecutor"; @Override public boolean match(Object executor) { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorAdapter.java index f51c809c..b848a8ed 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorAdapter.java @@ -28,9 +28,9 @@ import java.util.concurrent.Executor; */ public class TransmittableThreadLocalExecutorAdapter implements DynamicThreadPoolAdapter { - private static String MATCH_CLASS_NAME = "ExecutorTtlWrapper"; + private static final String MATCH_CLASS_NAME = "ExecutorTtlWrapper"; - private static String FIELD_NAME = "executor"; + private static final String FIELD_NAME = "executor"; @Override public boolean match(Object executor) { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorServiceAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorServiceAdapter.java index 575c9725..2597a0e6 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorServiceAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/TransmittableThreadLocalExecutorServiceAdapter.java @@ -28,9 +28,9 @@ import java.util.concurrent.Executor; */ public class TransmittableThreadLocalExecutorServiceAdapter implements DynamicThreadPoolAdapter { - private static String MATCH_CLASS_NAME = "ExecutorServiceTtlWrapper"; + private static final String MATCH_CLASS_NAME = "ExecutorServiceTtlWrapper"; - private static String FIELD_NAME = "executorService"; + private static final String FIELD_NAME = "executorService"; @Override public boolean match(Object executor) { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java index 9de29d56..12863417 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java @@ -31,9 +31,9 @@ import java.util.concurrent.Executor; */ public class ZipkinExecutorAdapter implements DynamicThreadPoolAdapter { - private final static String MATCH_CLASS_NAME = "brave.internal.WrappingExecutorService"; - private final static String FIELD_NAME = "delegate"; - private final static String TYPE_NAME = "java.util.concurrent.ExecutorService"; + private static final String MATCH_CLASS_NAME = "brave.internal.WrappingExecutorService"; + private static final String FIELD_NAME = "delegate"; + private static final String TYPE_NAME = "java.util.concurrent.ExecutorService"; @Override public boolean match(Object executor) { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java index 0704c93e..0b026412 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java @@ -34,13 +34,13 @@ public class DynamicThreadPoolBannerHandler implements InitializingBean { private final BootstrapPropertiesInterface properties; - private final String DYNAMIC_THREAD_POOL = " :: Dynamic ThreadPool :: "; + private static final String DYNAMIC_THREAD_POOL = " :: Dynamic ThreadPool :: "; - private final String HIPPO4J_GITHUB = "GitHub: https://github.com/opengoofy/hippo4j"; + private static final String HIPPO4J_GITHUB = "GitHub: https://github.com/opengoofy/hippo4j"; - private final String HIPPO4J_SITE = "Site: https://www.hippo4j.cn"; + private static final String HIPPO4J_SITE = "Site: https://www.hippo4j.cn"; - private final int STRAP_LINE_SIZE = 50; + private static final int STRAP_LINE_SIZE = 50; private final String version; @@ -70,7 +70,7 @@ public class DynamicThreadPoolBannerHandler implements InitializingBean { while (padding.length() < STRAP_LINE_SIZE - (bannerVersion.length() + DYNAMIC_THREAD_POOL.length())) { padding.append(" "); } - System.out.println(AnsiOutput.toString(banner, AnsiColor.GREEN, DYNAMIC_THREAD_POOL, AnsiColor.DEFAULT, + log.info(AnsiOutput.toString("\n", banner, AnsiColor.GREEN, DYNAMIC_THREAD_POOL, AnsiColor.DEFAULT, padding.toString(), AnsiStyle.FAINT, bannerVersion, "\n\n", HIPPO4J_GITHUB, "\n", HIPPO4J_SITE, "\n")); } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java index 9753cbbd..5c47a7c7 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java @@ -39,7 +39,14 @@ import java.util.stream.Collectors; */ public class TaskTimeRecordPlugin extends AbstractTaskTimerPlugin { - private static final int MAXIMUM_CAPACITY = 1 << 30; + /** + * maximumCapacity: 1 << 30 + */ + private static final int MAXIMUM_CAPACITY = 1073741824; + + /** + * pluginName. + */ public static final String PLUGIN_NAME = TaskTimeRecordPlugin.class.getSimpleName(); /** @@ -50,7 +57,22 @@ public class TaskTimeRecordPlugin extends AbstractTaskTimerPlugin { /** * timers */ - public final Timer[] timerTable; + private final Timer[] timerTable; + + /** + * The default time mills + */ + private static final long DEFAULT_TIME_MILLS = -1L; + + /** + * No task count + */ + private static final long NO_TASK_COUNT = -1L; + + /** + * All bits are values of 1 + */ + private static final int ALL_BIT_IS_ONE = -1; /** * Create a {@link TaskTimeRecordPlugin} @@ -116,8 +138,8 @@ public class TaskTimeRecordPlugin extends AbstractTaskTimerPlugin { // summarize data long totalTaskTimeMillis = 0L; - long maxTaskTimeMillis = -1L; - long minTaskTimeMillis = -1L; + long maxTaskTimeMillis = DEFAULT_TIME_MILLS; + long minTaskTimeMillis = DEFAULT_TIME_MILLS; long taskCount = 0L; for (Summary summary : summaries) { if (taskCount > 0) { @@ -147,13 +169,8 @@ public class TaskTimeRecordPlugin extends AbstractTaskTimerPlugin { * copy from {@link HashMap#tableSizeFor} */ static int tableSizeFor(int cap) { - int n = cap - 1; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - return n >= MAXIMUM_CAPACITY ? MAXIMUM_CAPACITY : n + 1; + int n = ALL_BIT_IS_ONE >>> Integer.numberOfLeadingZeros(cap - 1); + return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1; } /** @@ -267,7 +284,7 @@ public class TaskTimeRecordPlugin extends AbstractTaskTimerPlugin { */ public long getAvgTaskTimeMillis() { long totalTaskCount = getTaskCount(); - return totalTaskCount > 0L ? getTotalTaskTimeMillis() / totalTaskCount : -1; + return totalTaskCount > 0L ? getTotalTaskTimeMillis() / totalTaskCount : NO_TASK_COUNT; } } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java index f6c5969f..beec590b 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java @@ -51,7 +51,7 @@ public class ThreadPoolExecutorShutdownPlugin implements ShutdownAwarePlugin { * Await termination millis */ @Setter - public long awaitTerminationMillis; + private long awaitTerminationMillis; /** * Callback before pool shutdown. diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java b/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java index c7282947..3350544e 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java @@ -28,6 +28,23 @@ import java.util.concurrent.TimeUnit; */ public class CommonDynamicThreadPoolProviderFactory { + /** + * Core pool size. + */ + private static final int CORE_POOL_SIZE = 2; + /** + * Maximum pool size. + */ + private static final int MAXIMUM_POOL_SIZE = 4; + /** + * Keep alive time. + */ + private static final long KEEP_ALIVE_TIME = 60L; + /** + * Work queue capacity. + */ + private static final int WORK_QUEUE_CAPACITY = 1024; + /** * Get the public dynamic thread pool instance. * @@ -38,9 +55,9 @@ public class CommonDynamicThreadPoolProviderFactory { DynamicThreadPoolExecutor dynamicThreadPoolExecutor = (DynamicThreadPoolExecutor) ThreadPoolBuilder.builder() .dynamicPool() .threadFactory(threadPoolId) - .poolThreadSize(2, 4) - .keepAliveTime(60L, TimeUnit.SECONDS) - .workQueue(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE, 1024) + .poolThreadSize(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE) + .keepAliveTime(KEEP_ALIVE_TIME, TimeUnit.SECONDS) + .workQueue(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE, WORK_QUEUE_CAPACITY) .build(); return dynamicThreadPoolExecutor; } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java index 0a9596ce..b7da8497 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java @@ -29,7 +29,7 @@ public class ExecutorTraceContextUtil { /** * Execute timeout trace key. */ - private static String EXECUTE_TIMEOUT_TRACE_KEY = EXECUTE_TIMEOUT_TRACE; + private static String executeTimeoutTraceKey = EXECUTE_TIMEOUT_TRACE; /** * Get and remove. @@ -37,8 +37,8 @@ public class ExecutorTraceContextUtil { * @return timeout trace */ public static String getAndRemoveTimeoutTrace() { - String val = MDC.get(EXECUTE_TIMEOUT_TRACE_KEY); - MDC.remove(EXECUTE_TIMEOUT_TRACE_KEY); + String val = MDC.get(executeTimeoutTraceKey); + MDC.remove(executeTimeoutTraceKey); return val; } @@ -57,6 +57,6 @@ public class ExecutorTraceContextUtil { * @param key trace key */ public static void setTimeoutTraceKey(String key) { - EXECUTE_TIMEOUT_TRACE_KEY = key; + executeTimeoutTraceKey = key; } } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java index 00a67f26..5874f5b7 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java @@ -45,13 +45,18 @@ public class IdentifyUtil { /** * Identify */ - private static String IDENTIFY; + private static String identify; /** * Client identification value */ public static final String CLIENT_IDENTIFICATION_VALUE = IdUtil.simpleUUID(); + /** + * Get identify sleep time + */ + private static final int SLEEP_TIME = 500; + /** * Generate identify. * @@ -60,8 +65,8 @@ public class IdentifyUtil { * @return identify */ public static synchronized String generate(ConfigurableEnvironment environment, InetUtils inetUtil) { - if (StringUtil.isNotBlank(IDENTIFY)) { - return IDENTIFY; + if (StringUtil.isNotBlank(identify)) { + return identify; } String[] customerNetwork = ServiceLoaderRegistry.getSingletonServiceInstances(ClientNetworkService.class) .stream().findFirst().map(each -> each.getNetworkIpPort(environment)).orElse(null); @@ -79,7 +84,7 @@ public class IdentifyUtil { + port + IDENTIFY_SLICER_SYMBOL + CLIENT_IDENTIFICATION_VALUE; - IDENTIFY = identify; + identify = identify; return identify; } @@ -89,16 +94,16 @@ public class IdentifyUtil { * @return identify */ public static String getIdentify() { - while (StringUtil.isBlank(IDENTIFY)) { + while (StringUtil.isBlank(identify)) { ConfigurableEnvironment environment = ApplicationContextHolder.getBean(ConfigurableEnvironment.class); InetUtils inetUtils = ApplicationContextHolder.getBean(InetUtils.class); if (environment != null && inetUtils != null) { String identify = generate(environment, inetUtils); return identify; } - ThreadUtil.sleep(500); + ThreadUtil.sleep(SLEEP_TIME); } - return IDENTIFY; + return identify; } /** diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/SystemClock.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/SystemClock.java index bae6996c..550959db 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/SystemClock.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/SystemClock.java @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicLong; * System clock.
* Refer to cn.hutool.core.date.SystemClock
*/ -public class SystemClock { +public final class SystemClock { /** * Period diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/inet/InetUtils.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/inet/InetUtils.java index 5b933523..53a78730 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/inet/InetUtils.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/inet/InetUtils.java @@ -168,7 +168,7 @@ public class InetUtils implements Closeable { /** * Should override the host info. */ - public boolean override; + private boolean override; private String ipAddress; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java index 88939bc1..391a1169 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java @@ -80,4 +80,24 @@ public class TaskTimeRecordPluginTest { return exceptLower < actual && actual < exceptUpper; } + @Test + public void testTableSizeFor() { + int maxCap = 1 << 30; + for (int i = 0; i <= maxCap; i++) { + int tabSize1 = tabSizeFor_JDK8(i); + int tabSize2 = TaskTimeRecordPlugin.tableSizeFor(i); + Assert.assertTrue(tabSize1 == tabSize2); + } + } + + private static int tabSizeFor_JDK8(int cap) { + int n = cap - 1; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + return (n < 0) ? 1 : (n >= 1073741824) ? 1073741824 : n + 1; + } + } From ea19be3cb8b59fcaaf846b4a333f124e2c2ab8c4 Mon Sep 17 00:00:00 2001 From: Dmego Date: Wed, 17 May 2023 12:46:52 +0800 Subject: [PATCH 13/58] optimize: fix StyleCheck errors for hippo4j (#1291) * optimize: fix StyleCheck errors for hippo4j * ignore TypeName error --- .../apollo/boot/ApolloPluginBootService.java | 3 + .../apollo/define/ApolloInstrumentation.java | 3 + .../DefaultConfigConstructorInterceptor.java | 3 + ...ynamicThreadPoolChangeHandlerSpring1x.java | 3 + ...tPublishingRunListenerInstrumentation.java | 3 + .../EventPublishingFinishedInterceptor.java | 3 + ...ynamicThreadPoolChangeHandlerSpring2x.java | 3 + ...tPublishingRunListenerInstrumentation.java | 3 + .../EventPublishingStartedInterceptor.java | 3 + .../spring/common/conf/SpringBootConfig.java | 19 +++++- ...istenerEnvironmentPreparedInterceptor.java | 3 + ...tDynamicThreadPoolChangeHandlerSpring.java | 3 + ...IDynamicThreadPoolChangeHandlerSpring.java | 3 + .../support/SpringEnvironmentSupport.java | 3 + .../support/SpringPropertiesLoader.java | 3 + .../SpringThreadPoolRegisterSupport.java | 6 +- .../ThreadPoolExecutorInstrumentation.java | 3 + ...lExecutorConstructorMethodInterceptor.java | 9 ++- checkstyle/hippo4j_checkstyle_suppression.xml | 1 + ...gApolloSpringBoot1xExampleApplication.java | 3 + .../ConfigApolloExampleApplication.java | 3 + .../ConfigConsulExampleApplication.java | 3 + .../etcd/controller/TestController.java | 4 +- ...igNacosSpringBoot15ExampleApplication.java | 3 + .../nacos/ConfigNacosExampleApplication.java | 3 + .../ConfigZookeeperExampleApplication.java | 3 + .../core/config/DynamicThreadPoolConfig.java | 21 +++++-- .../ErrorLogRejectedExecutionHandler.java | 7 ++- .../core/inittest/AlarmSendMessageTest.java | 8 ++- .../RegisterDynamicThreadPoolTest.java | 22 ++++--- .../core/inittest/RunStateHandlerTest.java | 16 +++-- .../core/inittest/TaskDecoratorTest.java | 7 ++- .../adapter/kafka/example/MessageProduce.java | 6 +- .../ServerAdapterKafkaExampleApplication.java | 3 + ...rverAdapterRabbitMQExampleApplication.java | 3 + .../config/RabbitMQThreadPoolConfig.java | 16 +++-- .../example/constants/SimpleMQConstant.java | 4 +- ...rverAdapterRocketMQExampleApplication.java | 3 + .../rabbitmq/example/MessageProduce.java | 4 +- ...rSpringCloudStreamRabbitMQApplication.java | 3 + .../rocketmq/example/MessageConsume.java | 2 + .../rocketmq/example/MessageProduce.java | 9 ++- ...rSpringCloudStreamRocketMQApplication.java | 3 + .../ServerEsMonitorExampleApplication.java | 3 + .../server/ServerExampleApplication.java | 3 + .../common/constant/MagicNumberConstants.java | 32 ++++++++++ .../WebThreadPoolHandlerConfiguration1x.java | 3 + .../config/ConfigHandlerConfiguration.java | 21 +++++++ .../notify/ConfigModeNotifyConfigBuilder.java | 4 +- .../starter/parser/ConfigParserHandler.java | 5 +- .../refresher/ConsulRefresherHandler.java | 4 +- .../refresher/EtcdRefresherHandler.java | 2 +- .../refresher/ZookeeperRefresherHandler.java | 14 +++-- .../event/AbstractRefreshListener.java | 2 +- .../AdapterExecutorsRefreshListener.java | 4 +- ...Hippo4jConfigDynamicRefreshEventOrder.java | 10 ++-- .../DynamicThreadPoolPostProcessor.java | 23 +++++--- .../hippo4j/config/config/CommonConfig.java | 8 ++- .../config/ServerBootstrapProperties.java | 2 +- .../config/event/LocalDataChangeEvent.java | 7 ++- .../config/mapper/HisRunDataMapper.java | 3 + .../cn/hippo4j/config/model/CacheItem.java | 8 +-- .../threadpool/ConfigModifySaveReqDTO.java | 3 + .../threadpool/ConfigModifyVerifyReqDTO.java | 2 - .../config/notify/DefaultPublisher.java | 14 +++-- .../hippo4j/config/notify/NotifyCenter.java | 22 +++---- .../config/service/ConfigCacheService.java | 58 +++++++++++-------- .../config/service/LongPollingService.java | 41 ++++++++----- .../service/ThreadPoolAdapterService.java | 3 + .../service/biz/impl/ConfigServiceImpl.java | 52 +++++++++++------ .../biz/impl/HisRunDataServiceImpl.java | 14 +++-- .../cn/hippo4j/config/toolkit/EnvUtil.java | 21 ++++--- .../hippo4j/config/toolkit/Md5ConfigUtil.java | 21 +++++-- .../config/toolkit/SimpleReadWriteLock.java | 4 +- .../config/toolkit/SingletonRepository.java | 10 +++- .../event/LocalDataChangeEventTest.java | 4 +- .../controller/ThreadPoolController.java | 2 +- 77 files changed, 492 insertions(+), 176 deletions(-) create mode 100644 infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java index 9ad1dd0f..20d7551f 100644 --- a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java +++ b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java @@ -20,6 +20,9 @@ package cn.hippo4j.agent.plugin.apollo.boot; import cn.hippo4j.agent.core.boot.BootService; import cn.hippo4j.agent.core.boot.DefaultImplementor; +/** + * Apollo plugin boot service + */ @DefaultImplementor public class ApolloPluginBootService implements BootService { diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java index 8f139aeb..bdf9caaa 100644 --- a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java @@ -27,6 +27,9 @@ import net.bytebuddy.matcher.ElementMatcher; import static net.bytebuddy.matcher.ElementMatchers.any; +/** + * Apollo instrumentation + */ public class ApolloInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANCE_CLASS = "com.ctrip.framework.apollo.internals.DefaultConfig"; diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java index f316cdf4..e21049a6 100644 --- a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java @@ -20,6 +20,9 @@ package cn.hippo4j.agent.plugin.apollo.interceptor; import cn.hippo4j.agent.core.plugin.interceptor.enhance.EnhancedInstance; import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; +/** + * Default config constructor interceptor + */ public class DefaultConfigConstructorInterceptor implements InstanceConstructorInterceptor { @Override diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java index 3c332819..96f1139b 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java @@ -36,6 +36,9 @@ import java.util.Set; import static cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapt.getNames; +/** + * Dynamic thread pool change handler spring 1x + */ public class DynamicThreadPoolChangeHandlerSpring1x extends AbstractDynamicThreadPoolChangeHandlerSpring { public DynamicThreadPoolChangeHandlerSpring1x(ConfigurableApplicationContext context) { diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java index e8f5d73f..e918b90d 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java @@ -27,6 +27,9 @@ import net.bytebuddy.matcher.ElementMatcher; import static net.bytebuddy.matcher.ElementMatchers.named; import static cn.hippo4j.agent.core.plugin.match.NameMatch.byName; +/** + * Event publishing run listener instrumentation + */ public class EventPublishingRunListenerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANCE_CLASS = "org.springframework.boot.context.event.EventPublishingRunListener"; diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java index 1ab39c2e..8b3bd59d 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java @@ -32,6 +32,9 @@ import org.springframework.context.ConfigurableApplicationContext; import java.lang.reflect.Method; +/** + * Event publishing finished interceptor + */ public class EventPublishingFinishedInterceptor implements InstanceMethodsAroundInterceptor { private static final ILog FILE_LOGGER = LogManager.getLogger(EventPublishingFinishedInterceptor.class); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java index 98becdb8..6c8f96c2 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java @@ -28,6 +28,9 @@ import org.springframework.context.ConfigurableApplicationContext; import java.util.Map; +/** + * Dynamic thread pool change handler spring 2x + */ public class DynamicThreadPoolChangeHandlerSpring2x extends AbstractDynamicThreadPoolChangeHandlerSpring { public DynamicThreadPoolChangeHandlerSpring2x(ConfigurableApplicationContext context) { diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java index 56c60d5a..d341f00c 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java @@ -27,6 +27,9 @@ import net.bytebuddy.matcher.ElementMatcher; import static net.bytebuddy.matcher.ElementMatchers.named; import static cn.hippo4j.agent.core.plugin.match.NameMatch.byName; +/** + * Event publishing run listener instrumentation + */ public class EventPublishingRunListenerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANCE_CLASS = "org.springframework.boot.context.event.EventPublishingRunListener"; diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java index 1c782722..2f3803fd 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java @@ -30,6 +30,9 @@ import org.springframework.context.ConfigurableApplicationContext; import java.lang.reflect.Method; +/** + * Event publishing started interceptor + */ public class EventPublishingStartedInterceptor implements InstanceMethodsAroundInterceptor { private static final ILog LOGGER = LogManager.getLogger(EventPublishingStartedInterceptor.class); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java index 883cddb3..e4a16126 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java @@ -22,22 +22,37 @@ import cn.hippo4j.agent.core.boot.SpringBootConfigNode; import java.util.Arrays; import java.util.List; +/** + * Spring boot config + */ public class SpringBootConfig { + /** + * Spring + */ public static class Spring { + /** + * Dynamic + */ public static class Dynamic { + /** + * ThreadPool + */ @SpringBootConfigNode(root = SpringBootConfig.class) public static class Thread_Pool { + /** + * Apollo + */ @SpringBootConfigNode(root = SpringBootConfig.class) public static class Apollo { - public static List NAMESPACE = Arrays.asList("application"); + public static final List NAMESPACE = Arrays.asList("application"); } - public static String CONFIG_FILE_TYPE; + public static final String CONFIG_FILE_TYPE = null; } } } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java index 0ff2380c..2b70e22a 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java @@ -27,6 +27,9 @@ import org.springframework.core.env.ConfigurableEnvironment; import java.lang.reflect.Method; +/** + * Event publishing run listener environment prepared interceptor + */ public class EventPublishingRunListenerEnvironmentPreparedInterceptor implements InstanceMethodsAroundInterceptor { private static final Logger LOGGER = LoggerFactory.getLogger(EventPublishingRunListenerEnvironmentPreparedInterceptor.class); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java index 6db57f2c..6766c194 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java @@ -56,6 +56,9 @@ import static cn.hippo4j.agent.core.conf.Constants.SPRING_BOOT_CONFIG_PREFIX; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD_POOL_TEXT; +/** + * Abstract dynamic thread poo change handler spring + */ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements IDynamicThreadPoolChangeHandlerSpring { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDynamicThreadPoolChangeHandlerSpring.class); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java index 5aebf5a3..75eeab4a 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java @@ -17,6 +17,9 @@ package cn.hippo4j.agent.plugin.spring.common.support; +/** + * IDynamic thread pool change handler spring + */ public interface IDynamicThreadPoolChangeHandlerSpring { void registerApolloConfigHandler(); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java index e0e10bf8..4733acdc 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java @@ -23,6 +23,9 @@ import org.springframework.core.env.MapPropertySource; import java.util.HashMap; import java.util.Map; +/** + * Spring environment support + */ public class SpringEnvironmentSupport { public static void disableNonAgentSwitch(ConfigurableEnvironment environment) { diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java index 822f7022..bebfb843 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java @@ -29,6 +29,9 @@ import java.util.Iterator; import java.util.List; import java.util.Properties; +/** + * Spring properties loader + */ public class SpringPropertiesLoader { private static final ILog LOGGER = LogManager.getLogger(SpringPropertiesLoader.class); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index bde71b97..d54f901d 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -20,6 +20,7 @@ package cn.hippo4j.agent.plugin.spring.common.support; import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; import cn.hippo4j.agent.core.util.ReflectUtil; import cn.hippo4j.agent.core.util.ThreadPoolPropertyKey; +import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.toolkit.BooleanUtil; @@ -33,6 +34,9 @@ import java.util.Properties; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +/** + * Spring thread pool register support + */ public class SpringThreadPoolRegisterSupport { private static final Logger LOGGER = LoggerFactory.getLogger(SpringThreadPoolRegisterSupport.class); @@ -71,7 +75,7 @@ public class SpringThreadPoolRegisterSupport { properties.put(ThreadPoolPropertyKey.QUEUE_CAPACITY, executor.getQueue().remainingCapacity()); properties.put(ThreadPoolPropertyKey.THREAD_NAME_PREFIX, threadPoolId); properties.put(ThreadPoolPropertyKey.REJECTED_HANDLER, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()); - properties.put(ThreadPoolPropertyKey.EXECUTE_TIME_OUT, 10000L); + properties.put(ThreadPoolPropertyKey.EXECUTE_TIME_OUT, Constants.EXECUTE_TIME_OUT); // register executor. AgentThreadPoolInstanceRegistry.getInstance().putHolder(threadPoolId, executor, properties); diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java index 3c1534b5..0480cdc7 100644 --- a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java @@ -27,6 +27,9 @@ import net.bytebuddy.matcher.ElementMatcher; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; +/** + * Thread pool executor instrumentation + */ public class ThreadPoolExecutorInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANCE_CLASS = "java.util.concurrent.ThreadPoolExecutor"; diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java index 6c48b311..2061071a 100644 --- a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java @@ -31,12 +31,17 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.ThreadPoolExecutor; +/** + * Thread pool executor constructor method interceptor + */ public class ThreadPoolExecutorConstructorMethodInterceptor implements InstanceConstructorInterceptor { private static final ILog LOGGER = LogManager.getLogger(ThreadPoolExecutorConstructorMethodInterceptor.class); private static final List EXCLUDE_STACK_TRACE_ELEMENT_CLASS_PREFIX = Arrays.asList("java", "cn.hippo4j.agent"); + private static final int INITIAL_CAPACITY = 3; + @Override public void onConstruct(EnhancedInstance objInst, Object[] allArguments) throws Throwable { @@ -64,8 +69,8 @@ public class ThreadPoolExecutorConstructorMethodInterceptor implements InstanceC } } - List result = new ArrayList<>(3); // Find up to three layers - for (int j = 0; i < stackTraceElements.length && j < 3; i++, j++) { + List result = new ArrayList<>(INITIAL_CAPACITY); // Find up to three layers + for (int j = 0; i < stackTraceElements.length && j < INITIAL_CAPACITY; i++, j++) { String fullClassName = stackTraceElements[i].getClassName(); if (isExcludeThreadPoolClass(fullClassName)) { break; diff --git a/checkstyle/hippo4j_checkstyle_suppression.xml b/checkstyle/hippo4j_checkstyle_suppression.xml index 765a781b..39de4153 100644 --- a/checkstyle/hippo4j_checkstyle_suppression.xml +++ b/checkstyle/hippo4j_checkstyle_suppression.xml @@ -29,4 +29,5 @@ + diff --git a/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloSpringBoot1xExampleApplication.java b/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloSpringBoot1xExampleApplication.java index 8771b389..7c80e2b5 100644 --- a/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloSpringBoot1xExampleApplication.java +++ b/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloSpringBoot1xExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config apollo spring boot 1x example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example.core") public class ConfigApolloSpringBoot1xExampleApplication { diff --git a/examples/threadpool-example/config/config-apollo/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloExampleApplication.java b/examples/threadpool-example/config/config-apollo/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloExampleApplication.java index 61eacb93..7fd9d1b3 100644 --- a/examples/threadpool-example/config/config-apollo/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloExampleApplication.java +++ b/examples/threadpool-example/config/config-apollo/src/main/java/cn/hippo4j/example/config/apollo/ConfigApolloExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config apollo example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example.core") public class ConfigApolloExampleApplication { diff --git a/examples/threadpool-example/config/config-consul-spring-boot/src/main/java/cn/hippo4j/example/config/consul/ConfigConsulExampleApplication.java b/examples/threadpool-example/config/config-consul-spring-boot/src/main/java/cn/hippo4j/example/config/consul/ConfigConsulExampleApplication.java index 550acd64..e1519933 100644 --- a/examples/threadpool-example/config/config-consul-spring-boot/src/main/java/cn/hippo4j/example/config/consul/ConfigConsulExampleApplication.java +++ b/examples/threadpool-example/config/config-consul-spring-boot/src/main/java/cn/hippo4j/example/config/consul/ConfigConsulExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config consul example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example") public class ConfigConsulExampleApplication { diff --git a/examples/threadpool-example/config/config-etcd/src/main/java/cn/hippo4j/example/config/etcd/controller/TestController.java b/examples/threadpool-example/config/config-etcd/src/main/java/cn/hippo4j/example/config/etcd/controller/TestController.java index e073fdb3..28646f5b 100644 --- a/examples/threadpool-example/config/config-etcd/src/main/java/cn/hippo4j/example/config/etcd/controller/TestController.java +++ b/examples/threadpool-example/config/config-etcd/src/main/java/cn/hippo4j/example/config/etcd/controller/TestController.java @@ -17,6 +17,7 @@ package cn.hippo4j.example.config.etcd.controller; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,6 +30,7 @@ import java.util.concurrent.ThreadPoolExecutor; * @date : 2022/9/2 19:18 * @description: */ +@Slf4j @RestController @RequestMapping public class TestController { @@ -38,6 +40,6 @@ public class TestController { @GetMapping("test") public void test() { - System.out.println(messageConsumeDynamicExecutor.getMaximumPoolSize()); + log.info(String.valueOf(messageConsumeDynamicExecutor.getMaximumPoolSize())); } } diff --git a/examples/threadpool-example/config/config-nacos-spring-boot-1x/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosSpringBoot15ExampleApplication.java b/examples/threadpool-example/config/config-nacos-spring-boot-1x/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosSpringBoot15ExampleApplication.java index 6db043c1..c4f53b6f 100644 --- a/examples/threadpool-example/config/config-nacos-spring-boot-1x/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosSpringBoot15ExampleApplication.java +++ b/examples/threadpool-example/config/config-nacos-spring-boot-1x/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosSpringBoot15ExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config nacos spring boot 1.5 example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example.core") public class ConfigNacosSpringBoot15ExampleApplication { diff --git a/examples/threadpool-example/config/config-nacos/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosExampleApplication.java b/examples/threadpool-example/config/config-nacos/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosExampleApplication.java index 47044563..fda32d1e 100644 --- a/examples/threadpool-example/config/config-nacos/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosExampleApplication.java +++ b/examples/threadpool-example/config/config-nacos/src/main/java/cn/hippo4j/example/config/nacos/ConfigNacosExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config nacos example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example.core") public class ConfigNacosExampleApplication { diff --git a/examples/threadpool-example/config/config-zookeeper/src/main/java/cn/hippo4j/example/config/zookeeper/ConfigZookeeperExampleApplication.java b/examples/threadpool-example/config/config-zookeeper/src/main/java/cn/hippo4j/example/config/zookeeper/ConfigZookeeperExampleApplication.java index 5c5667fc..b019e46a 100644 --- a/examples/threadpool-example/config/config-zookeeper/src/main/java/cn/hippo4j/example/config/zookeeper/ConfigZookeeperExampleApplication.java +++ b/examples/threadpool-example/config/config-zookeeper/src/main/java/cn/hippo4j/example/config/zookeeper/ConfigZookeeperExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Config zookeeper example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = "cn.hippo4j.example.core") public class ConfigZookeeperExampleApplication { diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/config/DynamicThreadPoolConfig.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/config/DynamicThreadPoolConfig.java index 9f21ddf7..11855427 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/config/DynamicThreadPoolConfig.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/config/DynamicThreadPoolConfig.java @@ -50,6 +50,16 @@ public class DynamicThreadPoolConfig { public static final ThreadPoolExecutor FIELD2 = new ThreadPoolExecutor(10, 20, 1000, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(20)); + private static final long EXECUTE_TIMEOUT = 800L; + + private static final long AWAIT_TERMINATION_MILLIS = 5000L; + + private static final int MAX_QUEUE_CAPACITY = 200; + + private static final int CORE_POOL_SIZE = AVAILABLE_PROCESSORS * 2; + + private static final int MAX_POOL_SIZE = AVAILABLE_PROCESSORS * 4; + @Bean @DynamicThreadPool public Executor messageConsumeTtlDynamicThreadPool() { @@ -58,9 +68,9 @@ public class DynamicThreadPoolConfig { .dynamicPool() .threadFactory(threadPoolId) .threadPoolId(threadPoolId) - .executeTimeOut(800L) + .executeTimeOut(EXECUTE_TIMEOUT) .waitForTasksToCompleteOnShutdown(true) - .awaitTerminationMillis(5000L) + .awaitTerminationMillis(AWAIT_TERMINATION_MILLIS) .taskDecorator(new TaskTraceBuilderHandler()) .build(); // Ali ttl adaptation use case. @@ -86,10 +96,9 @@ public class DynamicThreadPoolConfig { public ThreadPoolTaskExecutor testSpringThreadPoolTaskExecutor() { ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); threadPoolTaskExecutor.setThreadNamePrefix("test-spring-task-executor_"); - int maxQueueCapacity = 200; - threadPoolTaskExecutor.setCorePoolSize(AVAILABLE_PROCESSORS * 2); - threadPoolTaskExecutor.setMaxPoolSize(AVAILABLE_PROCESSORS * 4); - threadPoolTaskExecutor.setQueueCapacity(maxQueueCapacity); + threadPoolTaskExecutor.setCorePoolSize(CORE_POOL_SIZE); + threadPoolTaskExecutor.setMaxPoolSize(MAX_POOL_SIZE); + threadPoolTaskExecutor.setQueueCapacity(MAX_QUEUE_CAPACITY); threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); threadPoolTaskExecutor.setTaskDecorator(new TaskDecoratorTest.ContextCopyingDecorator()); return threadPoolTaskExecutor; diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/ErrorLogRejectedExecutionHandler.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/ErrorLogRejectedExecutionHandler.java index cc5816d7..47fa7e18 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/ErrorLogRejectedExecutionHandler.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/ErrorLogRejectedExecutionHandler.java @@ -29,9 +29,11 @@ import java.util.concurrent.ThreadPoolExecutor; */ public class ErrorLogRejectedExecutionHandler implements CustomRejectedExecutionHandler { + private static final int REJECTED_TYPE = 12; + @Override public Integer getType() { - return 12; + return REJECTED_TYPE; } @Override @@ -39,6 +41,9 @@ public class ErrorLogRejectedExecutionHandler implements CustomRejectedExecution return new CustomErrorLogRejectedExecutionHandler(); } + /** + * Custom Error Log Rejected Execution Handler + */ public static class CustomErrorLogRejectedExecutionHandler implements RejectedExecutionHandler { @Override diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java index a7ac1ec8..7d57ee65 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java @@ -35,6 +35,10 @@ import java.util.concurrent.TimeUnit; @Component public class AlarmSendMessageTest { + private static final int SLEEP_TIME = 10240124; + + private static final int INITIAL_DELAY = 3; + /** * Test alarm notification. * If you need to run this single test, add @PostConstruct to the method. @@ -48,7 +52,7 @@ public class AlarmSendMessageTest { try { poolExecutor.execute(() -> { try { - Thread.sleep(10240124); + Thread.sleep(SLEEP_TIME); } catch (InterruptedException e) { throw new RuntimeException(e); } @@ -56,6 +60,6 @@ public class AlarmSendMessageTest { } catch (Exception ex) { log.error("Throw reject policy.", ex.getMessage()); } - }, 3, 1, TimeUnit.SECONDS); + }, INITIAL_DELAY, 1, TimeUnit.SECONDS); } } diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java index b3e52549..79a815e0 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java @@ -35,33 +35,41 @@ import java.util.concurrent.ThreadPoolExecutor; @Slf4j public class RegisterDynamicThreadPoolTest { + private static final int CAPACITY = 1024; + private static final long KEEP_ALIVE_TIME = 1024L; + private static final long EXECUTE_TIMEOUT = 1024L; + private static final int CAPACITY_ALARM = 90; + private static final int ACTIVE_ALARM = 90; + private static final int CORE_NOTIFY_INTERVAL = 5; + private static final int SERVER_NOTIFY_INTERVAL = 10; + public static ThreadPoolExecutor registerDynamicThreadPool(String threadPoolId) { DynamicThreadPoolRegisterParameter parameterInfo = DynamicThreadPoolRegisterParameter.builder() .corePoolSize(1) .maximumPoolSize(2) .blockingQueueType(BlockingQueueTypeEnum.LINKED_BLOCKING_QUEUE) - .capacity(1024) + .capacity(CAPACITY) // TimeUnit.SECONDS - .keepAliveTime(1024L) + .keepAliveTime(KEEP_ALIVE_TIME) // TimeUnit.MILLISECONDS - .executeTimeOut(1024L) + .executeTimeOut(EXECUTE_TIMEOUT) .rejectedPolicyType(RejectedPolicyTypeEnum.DISCARD_POLICY) .isAlarm(true) .allowCoreThreadTimeOut(false) - .capacityAlarm(90) - .activeAlarm(90) + .capacityAlarm(CAPACITY_ALARM) + .activeAlarm(ACTIVE_ALARM) .threadPoolId(threadPoolId) .threadNamePrefix(threadPoolId) .build(); // Core mode and server mode, you can choose one of them. DynamicThreadPoolRegisterCoreNotifyParameter coreNotifyParameter = DynamicThreadPoolRegisterCoreNotifyParameter.builder() .receives("chen.ma") - .interval(5) + .interval(CORE_NOTIFY_INTERVAL) .build(); DynamicThreadPoolRegisterServerNotifyParameter serverNotifyParameter = DynamicThreadPoolRegisterServerNotifyParameter.builder() .platform(NotifyPlatformEnum.WECHAT.name()) .accessToken("7487d0a0-20ec-40ab-b67b-ce68db406b37") - .interval(10) + .interval(SERVER_NOTIFY_INTERVAL) .receives("chen.ma") .build(); DynamicThreadPoolRegisterWrapper registerWrapper = DynamicThreadPoolRegisterWrapper.builder() diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RunStateHandlerTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RunStateHandlerTest.java index dc5747fb..df1bc329 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RunStateHandlerTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RunStateHandlerTest.java @@ -44,6 +44,12 @@ public class RunStateHandlerTest { @Resource private ThreadPoolExecutor messageProduceDynamicThreadPool; + private static final int MAX_RANDOM = 10; + private static final int SLEEP_500 = 500; + private static final int SLEEP_1000 = 1000; + private static final int SLEEP_3000 = 3000; + private static final int SLEEP_5000 = 5000; + /* * @Resource private ThreadPoolTaskExecutor testSpringThreadPoolTaskExecutor; */ @@ -82,7 +88,7 @@ public class RunStateHandlerTest { */ MDC.put(EXECUTE_TIMEOUT_TRACE, "39948722194639841.251.16612352194691531"); try { - Thread.sleep(5000); + Thread.sleep(SLEEP_5000); } catch (InterruptedException e) { throw new RuntimeException(e); } @@ -90,14 +96,14 @@ public class RunStateHandlerTest { try { executor.execute(() -> { try { - int maxRandom = 10; + int maxRandom = MAX_RANDOM; int temp = 2; Random random = new Random(); // Assignment thread pool completedTaskCount if (random.nextInt(maxRandom) % temp == 0) { - Thread.sleep(1000); + Thread.sleep(SLEEP_1000); } else { - Thread.sleep(3000); + Thread.sleep(SLEEP_3000); } } catch (InterruptedException ignored) { } @@ -105,7 +111,7 @@ public class RunStateHandlerTest { } catch (Exception ignored) { } try { - Thread.sleep(500); + Thread.sleep(SLEEP_500); } catch (InterruptedException e) { throw new RuntimeException(e); } diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java index 0d69bdcb..dedc14bc 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java @@ -38,6 +38,8 @@ public class TaskDecoratorTest { public static final String PLACEHOLDER = "site"; + private static final int SLEEP_TIME = 5000; + private final ThreadPoolExecutor taskDecoratorTestExecutor = new ThreadPoolExecutor( 1, 1, @@ -60,7 +62,7 @@ public class TaskDecoratorTest { taskDecoratorTestExecutor.execute(() -> { MDC.put(PLACEHOLDER, "View the official website: https://www.hippo4j.cn"); try { - Thread.sleep(5000); + Thread.sleep(SLEEP_TIME); DynamicThreadPoolWrapper poolWrapper = GlobalThreadPoolManage.getExecutorService(GlobalTestConstant.MESSAGE_PRODUCE); ThreadPoolExecutor threadPoolExecutor = poolWrapper.getExecutor(); threadPoolExecutor.execute(() -> log.info("Pass context via taskDecorator MDC: {}", MDC.get(PLACEHOLDER))); @@ -70,6 +72,9 @@ public class TaskDecoratorTest { }); } + /** + * Context Copying Decorator + */ public static class ContextCopyingDecorator implements TaskDecorator { @Override diff --git a/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/MessageProduce.java b/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/MessageProduce.java index d910d9e1..133889d5 100644 --- a/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/MessageProduce.java +++ b/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/MessageProduce.java @@ -39,6 +39,8 @@ public class MessageProduce { public static final String TOPIC = "test"; + private static final int SLEEP_TIME = 3; + private final KafkaTemplate template; @GetMapping("/message/send") @@ -54,9 +56,9 @@ public class MessageProduce { String message = UUID.randomUUID().toString(); template.send(TOPIC, "autoTestMessage " + message); try { - TimeUnit.SECONDS.sleep(3); + TimeUnit.SECONDS.sleep(SLEEP_TIME); } catch (InterruptedException e) { - e.printStackTrace(); + log.error(e.getMessage()); } } }); diff --git a/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/ServerAdapterKafkaExampleApplication.java b/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/ServerAdapterKafkaExampleApplication.java index 08e6f069..32987cb1 100644 --- a/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/ServerAdapterKafkaExampleApplication.java +++ b/examples/threadpool-example/server/adapter-kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/example/ServerAdapterKafkaExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Server adapter kafka example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = {"cn.hippo4j.example.core", "cn.hippo4j.springboot.starter.adapter.kafka.example"}) public class ServerAdapterKafkaExampleApplication { diff --git a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/ServerAdapterRabbitMQExampleApplication.java b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/ServerAdapterRabbitMQExampleApplication.java index 49d40cc8..821ccbdd 100644 --- a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/ServerAdapterRabbitMQExampleApplication.java +++ b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/ServerAdapterRabbitMQExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Server Adapter RabbitMQ Example Application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = {"cn.hippo4j.example.core", "cn.hippo4j.springboot.starter.adapter.rabbitmq.example"}) public class ServerAdapterRabbitMQExampleApplication { diff --git a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/config/RabbitMQThreadPoolConfig.java b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/config/RabbitMQThreadPoolConfig.java index d53d8f30..7eb4f6b4 100644 --- a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/config/RabbitMQThreadPoolConfig.java +++ b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/config/RabbitMQThreadPoolConfig.java @@ -31,15 +31,23 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @Configuration public class RabbitMQThreadPoolConfig { + private static final int MAX_POOL_SIZE = 5; + + private static final int CORE_POOL_SIZE = 5; + + private static final int QUEUE_CAPACITY = 1000; + + private static final int CONSUMERS_PER_QUEUE = 10; + @Bean public ThreadPoolTaskExecutor rabbitListenerTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); // Specify the maximum number of threads. - executor.setMaxPoolSize(5); + executor.setMaxPoolSize(MAX_POOL_SIZE); // Specifies the minimum number of thread pool maintenance threads. - executor.setCorePoolSize(5); + executor.setCorePoolSize(CORE_POOL_SIZE); // Specifies the number of tasks waiting to be processed. - executor.setQueueCapacity(1000); + executor.setQueueCapacity(QUEUE_CAPACITY); executor.setThreadNamePrefix("RabbitListenerTaskExecutor-"); return executor; } @@ -50,7 +58,7 @@ public class RabbitMQThreadPoolConfig { DirectRabbitListenerContainerFactory factory = new DirectRabbitListenerContainerFactory(); factory.setConnectionFactory(abstractConnectionFactory); factory.setMessageConverter(messageConverter); - factory.setConsumersPerQueue(10); + factory.setConsumersPerQueue(CONSUMERS_PER_QUEUE); abstractConnectionFactory.setExecutor(rabbitListenerTaskExecutor); return factory; } diff --git a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/constants/SimpleMQConstant.java b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/constants/SimpleMQConstant.java index 3b3898a1..2d12c40b 100644 --- a/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/constants/SimpleMQConstant.java +++ b/examples/threadpool-example/server/adapter-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/example/constants/SimpleMQConstant.java @@ -20,7 +20,7 @@ package cn.hippo4j.springboot.starter.adapter.rabbitmq.example.constants; /** * Simple MQ constant. */ -public interface SimpleMQConstant { +public class SimpleMQConstant { - String QUEUE_NAME = "framework_message-center_queue"; + public static final String QUEUE_NAME = "framework_message-center_queue"; } diff --git a/examples/threadpool-example/server/adapter-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/example/ServerAdapterRocketMQExampleApplication.java b/examples/threadpool-example/server/adapter-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/example/ServerAdapterRocketMQExampleApplication.java index 25aac473..f9daad69 100644 --- a/examples/threadpool-example/server/adapter-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/example/ServerAdapterRocketMQExampleApplication.java +++ b/examples/threadpool-example/server/adapter-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/example/ServerAdapterRocketMQExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Server adapter rocketMQ example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = {"cn.hippo4j.example.core", "cn.hippo4j.springboot.starter.adapter.rocketmq.example"}) public class ServerAdapterRocketMQExampleApplication { diff --git a/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/MessageProduce.java b/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/MessageProduce.java index eeb2953a..06d5f1f0 100644 --- a/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/MessageProduce.java +++ b/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/MessageProduce.java @@ -37,10 +37,12 @@ public class MessageProduce { private final StreamBridge streamBridge; + private static final int MAX_SEND_SIZE = 10; + @GetMapping("/message/send") public String sendMessage(@RequestParam(required = false) Integer maxSendSize) { if (maxSendSize == null) { - maxSendSize = 10; + maxSendSize = MAX_SEND_SIZE; } for (int i = 0; i < maxSendSize; i++) { sendMessage0(); diff --git a/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/ServerAdapterSpringCloudStreamRabbitMQApplication.java b/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/ServerAdapterSpringCloudStreamRabbitMQApplication.java index ee5fdad6..1f974800 100644 --- a/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/ServerAdapterSpringCloudStreamRabbitMQApplication.java +++ b/examples/threadpool-example/server/adapter-stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/example/ServerAdapterSpringCloudStreamRabbitMQApplication.java @@ -29,6 +29,9 @@ import org.springframework.messaging.MessageHeaders; import java.util.function.Consumer; +/** + * Server Adapter Spring Cloud Stream RabbitMQ Application + */ @Slf4j @EnableDynamicThreadPool @SpringBootApplication diff --git a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageConsume.java b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageConsume.java index dd96a37e..9b546442 100644 --- a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageConsume.java +++ b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageConsume.java @@ -39,6 +39,7 @@ public class MessageConsume { long startTime = System.currentTimeMillis(); try { // ignore + log.info("Message: {}", JSONUtil.toJSONString(message)); } finally { log.info("Keys: {}, Msg id: {}, Execute time: {} ms, Message: {}", headers.get("rocketmq_KEYS"), headers.get("rocketmq_MESSAGE_ID"), System.currentTimeMillis() - startTime, JSONUtil.toJSONString(message)); @@ -51,6 +52,7 @@ public class MessageConsume { long startTime = System.currentTimeMillis(); try { // ignore + log.info("Message: {}", JSONUtil.toJSONString(message)); } finally { log.info("Keys: {}, Msg id: {}, Execute time: {} ms, Message: {}", headers.get("rocketmq_KEYS"), headers.get("rocketmq_MESSAGE_ID"), System.currentTimeMillis() - startTime, JSONUtil.toJSONString(message)); diff --git a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageProduce.java b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageProduce.java index b7f9d590..6410eb5f 100644 --- a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageProduce.java +++ b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/MessageProduce.java @@ -43,10 +43,13 @@ public class MessageProduce { public static final String MESSAGE_CENTER_SAVE_MESSAGE_TAG = "framework_message-center_save-message_tag"; + private static final int MAX_SEND_SIZE = 10; + + private static final long SEND_TIMEOUT = 2000L; + @GetMapping("/message/send") public String sendMessage() { - int maxSendSize = 10; - for (int i = 0; i < maxSendSize; i++) { + for (int i = 0; i < MAX_SEND_SIZE; i++) { sendMessage(MESSAGE_CENTER_SEND_MESSAGE_TAG); sendMessage(MESSAGE_CENTER_SAVE_MESSAGE_TAG); } @@ -67,7 +70,7 @@ public class MessageProduce { long startTime = System.currentTimeMillis(); boolean sendResult = false; try { - sendResult = output.send(message, 2000L); + sendResult = output.send(message, SEND_TIMEOUT); } finally { log.info("Send status: {}, Keys: {}, Execute time: {} ms, Message: {}", sendResult, diff --git a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/ServerAdapterSpringCloudStreamRocketMQApplication.java b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/ServerAdapterSpringCloudStreamRocketMQApplication.java index 9917c82a..79194b6f 100644 --- a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/ServerAdapterSpringCloudStreamRocketMQApplication.java +++ b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/example/ServerAdapterSpringCloudStreamRocketMQApplication.java @@ -24,6 +24,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Source; +/** + * Server Adapter Spring Cloud Stream RocketMQ Application + */ @Slf4j @EnableDynamicThreadPool @EnableBinding({Source.class, MySink.class}) diff --git a/examples/threadpool-example/server/monitor-elasticsearch/src/main/java/cn/hippo4j/example/es/monitor/ServerEsMonitorExampleApplication.java b/examples/threadpool-example/server/monitor-elasticsearch/src/main/java/cn/hippo4j/example/es/monitor/ServerEsMonitorExampleApplication.java index 0a5a1455..9f26765c 100644 --- a/examples/threadpool-example/server/monitor-elasticsearch/src/main/java/cn/hippo4j/example/es/monitor/ServerEsMonitorExampleApplication.java +++ b/examples/threadpool-example/server/monitor-elasticsearch/src/main/java/cn/hippo4j/example/es/monitor/ServerEsMonitorExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Server es monitor example application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = {"cn.hippo4j.example.core", "cn.hippo4j.monitor"}) public class ServerEsMonitorExampleApplication { diff --git a/examples/threadpool-example/server/server/src/main/java/cn/hippo4j/example/server/ServerExampleApplication.java b/examples/threadpool-example/server/server/src/main/java/cn/hippo4j/example/server/ServerExampleApplication.java index ce9a3a6d..23d6ed17 100644 --- a/examples/threadpool-example/server/server/src/main/java/cn/hippo4j/example/server/ServerExampleApplication.java +++ b/examples/threadpool-example/server/server/src/main/java/cn/hippo4j/example/server/ServerExampleApplication.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.enable.EnableDynamicThreadPool; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * Server Example Application + */ @EnableDynamicThreadPool @SpringBootApplication(scanBasePackages = {"cn.hippo4j.example.core", "cn.hippo4j.example.server"}) public class ServerExampleApplication { diff --git a/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java new file mode 100644 index 00000000..fd0b5d18 --- /dev/null +++ b/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.constant; + +public class MagicNumberConstants { + + public static final int INDEX_0 = 0; + + public static final int INDEX_1 = 1; + + public static final int INDEX_2 = 2; + + public static final int INDEX_3 = 3; + + public static final int SIZE_4 = 4; + +} diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/WebThreadPoolHandlerConfiguration1x.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/WebThreadPoolHandlerConfiguration1x.java index 3340b3fc..80df456a 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/WebThreadPoolHandlerConfiguration1x.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/WebThreadPoolHandlerConfiguration1x.java @@ -46,6 +46,9 @@ import javax.servlet.Servlet; @AutoConfigureBefore(WebThreadPoolHandlerConfiguration.class) public class WebThreadPoolHandlerConfiguration1x { + /** + * Embedded tomcat + */ @Configuration @ConditionalOnClass({Servlet.class, Tomcat.class}) @ConditionalOnBean(WebThreadPoolRunStateHandler.class) diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java index 1deac720..b9e60ad1 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java @@ -68,6 +68,9 @@ public class ConfigHandlerConfiguration { return new DefaultBootstrapConfigPropertiesBinderAdapt(); } + /** + * Embedded Nacos + */ @RequiredArgsConstructor @ConditionalOnClass(value = ConfigService.class, name = NACOS_INJECTED_BEAN_NAME) @ConditionalOnMissingClass(NACOS_CONFIG_MANAGER_KEY) @@ -80,6 +83,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Embedded Nacos Cloud + */ @ConditionalOnClass(NacosConfigProperties.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = NACOS_DATA_ID_KEY) static class EmbeddedNacosCloud { @@ -90,6 +96,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Embedded Apollo + */ @ConditionalOnClass(com.ctrip.framework.apollo.ConfigService.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = APOLLO_NAMESPACE_KEY) static class EmbeddedApollo { @@ -100,6 +109,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Embedded Consul + */ @ConditionalOnClass(ConsulConfigProperties.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = CONSUL_DATA_KEY) static class EmbeddedConsul { @@ -110,6 +122,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Embedded Zookeeper + */ @ConditionalOnClass(CuratorFramework.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = ZOOKEEPER_CONNECT_STR_KEY) static class EmbeddedZookeeper { @@ -120,6 +135,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Embedded Etcd + */ @ConditionalOnClass(Client.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = ETCD) static class EmbeddedEtcd { @@ -130,6 +148,9 @@ public class ConfigHandlerConfiguration { } } + /** + * Polaris + */ @ConditionalOnClass(ConfigFileService.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, name = POLARIS) static class Polaris { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java index b12ab6ed..d8526557 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java @@ -53,6 +53,8 @@ public class ConfigModeNotifyConfigBuilder implements NotifyConfigBuilder { private final WebThreadPoolService webThreadPoolService; + private static final int DEFAULT_INTERVAL = 5; + @Override public Map> buildNotify() { Map> resultMap = new HashMap<>(); @@ -145,7 +147,7 @@ public class ConfigModeNotifyConfigBuilder implements NotifyConfigBuilder { .orElse(Optional.ofNullable(configProperties.getDefaultExecutor()) .map(ExecutorProperties::getNotify) .map(ExecutorNotifyProperties::getInterval) - .orElse(5)); + .orElse(DEFAULT_INTERVAL)); } private String buildReceive(IExecutorProperties executorProperties) { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java index 3b34bf25..93d394b3 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java @@ -27,7 +27,7 @@ import java.util.ServiceLoader; /** * Config parser handler. */ -public class ConfigParserHandler { +public final class ConfigParserHandler { private static final List PARSERS = new ArrayList<>(); @@ -53,6 +53,9 @@ public class ConfigParserHandler { return ConfigParserHandlerHolder.INSTANCE; } + /** + * Config Parser Handler Holder + */ private static class ConfigParserHandlerHolder { private static final ConfigParserHandler INSTANCE = new ConfigParserHandler(); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java index 51826680..38e7b483 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java @@ -39,6 +39,8 @@ import java.util.stream.Collectors; @Slf4j public class ConsulRefresherHandler extends AbstractConfigThreadPoolDynamicRefresh { + private static final int INITIAL_CAPACITY = 64; + @EventListener(EnvironmentChangeEvent.class) public void refreshed(EnvironmentChangeEvent event) { Map configInfo = extractLatestConfigInfo(event); @@ -54,7 +56,7 @@ public class ConsulRefresherHandler extends AbstractConfigThreadPoolDynamicRefre .map(propertySource -> (BootstrapPropertySource) propertySource).collect(Collectors.toList()); Optional> bootstrapPropertySource = bootstrapPropertySourceList.stream() .filter(source -> source.getName().contains(activeProfile) && source.getPropertyNames().length != 0).findFirst(); - Map configInfo = new HashMap<>(64); + Map configInfo = new HashMap<>(INITIAL_CAPACITY); if (bootstrapPropertySource.isPresent()) { ConsulPropertySource consulPropertySource = (ConsulPropertySource) bootstrapPropertySource.get().getDelegate(); String[] propertyNames = consulPropertySource.getPropertyNames(); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java index af4a2080..88d7f7b6 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java @@ -115,4 +115,4 @@ public class EtcdRefresherHandler extends AbstractConfigThreadPoolDynamicRefresh .build() : clientBuilder.build(); } } -} \ No newline at end of file +} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index 19326c7d..5a9ef433 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -41,21 +41,25 @@ import java.util.Map; @Slf4j public class ZookeeperRefresherHandler extends AbstractConfigThreadPoolDynamicRefresh { - static final String ZK_CONNECT_STR = "zk-connect-str"; + private static final String ZK_CONNECT_STR = "zk-connect-str"; - static final String ROOT_NODE = "root-node"; + private static final String ROOT_NODE = "root-node"; - static final String CONFIG_VERSION = "config-version"; + private static final String CONFIG_VERSION = "config-version"; - static final String NODE = "node"; + private static final String NODE = "node"; private CuratorFramework curatorFramework; + private static final int BASE_SLEEP_TIME_MS = 1000; + + private static final int MAX_RETRIES = 3; + @Override public void initRegisterListener() { Map zkConfigs = bootstrapConfigProperties.getZookeeper(); curatorFramework = CuratorFrameworkFactory.newClient(zkConfigs.get(ZK_CONNECT_STR), - new ExponentialBackoffRetry(1000, 3)); + new ExponentialBackoffRetry(BASE_SLEEP_TIME_MS, MAX_RETRIES)); String nodePath = ZKPaths.makePath(ZKPaths.makePath(zkConfigs.get(ROOT_NODE), zkConfigs.get(CONFIG_VERSION)), zkConfigs.get(NODE)); final ConnectionStateListener connectionStateListener = (client, newState) -> { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java index 61d6fe08..85dd2dbc 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java @@ -55,4 +55,4 @@ public abstract class AbstractRefreshListener implements RefreshListener adapterExecutors; + List adapterExecutors = event.getBootstrapConfigProperties().getAdapterExecutors(); Map threadPoolAdapterMap = ApplicationContextHolder.getBeansOfType(ThreadPoolAdapter.class); - if (CollectionUtil.isEmpty(adapterExecutors = event.getBootstrapConfigProperties().getAdapterExecutors()) || CollectionUtil.isEmpty(threadPoolAdapterMap)) { + if (CollectionUtil.isEmpty(adapterExecutors) || CollectionUtil.isEmpty(threadPoolAdapterMap)) { return; } for (AdapterExecutorProperties each : adapterExecutors) { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java index 1b7106ad..f42e7901 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java @@ -20,13 +20,13 @@ package cn.hippo4j.config.springboot.starter.refresher.event; /** * Hippo-4j config dynamic refresh event order. */ -public interface Hippo4jConfigDynamicRefreshEventOrder { +public class Hippo4jConfigDynamicRefreshEventOrder { - int WEB_EXECUTOR_LISTENER = 0; + public static final int WEB_EXECUTOR_LISTENER = 0; - int PLATFORMS_LISTENER = 1; + public static final int PLATFORMS_LISTENER = 1; - int EXECUTORS_LISTENER = 2; + public static final int EXECUTORS_LISTENER = 2; - int ADAPTER_EXECUTORS_LISTENER = 3; + public static final int ADAPTER_EXECUTORS_LISTENER = 3; } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java index 98db66ce..c50a2403 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -18,6 +18,7 @@ package cn.hippo4j.config.springboot.starter.support; import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.toolkit.ReflectUtil; @@ -54,6 +55,14 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { private final BootstrapConfigProperties configProperties; + private static final int DEFAULT_ACTIVE_ALARM = 80; + + private static final int DEFAULT_CAPACITY_ALARM = 80; + + private static final int DEFAULT_INTERVAL = 5; + + private static final String DEFAULT_RECEIVES = ""; + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; @@ -76,8 +85,8 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { log.error("Failed to create dynamic thread pool in annotation mode.", ex); return bean; } - DynamicThreadPoolExecutor dynamicThreadPoolExecutor; - if ((dynamicThreadPoolExecutor = DynamicThreadPoolAdapterChoose.unwrap(bean)) == null) { + DynamicThreadPoolExecutor dynamicThreadPoolExecutor = DynamicThreadPoolAdapterChoose.unwrap(bean); + if (dynamicThreadPoolExecutor == null) { dynamicThreadPoolExecutor = (DynamicThreadPoolExecutor) bean; } DynamicThreadPoolWrapper wrap = new DynamicThreadPoolWrapper(dynamicThreadPoolExecutor.getThreadPoolId(), dynamicThreadPoolExecutor); @@ -156,7 +165,7 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { .setAllowCoreThreadTimeOut(executor.allowsCoreThreadTimeOut()) .setKeepAliveTime(executor.getKeepAliveTime(TimeUnit.SECONDS)) .setBlockingQueue(queueType) - .setExecuteTimeOut(10000L) + .setExecuteTimeOut(Constants.EXECUTE_TIME_OUT) .setQueueCapacity(queueCapacity) .setRejectedHandler(executor.getRejectedExecutionHandler().getClass().getSimpleName()) .setThreadPoolId(threadPoolId); @@ -233,15 +242,15 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { boolean isAlarm = Optional.ofNullable(executorProperties.getAlarm()) .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getAlarm).orElse(true)); int activeAlarm = Optional.ofNullable(executorProperties.getActiveAlarm()) - .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getActiveAlarm).orElse(80)); + .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getActiveAlarm).orElse(DEFAULT_ACTIVE_ALARM)); int capacityAlarm = Optional.ofNullable(executorProperties.getCapacityAlarm()) - .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getCapacityAlarm).orElse(80)); + .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getCapacityAlarm).orElse(DEFAULT_CAPACITY_ALARM)); int interval = Optional.ofNullable(notify) .map(ExecutorNotifyProperties::getInterval) - .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getNotify).map(ExecutorNotifyProperties::getInterval).orElse(5)); + .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getNotify).map(ExecutorNotifyProperties::getInterval).orElse(DEFAULT_INTERVAL)); String receive = Optional.ofNullable(notify) .map(ExecutorNotifyProperties::getReceives) - .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getNotify).map(ExecutorNotifyProperties::getReceives).orElse("")); + .orElseGet(() -> Optional.ofNullable(configProperties.getDefaultExecutor()).map(ExecutorProperties::getNotify).map(ExecutorNotifyProperties::getReceives).orElse(DEFAULT_RECEIVES)); ThreadPoolNotifyAlarm threadPoolNotifyAlarm = new ThreadPoolNotifyAlarm(isAlarm, activeAlarm, capacityAlarm); threadPoolNotifyAlarm.setInterval(interval); threadPoolNotifyAlarm.setReceives(receive); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java index 5e86591f..578677bb 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java @@ -32,6 +32,10 @@ import static cn.hippo4j.common.constant.Constants.AVAILABLE_PROCESSORS; @Configuration public class CommonConfig { + private static final int DEFAULT_QUEUE_CAPACITY = 4096; + + private static final int DEFAULT_AWAIT_TERMINATION_MILLIS = 5000; + @Bean @ConditionalOnMissingBean public ApplicationContextHolder hippo4jApplicationContextHolder() { @@ -45,9 +49,9 @@ public class CommonConfig { monitorThreadPool.setThreadNamePrefix("server.monitor.executor."); monitorThreadPool.setCorePoolSize(AVAILABLE_PROCESSORS); monitorThreadPool.setMaxPoolSize(AVAILABLE_PROCESSORS << 1); - monitorThreadPool.setQueueCapacity(4096); + monitorThreadPool.setQueueCapacity(DEFAULT_QUEUE_CAPACITY); monitorThreadPool.setAllowCoreThreadTimeOut(true); - monitorThreadPool.setAwaitTerminationMillis(5000); + monitorThreadPool.setAwaitTerminationMillis(DEFAULT_AWAIT_TERMINATION_MILLIS); return monitorThreadPool; } } diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/ServerBootstrapProperties.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/ServerBootstrapProperties.java index d8d855f7..458ace22 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/ServerBootstrapProperties.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/ServerBootstrapProperties.java @@ -33,7 +33,7 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = ServerBootstrapProperties.PREFIX) public class ServerBootstrapProperties { - public final static String PREFIX = "hippo4j.core"; + public static final String PREFIX = "hippo4j.core"; /** * Whether to start the background task of cleaning up thread pool history data. diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/event/LocalDataChangeEvent.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/event/LocalDataChangeEvent.java index 652d2daa..728ffb93 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/event/LocalDataChangeEvent.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/event/LocalDataChangeEvent.java @@ -17,20 +17,23 @@ package cn.hippo4j.config.event; +import lombok.Getter; + /** * Local data change event. */ +@Getter public class LocalDataChangeEvent extends AbstractEvent { /** * Tenant + Item + Thread-pool */ - public final String groupKey; + private final String groupKey; /** * Client instance unique identifier */ - public final String identify; + private final String identify; public LocalDataChangeEvent(String identify, String groupKey) { this.identify = identify; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/mapper/HisRunDataMapper.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/mapper/HisRunDataMapper.java index 8405f529..c9311153 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/mapper/HisRunDataMapper.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/mapper/HisRunDataMapper.java @@ -64,6 +64,9 @@ public interface HisRunDataMapper extends BaseMapper { + "limit 4") List queryThreadPoolMaxRanking(@Param("startTime") Long startTime, @Param("endTime") Long endTime); + /** + * Thread Pool Task Ranking + */ @Data class ThreadPoolTaskRanking { diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/CacheItem.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/CacheItem.java index c397fed3..0ff3004e 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/CacheItem.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/CacheItem.java @@ -33,13 +33,13 @@ public class CacheItem { final String groupKey; - public volatile String md5 = Constants.NULL; + private volatile String md5 = Constants.NULL; - public volatile long lastModifiedTs; + private volatile long lastModifiedTs; - public volatile ConfigAllInfo configAllInfo; + private volatile ConfigAllInfo configAllInfo; - public SimpleReadWriteLock rwLock = new SimpleReadWriteLock(); + private SimpleReadWriteLock rwLock = new SimpleReadWriteLock(); public CacheItem(String groupKey) { this.groupKey = SingletonRepository.DataIdGroupIdCache.getSingleton(groupKey); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java index 035bd038..44fbb066 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java @@ -21,6 +21,9 @@ import lombok.Data; import javax.validation.constraints.Pattern; +/** + * Config Modify Save Req DTO + */ @Data public class ConfigModifySaveReqDTO { diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java index 946e4764..9e9c2d0b 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifyVerifyReqDTO.java @@ -20,8 +20,6 @@ package cn.hippo4j.config.model.biz.threadpool; import com.fasterxml.jackson.annotation.JsonAlias; import lombok.Data; -import java.util.List; - /** * Config modify verify dto */ diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/DefaultPublisher.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/DefaultPublisher.java index 39612b11..c147f0ed 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/DefaultPublisher.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/DefaultPublisher.java @@ -48,6 +48,12 @@ public class DefaultPublisher extends Thread implements EventPublisher { protected volatile Long lastEventSequence = -1L; + private static final int DEFAULT_QUEUE_MAX_SIZE = -1; + + private static final int DEFAULT_WAIT_TIMES = 60; + + private static final long SLEEP_1S = 1000L; + private static final AtomicReferenceFieldUpdater UPDATER = AtomicReferenceFieldUpdater .newUpdater(DefaultPublisher.class, Long.class, "lastEventSequence"); @@ -64,8 +70,8 @@ public class DefaultPublisher extends Thread implements EventPublisher { public synchronized void start() { if (!initialized) { super.start(); - if (queueMaxSize == -1) { - queueMaxSize = NotifyCenter.ringBufferSize; + if (queueMaxSize == DEFAULT_QUEUE_MAX_SIZE) { + queueMaxSize = NotifyCenter.RING_BUFFER_SIZE; } initialized = true; } @@ -78,13 +84,13 @@ public class DefaultPublisher extends Thread implements EventPublisher { private void openEventHandler() { try { - int waitTimes = 60; + int waitTimes = DEFAULT_WAIT_TIMES; for (;;) { if (shutdown || hasSubscriber() || waitTimes <= 0) { break; } try { - Thread.sleep(1000L); + Thread.sleep(SLEEP_1S); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/NotifyCenter.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/NotifyCenter.java index 78101e86..6c7c6ab5 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/NotifyCenter.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/notify/NotifyCenter.java @@ -37,9 +37,9 @@ public class NotifyCenter { private static final NotifyCenter INSTANCE = new NotifyCenter(); - public static int ringBufferSize = 16384; + public static final int RING_BUFFER_SIZE = 16384; - public static int shareBufferSize = 1024; + public static final int SHARE_BUFFER_SIZE = 1024; private DefaultSharePublisher sharePublisher; @@ -61,7 +61,7 @@ public class NotifyCenter { } }; INSTANCE.sharePublisher = new DefaultSharePublisher(); - INSTANCE.sharePublisher.init(AbstractSlowEvent.class, shareBufferSize); + INSTANCE.sharePublisher.init(AbstractSlowEvent.class, SHARE_BUFFER_SIZE); } public static void registerSubscriber(final AbstractSubscriber consumer) { @@ -73,20 +73,20 @@ public class NotifyCenter { addSubscriber(consumer, subscribeType); } } - return; - } - final Class subscribeType = consumer.subscribeType(); - if (ClassUtil.isAssignableFrom(AbstractSlowEvent.class, subscribeType)) { - INSTANCE.sharePublisher.addSubscriber(consumer, subscribeType); - return; + } else { + final Class subscribeType = consumer.subscribeType(); + if (ClassUtil.isAssignableFrom(AbstractSlowEvent.class, subscribeType)) { + INSTANCE.sharePublisher.addSubscriber(consumer, subscribeType); + } else { + addSubscriber(consumer, subscribeType); + } } - addSubscriber(consumer, subscribeType); } private static void addSubscriber(final AbstractSubscriber consumer, Class subscribeType) { final String topic = ClassUtil.getCanonicalName(subscribeType); synchronized (NotifyCenter.class) { - MapUtil.computeIfAbsent(INSTANCE.publisherMap, topic, publisherFactory, subscribeType, ringBufferSize); + MapUtil.computeIfAbsent(INSTANCE.publisherMap, topic, publisherFactory, subscribeType, RING_BUFFER_SIZE); } EventPublisher publisher = INSTANCE.publisherMap.get(topic); publisher.addSubscriber(consumer); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java index 5a3dfda4..04232aa5 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java @@ -47,6 +47,7 @@ import java.util.concurrent.atomic.AtomicInteger; import static cn.hippo4j.common.constant.Constants.GROUP_KEY_DELIMITER; import static cn.hippo4j.common.constant.Constants.GROUP_KEY_DELIMITER_TRANSLATION; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_3; /** * Config cache service. @@ -54,7 +55,7 @@ import static cn.hippo4j.common.constant.Constants.GROUP_KEY_DELIMITER_TRANSLATI @Slf4j public class ConfigCacheService { - private static ConfigService CONFIG_SERVICE; + private static ConfigService configService; static { AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.CLEAR_CONFIG_CACHE, new ClearConfigCache()); @@ -83,9 +84,11 @@ public class ConfigCacheService { */ public static boolean checkTpId(String groupKey, String tpId, String clientIdentify) { Map cacheItemMap = Optional.ofNullable(CLIENT_CONFIG_CACHE.get(groupKey)).orElse(new HashMap<>()); - CacheItem cacheItem; - if (CollectionUtil.isNotEmpty(cacheItemMap) && (cacheItem = cacheItemMap.get(clientIdentify)) != null) { - return Objects.equals(tpId, cacheItem.configAllInfo.getTpId()); + if (CollectionUtil.isNotEmpty(cacheItemMap)) { + CacheItem cacheItem = cacheItemMap.get(clientIdentify); + if (cacheItem != null) { + return Objects.equals(tpId, cacheItem.getConfigAllInfo().getTpId()); + } } return Boolean.FALSE; } @@ -97,31 +100,34 @@ public class ConfigCacheService { * @param clientIdentify * @return */ - private synchronized static String getContentMd5IsNullPut(String groupKey, String clientIdentify) { + private static synchronized String getContentMd5IsNullPut(String groupKey, String clientIdentify) { Map cacheItemMap = Optional.ofNullable(CLIENT_CONFIG_CACHE.get(groupKey)).orElse(new HashMap<>()); CacheItem cacheItem = null; - if (CollectionUtil.isNotEmpty(cacheItemMap) && (cacheItem = cacheItemMap.get(clientIdentify)) != null) { - return cacheItem.md5; + if (CollectionUtil.isNotEmpty(cacheItemMap)) { + cacheItem = cacheItemMap.get(clientIdentify); + if (cacheItem != null) { + return cacheItem.getMd5(); + } } - if (CONFIG_SERVICE == null) { - CONFIG_SERVICE = ApplicationContextHolder.getBean(ConfigService.class); + if (configService == null) { + configService = ApplicationContextHolder.getBean(ConfigService.class); } String[] params = groupKey.split(GROUP_KEY_DELIMITER_TRANSLATION); - ConfigAllInfo config = CONFIG_SERVICE.findConfigRecentInfo(params); + ConfigAllInfo config = configService.findConfigRecentInfo(params); if (config != null && StringUtil.isNotBlank(config.getTpId())) { cacheItem = new CacheItem(groupKey, config); cacheItemMap.put(clientIdentify, cacheItem); CLIENT_CONFIG_CACHE.put(groupKey, cacheItemMap); } - return (cacheItem != null) ? cacheItem.md5 : Constants.NULL; + return (cacheItem != null) ? cacheItem.getMd5() : Constants.NULL; } public static String getContentMd5(String groupKey) { - if (CONFIG_SERVICE == null) { - CONFIG_SERVICE = ApplicationContextHolder.getBean(ConfigService.class); + if (configService == null) { + configService = ApplicationContextHolder.getBean(ConfigService.class); } String[] params = groupKey.split(GROUP_KEY_DELIMITER_TRANSLATION); - ConfigAllInfo config = CONFIG_SERVICE.findConfigRecentInfo(params); + ConfigAllInfo config = configService.findConfigRecentInfo(params); if (config == null || StringUtils.isEmpty(config.getTpId())) { String errorMessage = String.format("config is null. tpId: %s, itemId: %s, tenantId: %s", params[0], params[1], params[2]); throw new RuntimeException(errorMessage); @@ -131,21 +137,23 @@ public class ConfigCacheService { public static void updateMd5(String groupKey, String identify, String md5) { CacheItem cache = makeSure(groupKey, identify); - if (cache.md5 == null || !cache.md5.equals(md5)) { - cache.md5 = md5; + if (cache.getMd5() == null || !cache.getMd5().equals(md5)) { + cache.setMd5(md5); String[] params = groupKey.split(GROUP_KEY_DELIMITER_TRANSLATION); - ConfigAllInfo config = CONFIG_SERVICE.findConfigRecentInfo(params); - cache.configAllInfo = config; - cache.lastModifiedTs = System.currentTimeMillis(); + ConfigAllInfo config = configService.findConfigRecentInfo(params); + cache.setConfigAllInfo(config); + cache.setLastModifiedTs(System.currentTimeMillis()); NotifyCenter.publishEvent(new LocalDataChangeEvent(identify, groupKey)); } } - public synchronized static CacheItem makeSure(String groupKey, String ip) { + public static synchronized CacheItem makeSure(String groupKey, String ip) { Map ipCacheItemMap = CLIENT_CONFIG_CACHE.get(groupKey); - CacheItem item; - if (ipCacheItemMap != null && (item = ipCacheItemMap.get(ip)) != null) { - return item; + if (ipCacheItemMap != null) { + CacheItem item = ipCacheItemMap.get(ip); + if (item != null) { + return item; + } } CacheItem tmp = new CacheItem(groupKey); Map cacheItemMap = new HashMap<>(); @@ -176,7 +184,7 @@ public class ConfigCacheService { for (String each : keys) { String[] keyArray = each.split(GROUP_KEY_DELIMITER_TRANSLATION); if (keyArray.length > 2) { - identifyList.add(keyArray[3]); + identifyList.add(keyArray[INDEX_3]); } } } @@ -192,7 +200,7 @@ public class ConfigCacheService { coarseRemove(groupKey); } - private synchronized static void coarseRemove(String coarse) { + private static synchronized void coarseRemove(String coarse) { // fuzzy search List identificationList = MapUtil.parseMapForFilter(CLIENT_CONFIG_CACHE, coarse); for (String cacheMapKey : identificationList) { diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java index 76ee8340..e157d91b 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java @@ -70,17 +70,23 @@ public class LongPollingService { private final Map retainIps = new ConcurrentHashMap<>(); + private static final long SCHEDULE_PERIOD = 30L; + + private static final int MAX_TIMEOUT = 10000; + + private static final int DEFAULT_DELAY_TIME = 500; + public LongPollingService() { allSubs = new ConcurrentLinkedQueue<>(); - ConfigExecutor.scheduleLongPolling(new StatTask(), 0L, 30L, TimeUnit.SECONDS); - NotifyCenter.registerToPublisher(LocalDataChangeEvent.class, NotifyCenter.ringBufferSize); + ConfigExecutor.scheduleLongPolling(new StatTask(), 0L, SCHEDULE_PERIOD, TimeUnit.SECONDS); + NotifyCenter.registerToPublisher(LocalDataChangeEvent.class, NotifyCenter.RING_BUFFER_SIZE); NotifyCenter.registerSubscriber(new AbstractSubscriber() { @Override public void onEvent(AbstractEvent event) { if (!isFixedPolling() && event instanceof LocalDataChangeEvent) { LocalDataChangeEvent evt = (LocalDataChangeEvent) event; - ConfigExecutor.executeLongPolling(new DataChangeTask(evt.identify, evt.groupKey)); + ConfigExecutor.executeLongPolling(new DataChangeTask(evt.getIdentify(), evt.getGroupKey())); } } @@ -155,25 +161,30 @@ public class LongPollingService { int probeRequestSize) { String str = req.getHeader(LONG_POLLING_HEADER); String noHangUpFlag = req.getHeader(LONG_POLLING_NO_HANG_UP_HEADER); - int delayTime = SwitchService.getSwitchInteger(SwitchService.FIXED_DELAY_TIME, 500); - long timeout = Math.max(10000, Long.parseLong(str) - delayTime); + int delayTime = SwitchService.getSwitchInteger(SwitchService.FIXED_DELAY_TIME, DEFAULT_DELAY_TIME); + long timeout = Math.max(MAX_TIMEOUT, Long.parseLong(str) - delayTime); + boolean shouldReturn = false; + if (isFixedPolling()) { - timeout = Math.max(10000, getFixedPollingInterval()); + timeout = Math.max(MAX_TIMEOUT, getFixedPollingInterval()); } else { List changedGroups = Md5ConfigUtil.compareMd5(req, clientMd5Map); if (!changedGroups.isEmpty()) { generateResponse(rsp, changedGroups); - return; + shouldReturn = true; } else if (noHangUpFlag != null && noHangUpFlag.equalsIgnoreCase(TRUE_STR)) { log.info("New initializing cacheData added in."); - return; + shouldReturn = true; } } - String clientIdentify = RequestUtil.getClientIdentify(req); - final AsyncContext asyncContext = req.startAsync(); - asyncContext.setTimeout(0L); - ConfigExecutor.executeLongPolling(new ClientLongPolling(asyncContext, clientMd5Map, clientIdentify, probeRequestSize, - timeout - delayTime, Pair.of(req.getHeader(CLIENT_APP_NAME_HEADER), req.getHeader(CLIENT_VERSION)))); + + if (!shouldReturn) { + String clientIdentify = RequestUtil.getClientIdentify(req); + final AsyncContext asyncContext = req.startAsync(); + asyncContext.setTimeout(0L); + ConfigExecutor.executeLongPolling(new ClientLongPolling(asyncContext, clientMd5Map, clientIdentify, probeRequestSize, + timeout - delayTime, Pair.of(req.getHeader(CLIENT_APP_NAME_HEADER), req.getHeader(CLIENT_VERSION)))); + } } /** @@ -199,8 +210,8 @@ public class LongPollingService { Future asyncTimeoutFuture; - public ClientLongPolling(AsyncContext asyncContext, Map clientMd5Map, String clientIdentify, - int probeRequestSize, long timeout, Pair appInfo) { + ClientLongPolling(AsyncContext asyncContext, Map clientMd5Map, String clientIdentify, + int probeRequestSize, long timeout, Pair appInfo) { this.asyncContext = asyncContext; this.clientMd5Map = clientMd5Map; this.clientIdentify = clientIdentify; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java index 5035a88d..c9299640 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java @@ -140,6 +140,9 @@ public class ThreadPoolAdapterService { } } + /** + * Clear Thread Pool Adapter Cache + */ static class ClearThreadPoolAdapterCache implements Observer { @Override diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index b6010f7e..6038751a 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -67,6 +67,16 @@ import java.util.concurrent.SynchronousQueue; import java.util.stream.Collectors; import java.util.stream.Stream; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_0; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_1; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_2; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_3; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.ARRAY_BLOCKING_QUEUE; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.LINKED_BLOCKING_DEQUE; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.LINKED_BLOCKING_QUEUE; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.LINKED_TRANSFER_QUEUE; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.PRIORITY_BLOCKING_QUEUE; +import static cn.hippo4j.common.executor.support.BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE; import static cn.hippo4j.config.service.ConfigCacheService.getContent; /** @@ -85,6 +95,8 @@ public class ConfigServiceImpl implements ConfigService { private final NotifyService notifyService; + private static final int DEFAULT_QUEUE_CAPACITY = 1024; + @Override public ConfigAllInfo findConfigAllInfo(String tpId, String itemId, String tenantId) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(ConfigAllInfo.class) @@ -99,13 +111,13 @@ public class ConfigServiceImpl implements ConfigService { public ConfigAllInfo findConfigRecentInfo(String... params) { ConfigAllInfo resultConfig; ConfigAllInfo configInstance = null; - String instanceId = params[3]; + String instanceId = params[INDEX_3]; if (StringUtil.isNotBlank(instanceId)) { LambdaQueryWrapper instanceQueryWrapper = Wrappers.lambdaQuery(ConfigInstanceInfo.class) - .eq(ConfigInstanceInfo::getTpId, params[0]) - .eq(ConfigInstanceInfo::getItemId, params[1]) - .eq(ConfigInstanceInfo::getTenantId, params[2]) - .eq(ConfigInstanceInfo::getInstanceId, params[3]) + .eq(ConfigInstanceInfo::getTpId, params[INDEX_0]) + .eq(ConfigInstanceInfo::getItemId, params[INDEX_1]) + .eq(ConfigInstanceInfo::getTenantId, params[INDEX_2]) + .eq(ConfigInstanceInfo::getInstanceId, params[INDEX_3]) .orderByDesc(ConfigInstanceInfo::getGmtCreate) .last("LIMIT 1"); ConfigInstanceInfo instanceInfo = configInstanceMapper.selectOne(instanceQueryWrapper); @@ -216,6 +228,7 @@ public class ConfigServiceImpl implements ConfigService { public Long addConfigInfo(ConfigAllInfo config) { config.setContent(ContentUtil.getPoolContent(config)); config.setMd5(Md5Util.getTpContentMd5(config)); + Long configId = null; try { // Currently it is a single application, and it supports switching distributed locks during cluster deployment in the future. synchronized (ConfigService.class) { @@ -225,14 +238,14 @@ public class ConfigServiceImpl implements ConfigService { .eq(ConfigAllInfo::getDelFlag, DelEnum.NORMAL.getIntCode())); Assert.isNull(configAllInfo, "线程池配置已存在"); if (SqlHelper.retBool(configInfoMapper.insert(config))) { - return config.getId(); + configId = config.getId(); } } } catch (Exception ex) { log.error("[db-error] message: {}", ex.getMessage(), ex); throw ex; } - return null; + return configId; } public void updateConfigInfo(String identify, boolean isChangeNotice, ConfigAllInfo config) { @@ -251,7 +264,6 @@ public class ConfigServiceImpl implements ConfigService { ConfigInstanceInfo instanceInfo = BeanUtil.convert(config, ConfigInstanceInfo.class); instanceInfo.setInstanceId(identify); configInstanceMapper.insert(instanceInfo); - return; } else if (StringUtil.isEmpty(identify) && isChangeNotice) { List identifyList = ConfigCacheService.getIdentifyList(config.getTenantId(), config.getItemId(), config.getTpId()); if (CollectionUtil.isNotEmpty(identifyList)) { @@ -261,9 +273,9 @@ public class ConfigServiceImpl implements ConfigService { configInstanceMapper.insert(instanceInfo); } } - return; + } else { + configInfoMapper.update(config, wrapper); } - configInfoMapper.update(config, wrapper); } catch (Exception ex) { log.error("[db-error] message: {}", ex.getMessage(), ex); throw ex; @@ -294,18 +306,20 @@ public class ConfigServiceImpl implements ConfigService { */ private Integer getQueueCapacityByType(ConfigAllInfo config) { int queueCapacity; - switch (config.getQueueType()) { - case 5: - queueCapacity = Integer.MAX_VALUE; - break; - default: - queueCapacity = config.getCapacity(); - break; + if (LINKED_TRANSFER_QUEUE.getType().equals(config.getQueueType())) { + queueCapacity = Integer.MAX_VALUE; + } else { + queueCapacity = config.getCapacity(); } - List queueTypes = Stream.of(1, 2, 3, 6, 9).collect(Collectors.toList()); + List queueTypes = Stream.of( + ARRAY_BLOCKING_QUEUE.getType(), + LINKED_BLOCKING_QUEUE.getType(), + LINKED_BLOCKING_DEQUE.getType(), + PRIORITY_BLOCKING_QUEUE.getType(), + RESIZABLE_LINKED_BLOCKING_QUEUE.getType()).collect(Collectors.toList()); boolean setDefaultFlag = queueTypes.contains(config.getQueueType()) && (config.getCapacity() == null || Objects.equals(config.getCapacity(), 0)); if (setDefaultFlag) { - queueCapacity = 1024; + queueCapacity = DEFAULT_QUEUE_CAPACITY; } return queueCapacity; } diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java index 3e97ef57..165ada9b 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java @@ -47,6 +47,10 @@ import java.util.Date; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_0; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_1; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_2; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_3; import static cn.hippo4j.common.toolkit.DateUtil.NORM_TIME_PATTERN; /** @@ -151,12 +155,12 @@ public class HisRunDataServiceImpl extends ServiceImpl { HisRunDataInfo hisRunDataInfo = BeanUtil.convert(each, HisRunDataInfo.class); String[] parseKey = GroupKey.parseKey(each.getGroupKey()); - boolean checkFlag = ConfigCacheService.checkTpId(each.getGroupKey(), parseKey[0], parseKey[3]); + boolean checkFlag = ConfigCacheService.checkTpId(each.getGroupKey(), parseKey[INDEX_0], parseKey[INDEX_3]); if (checkFlag) { - hisRunDataInfo.setTpId(parseKey[0]); - hisRunDataInfo.setItemId(parseKey[1]); - hisRunDataInfo.setTenantId(parseKey[2]); - hisRunDataInfo.setInstanceId(parseKey[3]); + hisRunDataInfo.setTpId(parseKey[INDEX_0]); + hisRunDataInfo.setItemId(parseKey[INDEX_1]); + hisRunDataInfo.setTenantId(parseKey[INDEX_2]); + hisRunDataInfo.setInstanceId(parseKey[INDEX_3]); hisRunDataInfos.add(hisRunDataInfo); } }); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java index 83a6c813..a32366d0 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java @@ -31,9 +31,9 @@ public class EnvUtil { public static final String STANDALONE_MODE_PROPERTY_NAME = "hippo4j.standalone"; - private static String HIPPO4J_HOME_PATH = null; + private static String hippo4jHomePath = null; - private static Boolean IS_STANDALONE = null; + private static Boolean isStandalone = null; /** * Get hippo4j home. @@ -41,14 +41,13 @@ public class EnvUtil { * @return */ public static String getHippo4jHome() { - if (StringUtil.isBlank(HIPPO4J_HOME_PATH)) { - String hippo4jHome = System.getProperty(HIPPO4J_HOME_KEY); - if (StringUtil.isBlank(hippo4jHome)) { - hippo4jHome = Paths.get(System.getProperty("user.home"), "hippo4j").toString(); + if (StringUtil.isBlank(hippo4jHomePath)) { + hippo4jHomePath = System.getProperty(HIPPO4J_HOME_KEY); + if (StringUtil.isBlank(hippo4jHomePath)) { + hippo4jHomePath = Paths.get(System.getProperty("user.home"), "hippo4j").toString(); } - return hippo4jHome; } - return HIPPO4J_HOME_PATH; + return hippo4jHomePath; } /** @@ -57,9 +56,9 @@ public class EnvUtil { * @return */ public static boolean getStandaloneMode() { - if (Objects.isNull(IS_STANDALONE)) { - IS_STANDALONE = Boolean.getBoolean(STANDALONE_MODE_PROPERTY_NAME); + if (Objects.isNull(isStandalone)) { + isStandalone = Boolean.getBoolean(STANDALONE_MODE_PROPERTY_NAME); } - return IS_STANDALONE; + return isStandalone; } } diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java index f8b76d00..ef9d66de 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java @@ -34,6 +34,11 @@ import java.util.Map; import static cn.hippo4j.common.constant.Constants.LINE_SEPARATOR; import static cn.hippo4j.common.constant.Constants.WORD_SEPARATOR; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_0; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_1; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_2; +import static cn.hippo4j.common.constant.MagicNumberConstants.INDEX_3; +import static cn.hippo4j.common.constant.MagicNumberConstants.SIZE_4; /** * Md5 config util. @@ -44,6 +49,10 @@ public class Md5ConfigUtil { static final char LINE_SEPARATOR_CHAR = (char) 1; + private static final int CLIENT_MD5_MAP_INIT_SIZE = 5; + private static final int CLIENT_MD5_MAP_MAX_SIZE = 10000; + private static final int CLIENT_MD5_TMP_LIST_INIT_SIZE = 3; + private static final int CLIENT_MD5_TMP_LIST_MAX_SIZE = 4; /** * Get thread pool content md5 * @@ -74,18 +83,18 @@ public class Md5ConfigUtil { } public static Map getClientMd5Map(String configKeysString) { - Map md5Map = new HashMap(5); + Map md5Map = new HashMap(CLIENT_MD5_MAP_INIT_SIZE); if (null == configKeysString || "".equals(configKeysString)) { return md5Map; } int start = 0; - List tmpList = new ArrayList(3); + List tmpList = new ArrayList(CLIENT_MD5_TMP_LIST_INIT_SIZE); for (int i = start; i < configKeysString.length(); i++) { char c = configKeysString.charAt(i); if (c == WORD_SEPARATOR_CHAR) { tmpList.add(configKeysString.substring(start, i)); start = i + 1; - if (tmpList.size() > 4) { + if (tmpList.size() > CLIENT_MD5_TMP_LIST_MAX_SIZE) { // Malformed message and return parameter error. throw new IllegalArgumentException("invalid protocol,too much key"); } @@ -95,12 +104,12 @@ public class Md5ConfigUtil { endValue = configKeysString.substring(start, i); } start = i + 1; - String groupKey = getKey(tmpList.get(0), tmpList.get(1), tmpList.get(2), tmpList.get(3)); + String groupKey = getKey(tmpList.get(INDEX_0), tmpList.get(INDEX_1), tmpList.get(INDEX_2), tmpList.get(INDEX_3)); groupKey = SingletonRepository.DataIdGroupIdCache.getSingleton(groupKey); md5Map.put(groupKey, endValue); tmpList.clear(); // Protect malformed messages - if (md5Map.size() > 10000) { + if (md5Map.size() > CLIENT_MD5_MAP_MAX_SIZE) { throw new IllegalArgumentException("invalid protocol, too much listener"); } } @@ -140,7 +149,7 @@ public class Md5ConfigUtil { sb.append(WORD_SEPARATOR); sb.append(dataIdGroupId[1]); // if have tenant, then set it - if (dataIdGroupId.length == 4) { + if (dataIdGroupId.length == SIZE_4) { if (StringUtil.isNotBlank(dataIdGroupId[2])) { sb.append(WORD_SEPARATOR); sb.append(dataIdGroupId[2]); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SimpleReadWriteLock.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SimpleReadWriteLock.java index 45cd23ef..0d60cea3 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SimpleReadWriteLock.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SimpleReadWriteLock.java @@ -24,6 +24,8 @@ public class SimpleReadWriteLock { private int status = 0; + private static final int FREE_STATUS = -1; + public synchronized boolean tryReadLock() { if (isWriteLocked()) { return false; @@ -41,7 +43,7 @@ public class SimpleReadWriteLock { if (!isFree()) { return false; } else { - status = -1; + status = FREE_STATUS; return true; } } diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SingletonRepository.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SingletonRepository.java index 12885bd0..71169462 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SingletonRepository.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/toolkit/SingletonRepository.java @@ -24,8 +24,13 @@ import java.util.concurrent.ConcurrentHashMap; */ public class SingletonRepository { + /** + * initialCapacity: 1 << 16 + */ + private static final int INITIAL_CAPACITY = 65536; + public SingletonRepository() { - shared = new ConcurrentHashMap(1 << 16); + shared = new ConcurrentHashMap(INITIAL_CAPACITY); } public T getSingleton(T obj) { @@ -43,6 +48,9 @@ public class SingletonRepository { private final ConcurrentHashMap shared; + /** + * Data Id Group Id Cache + */ public static class DataIdGroupIdCache { public static String getSingleton(String str) { diff --git a/threadpool/server/config/src/test/java/cn/hippo4j/config/event/LocalDataChangeEventTest.java b/threadpool/server/config/src/test/java/cn/hippo4j/config/event/LocalDataChangeEventTest.java index dede0223..38051720 100644 --- a/threadpool/server/config/src/test/java/cn/hippo4j/config/event/LocalDataChangeEventTest.java +++ b/threadpool/server/config/src/test/java/cn/hippo4j/config/event/LocalDataChangeEventTest.java @@ -26,7 +26,7 @@ public final class LocalDataChangeEventTest { @Test public void assertGetSingleton() { LocalDataChangeEvent localDataChangeEvent = new LocalDataChangeEvent("groupKey", "identify"); - Assert.isTrue(StringUtil.isNotEmpty(localDataChangeEvent.groupKey)); - Assert.isTrue(StringUtil.isNotEmpty(localDataChangeEvent.identify)); + Assert.isTrue(StringUtil.isNotEmpty(localDataChangeEvent.getGroupKey())); + Assert.isTrue(StringUtil.isNotEmpty(localDataChangeEvent.getIdentify())); } } diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java index b3ffd783..95143807 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java @@ -214,7 +214,7 @@ public class ThreadPoolController { List returnThreadPool = new ArrayList<>(); content.forEach((key, val) -> { ThreadPoolInstanceInfo threadPoolInstanceInfo = - BeanUtil.convert(val.configAllInfo, ThreadPoolInstanceInfo.class); + BeanUtil.convert(val.getConfigAllInfo(), ThreadPoolInstanceInfo.class); threadPoolInstanceInfo.setClientAddress(StringUtil.subBefore(key, Constants.IDENTIFY_SLICER_SYMBOL)); threadPoolInstanceInfo.setActive(activeMap.get(key)); threadPoolInstanceInfo.setIdentify(key); From a33a376cbbeb7f8756103c0f12a2c2e1c321d072 Mon Sep 17 00:00:00 2001 From: magestack Date: Wed, 17 May 2023 19:00:57 +0800 Subject: [PATCH 14/58] Public module removes spring dependency (#1293) --- .../handler/CustomerClientNetworkService.java | 2 +- ... cn.hippo4j.core.api.ClientNetworkService} | 0 ... cn.hippo4j.core.api.ClientNetworkService} | 0 infra/common/pom.xml | 31 ++-- .../common/api/ClientCloseHookExecute.java | 4 +- .../support/BlockingQueueTypeEnum.java | 2 +- .../support/RejectedPolicyTypeEnum.java | 6 +- .../ServiceLoaderInstantiationException.java | 2 +- .../ServiceLoaderRegistry.java | 5 +- .../{annotation => spi}/SingletonSPI.java | 3 +- .../cn/hippo4j/common/toolkit/Assert.java | 13 +- .../cn/hippo4j/common/toolkit/GroupKey.java | 3 +- .../hippo4j/common/toolkit/ReflectUtil.java | 16 +- .../cn/hippo4j/common/toolkit/StringUtil.java | 26 +++ .../main/resources/META-INF/spring.factories | 2 +- ...ommon.executor.support.CustomBlockingQueue | 1 - .../cn.hippo4j.common.extension.spi.IOldSpi | 1 - .../AlibabaDubboAdapterAutoConfiguration.java | 2 +- .../dubbo/DubboAdapterAutoConfiguration.java | 2 +- .../dubbo/DubboxAdapterAutoConfiguration.java | 2 +- .../HystrixAdapterAutoConfiguration.java | 2 +- .../kafka/KafkaAdapterAutoConfiguration.java | 2 +- .../RabbitMQAdapterAutoConfiguration.java | 2 +- .../RocketMQAdapterAutoConfiguration.java | 2 +- ...treamRabbitMQAdapterAutoConfiguration.java | 2 +- ...treamRocketMQAdapterAutoConfiguration.java | 2 +- .../adapter/web/WebAdapterConfiguration.java | 2 +- .../web/AbstractWebThreadPoolService1x.java | 2 +- .../DynamicThreadPoolAutoConfiguration.java | 4 +- .../monitor/ThreadPoolMonitorExecutor.java | 4 +- ...bstractConfigThreadPoolDynamicRefresh.java | 2 +- .../refresher/NacosCloudRefresherHandler.java | 2 +- .../AdapterExecutorsRefreshListener.java | 2 +- .../event/PlatformsRefreshListener.java | 2 +- .../event/WebExecutorRefreshListener.java | 2 +- .../DynamicThreadPoolPostProcessor.java | 2 +- .../DynamicThreadPoolAutoConfiguration.java | 4 +- .../ThreadPoolAdapterController.java | 4 +- .../starter/core/DiscoveryClient.java | 2 +- .../core/ThreadPoolAdapterRegister.java | 2 +- .../monitor/ReportingEventExecutor.java | 4 +- .../provider/InstanceInfoProviderFactory.java | 4 +- .../starter/remote/ServerHttpAgent.java | 2 +- .../DynamicThreadPoolPostProcessor.java | 2 +- threadpool/adapter/base/pom.xml | 2 +- .../base/ThreadPoolAdapterBeanContainer.java | 2 +- .../HystrixThreadPoolAdapter4Server.java | 2 +- .../adapter/kafka/KafkaThreadPoolAdapter.java | 4 +- .../rocketmq/RocketMQThreadPoolAdapter.java | 2 +- ...gCloudStreamRabbitMQThreadPoolAdapter.java | 2 +- ...gCloudStreamRocketMQThreadPoolAdapter.java | 2 +- .../DefaultAbstractWebThreadPoolService.java | 2 +- .../adapter/web/WebIpAndPortHolder.java | 2 +- .../web/WebThreadPoolHandlerChoose.java | 2 +- threadpool/core/pom.xml | 4 + .../core}/api/ClientNetworkService.java | 2 +- .../core}/api/ThreadPoolCheckAlarm.java | 2 +- .../config/ApplicationContextHolder.java | 2 +- .../manage/GlobalThreadPoolManage.java | 2 +- .../DynamicThreadPoolAdapterChoose.java | 2 +- .../hippo4j/core}/extension/IExtension.java | 2 +- .../core}/extension/IExtensionRequest.java | 2 +- .../extension/annotation/Realization.java | 2 +- .../config/ExtensionRegisterBootstrap.java | 8 +- .../core}/extension/reducer/AllMatch.java | 6 +- .../core}/extension/reducer/AnyMatch.java | 6 +- .../core}/extension/reducer/FirstOf.java | 6 +- .../hippo4j/core}/extension/reducer/None.java | 4 +- .../core}/extension/reducer/Reducer.java | 10 +- .../core}/extension/reducer/Reducers.java | 2 +- .../support/ExtensionAutoConfiguration.java | 4 +- .../extension/support/ExtensionCallback.java | 2 +- .../extension/support/ExtensionInvoker.java | 9 +- .../extension/support/ExtensionRegistry.java | 6 +- .../extension/support/IExtensionRegistry.java | 4 +- .../core}/extension/support/ReduceType.java | 2 +- .../DynamicThreadPoolBannerHandler.java | 2 +- .../impl/TaskRejectNotifyAlarmPlugin.java | 4 +- .../impl/TaskTimeoutNotifyAlarmPlugin.java | 4 +- .../proxy/RejectedProxyInvocationHandler.java | 4 +- .../DynamicThreadPoolAnnotationUtil.java | 2 +- .../cn/hippo4j/core}/toolkit/FileUtil.java | 9 +- .../cn/hippo4j/core/toolkit/IdentifyUtil.java | 6 +- .../core}/extension/ExtensionInvokerTest.java | 25 +-- .../extension/anymatch/AnyMatchExtImplA.java | 4 +- .../extension/anymatch/AnyMatchExtImplB.java | 4 +- .../anymatch/IAnyMatchExtension.java | 4 +- .../extension/firstof/FirstOfExtImplA.java | 4 +- .../extension/firstof/FirstOfExtImplB.java | 4 +- .../extension/firstof/IFirstOfExtension.java | 4 +- .../hippo4j/core}/extension/spi/IOldSpi.java | 4 +- .../core}/extension/spi/IOldSpiImplA.java | 2 +- .../impl/TaskRejectNotifyAlarmPluginTest.java | 2 +- .../TaskTimeoutNotifyAlarmPluginTest.java | 2 +- .../RejectedProxyInvocationHandlerTest.java | 4 +- .../DynamicThreadPoolServiceLoaderTest.java | 4 +- .../core}/spi/MyArrayBlockingQueue.java | 2 +- .../hippo4j/core}/spi/TestInterfaceSPI.java | 4 +- .../core}/spi/TestInterfaceSPIImpl.java | 4 +- .../core}/spi/TestSingletonInterfaceSPI.java | 6 +- .../spi/TestSingletonInterfaceSPIImpl.java | 4 +- .../hippo4j/core}/toolkit/FileUtilTest.java | 4 +- ...ommon.executor.support.CustomBlockingQueue | 1 + .../cn.hippo4j.core.extension.spi.IOldSpi | 1 + .../cn.hippo4j.core.spi.TestInterfaceSPI | 2 +- ...hippo4j.core.spi.TestSingletonInterfaceSPI | 2 +- .../src/test/resources/test/test_utf8.txt | 0 .../platform/DingSendMessageHandler.java | 2 +- .../platform/LarkSendMessageHandler.java | 2 +- .../platform/WeChatSendMessageHandler.java | 2 +- .../DefaultThreadPoolCheckAlarmHandler.java | 2 +- .../Hippo4jBaseSendMessageService.java | 2 +- .../AbstractAdapterThreadPoolMonitor.java | 2 +- ...ThreadPoolElasticSearchMonitorHandler.java | 4 +- .../ElasticSearchClientHolder.java | 2 +- ...terThreadPoolMicrometerMonitorHandler.java | 2 +- ...micThreadPoolMicrometerMonitorHandler.java | 2 +- ...WebThreadPoolMicrometerMonitorHandler.java | 2 +- .../java/cn/hippo4j/rpc/client/Client.java | 2 +- .../hippo4j/rpc/client/ClientConnection.java | 2 +- .../rpc/client/NettyClientConnection.java | 2 +- .../java/cn/hippo4j/rpc/client/RPCClient.java | 2 +- .../rpc/coder/CompactObjectOutputStream.java | 2 +- .../cn/hippo4j/rpc/coder/NettyEncoder.java | 2 +- .../hippo4j/rpc/discovery/ClassRegistry.java | 2 +- .../rpc/discovery/DefaultInstance.java | 2 +- .../rpc/discovery/DiscoveryAdapter.java | 2 +- .../cn/hippo4j/rpc/discovery/Instance.java | 2 +- .../cn/hippo4j/rpc/discovery/ServerPort.java | 2 +- .../rpc/discovery/SpringContextInstance.java | 10 +- .../hippo4j/rpc/exception/CoderException.java | 2 +- .../rpc/exception/ConnectionException.java | 2 +- .../rpc/exception/TimeOutException.java | 2 +- .../handler/AbstractNettyHandlerManager.java | 2 +- .../rpc/handler/AbstractNettyTakeHandler.java | 2 +- .../hippo4j/rpc/handler/ConnectHandler.java | 2 +- .../cn/hippo4j/rpc/handler/Connection.java | 2 +- .../hippo4j/rpc/handler/HandlerManager.java | 2 +- .../rpc/handler/NettyClientPoolHandler.java | 2 +- .../rpc/handler/NettyClientTakeHandler.java | 2 +- .../rpc/handler/NettyServerTakeHandler.java | 2 +- .../cn/hippo4j/rpc/model/DefaultRequest.java | 2 +- .../cn/hippo4j/rpc/model/DefaultResponse.java | 2 +- .../java/cn/hippo4j/rpc/model/Request.java | 2 +- .../java/cn/hippo4j/rpc/model/Response.java | 2 +- .../rpc/server/NettyServerConnection.java | 2 +- .../java/cn/hippo4j/rpc/server/RPCServer.java | 2 +- .../java/cn/hippo4j/rpc/server/Server.java | 2 +- .../hippo4j/rpc/server/ServerConnection.java | 2 +- .../rpc/support/ClientFactoryBean.java | 170 ------------------ .../rpc/support/NettyClientSupport.java | 3 +- .../hippo4j/rpc/support/NettyConnectPool.java | 2 +- .../rpc/support/NettyConnectPoolHolder.java | 2 +- .../hippo4j/rpc/support/NettyProxyCenter.java | 2 +- .../rpc/support/NettyServerSupport.java | 2 +- .../cn/hippo4j/rpc/support/ResultHolder.java | 2 +- .../discovery/SpringContextInstanceTest.java | 12 +- .../hippo4j/config/config/CommonConfig.java | 2 +- .../monitor/QueryMonitorExecuteChoose.java | 2 +- .../config/service/ConfigCacheService.java | 2 +- .../service/biz/impl/ConfigServiceImpl.java | 2 +- ...ConfigModificationVerifyServiceChoose.java | 2 +- .../controller/ClientCloseHookController.java | 6 +- 163 files changed, 289 insertions(+), 438 deletions(-) rename examples/threadpool-example/server/adapter-stream-rocketmq/src/main/resources/META-INF/services/{cn.hippo4j.common.api.ClientNetworkService => cn.hippo4j.core.api.ClientNetworkService} (100%) rename examples/threadpool-example/server/server/src/main/resources/META-INF/services/{cn.hippo4j.common.api.ClientNetworkService => cn.hippo4j.core.api.ClientNetworkService} (100%) rename infra/common/src/main/java/cn/hippo4j/common/extension/{support => spi}/ServiceLoaderInstantiationException.java (96%) rename infra/common/src/main/java/cn/hippo4j/common/extension/{support => spi}/ServiceLoaderRegistry.java (96%) rename infra/common/src/main/java/cn/hippo4j/common/extension/{annotation => spi}/SingletonSPI.java (94%) delete mode 100644 infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue delete mode 100644 infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/api/ClientNetworkService.java (97%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/api/ThreadPoolCheckAlarm.java (99%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/config/ApplicationContextHolder.java (98%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/IExtension.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/IExtensionRequest.java (96%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/annotation/Realization.java (96%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/config/ExtensionRegisterBootstrap.java (91%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/AllMatch.java (92%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/AnyMatch.java (92%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/FirstOf.java (91%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/None.java (92%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/Reducer.java (83%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/reducer/Reducers.java (97%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/ExtensionAutoConfiguration.java (90%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/ExtensionCallback.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/ExtensionInvoker.java (90%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/ExtensionRegistry.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/IExtensionRegistry.java (91%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/extension/support/ReduceType.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common => threadpool/core/src/main/java/cn/hippo4j/core}/toolkit/FileUtil.java (91%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/ExtensionInvokerTest.java (78%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/anymatch/AnyMatchExtImplA.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/anymatch/AnyMatchExtImplB.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/anymatch/IAnyMatchExtension.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/firstof/FirstOfExtImplA.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/firstof/FirstOfExtImplB.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/firstof/IFirstOfExtension.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/spi/IOldSpi.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/extension/spi/IOldSpiImplA.java (95%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/DynamicThreadPoolServiceLoaderTest.java (97%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/MyArrayBlockingQueue.java (97%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/TestInterfaceSPI.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/TestInterfaceSPIImpl.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/TestSingletonInterfaceSPI.java (85%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/spi/TestSingletonInterfaceSPIImpl.java (90%) rename {infra/common/src/test/java/cn/hippo4j/common => threadpool/core/src/test/java/cn/hippo4j/core}/toolkit/FileUtilTest.java (98%) create mode 100644 threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue create mode 100644 threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.extension.spi.IOldSpi rename infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI => threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestInterfaceSPI (94%) rename infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI => threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestSingletonInterfaceSPI (93%) rename {infra/common => threadpool/core}/src/test/resources/test/test_utf8.txt (100%) delete mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ClientFactoryBean.java diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/CustomerClientNetworkService.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/CustomerClientNetworkService.java index 3070a043..d01f01bb 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/CustomerClientNetworkService.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/CustomerClientNetworkService.java @@ -17,7 +17,7 @@ package cn.hippo4j.example.core.handler; -import cn.hippo4j.common.api.ClientNetworkService; +import cn.hippo4j.core.api.ClientNetworkService; import org.springframework.core.env.ConfigurableEnvironment; /** diff --git a/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/resources/META-INF/services/cn.hippo4j.common.api.ClientNetworkService b/examples/threadpool-example/server/adapter-stream-rocketmq/src/main/resources/META-INF/services/cn.hippo4j.core.api.ClientNetworkService similarity index 100% rename from examples/threadpool-example/server/adapter-stream-rocketmq/src/main/resources/META-INF/services/cn.hippo4j.common.api.ClientNetworkService rename to examples/threadpool-example/server/adapter-stream-rocketmq/src/main/resources/META-INF/services/cn.hippo4j.core.api.ClientNetworkService diff --git a/examples/threadpool-example/server/server/src/main/resources/META-INF/services/cn.hippo4j.common.api.ClientNetworkService b/examples/threadpool-example/server/server/src/main/resources/META-INF/services/cn.hippo4j.core.api.ClientNetworkService similarity index 100% rename from examples/threadpool-example/server/server/src/main/resources/META-INF/services/cn.hippo4j.common.api.ClientNetworkService rename to examples/threadpool-example/server/server/src/main/resources/META-INF/services/cn.hippo4j.core.api.ClientNetworkService diff --git a/infra/common/pom.xml b/infra/common/pom.xml index 767eb6ee..20f67cbb 100644 --- a/infra/common/pom.xml +++ b/infra/common/pom.xml @@ -14,14 +14,24 @@ com.fasterxml.jackson.core jackson-databind
- - org.springframework.boot - spring-boot-starter - org.projectlombok lombok + + com.github.ben-manes.caffeine + caffeine + + + com.github.dozermapper + dozer-core + + + org.springframework.boot + spring-boot-configuration-processor + true + + org.springframework.boot spring-boot-starter-test @@ -37,22 +47,11 @@ mockito-inline test - - com.github.ben-manes.caffeine - caffeine - - - com.github.dozermapper - dozer-core - - - org.springframework.boot - spring-boot-configuration-processor - org.apache.tomcat.embed tomcat-embed-core test +
diff --git a/infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java b/infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java index 9bda7204..fba4248e 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java +++ b/infra/common/src/main/java/cn/hippo4j/common/api/ClientCloseHookExecute.java @@ -28,9 +28,9 @@ public interface ClientCloseHookExecute { /** * Client close hook function execution. * - * @param req + * @param requestParam */ - void closeHook(ClientCloseHookReq req); + void closeHook(ClientCloseHookReq requestParam); /** * Client close hook req. diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java index 933863ac..5928d2cc 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.executor.support; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import lombok.Getter; import java.util.Collection; diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java index 98272da1..651530d0 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java @@ -17,12 +17,10 @@ package cn.hippo4j.common.executor.support; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import lombok.Getter; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.stream.Stream; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderInstantiationException.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderInstantiationException.java index 239817d1..f45b5009 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderInstantiationException.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderInstantiationException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.common.extension.spi; /** * Service loader instantiation exception. diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java index 37d4a43d..5d6e7434 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ServiceLoaderRegistry.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java @@ -15,9 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; - -import cn.hippo4j.common.extension.annotation.SingletonSPI; +package cn.hippo4j.common.extension.spi; import java.lang.reflect.InvocationTargetException; import java.util.Collection; @@ -31,7 +29,6 @@ import java.util.stream.Collectors; /** * Dynamic thread-pool SPI service loader. */ -@Deprecated public class ServiceLoaderRegistry { /** diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/SingletonSPI.java similarity index 94% rename from infra/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/spi/SingletonSPI.java index 7f1620ba..664e3cb4 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/SingletonSPI.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/SingletonSPI.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.annotation; +package cn.hippo4j.common.extension.spi; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -27,6 +27,5 @@ import java.lang.annotation.Target; */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) -@Deprecated public @interface SingletonSPI { } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java index 3dee268f..cfcc3ae7 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/Assert.java @@ -17,9 +17,6 @@ package cn.hippo4j.common.toolkit; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - import java.util.Collection; import java.util.Map; @@ -65,7 +62,7 @@ public class Assert { } public static void notEmpty(Collection collection, String message) { - if (CollectionUtils.isEmpty(collection)) { + if (CollectionUtil.isEmpty(collection)) { throw new IllegalArgumentException(message); } } @@ -76,7 +73,7 @@ public class Assert { } public static void notEmpty(Map map, String message) { - if (CollectionUtils.isEmpty(map)) { + if (CollectionUtil.isEmpty(map)) { throw new IllegalArgumentException(message); } } @@ -86,13 +83,13 @@ public class Assert { } public static void notEmpty(String str, String message) { - if (StringUtils.isEmpty(str)) { + if (StringUtil.isEmpty(str)) { throw new IllegalArgumentException(message); } } public static void notEmpty(String str) { - if (StringUtils.isEmpty(str)) { + if (StringUtil.isEmpty(str)) { notEmpty(str, "[Assertion failed] - this string must not be empty"); } } @@ -108,7 +105,7 @@ public class Assert { } public static void hasText(String text, String message) { - if (!StringUtils.hasText(text)) { + if (!StringUtil.hasText(text)) { throw new IllegalArgumentException(message); } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java index cea1792e..f694c038 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/GroupKey.java @@ -18,7 +18,6 @@ package cn.hippo4j.common.toolkit; import cn.hippo4j.common.constant.Constants; -import org.springframework.util.StringUtils; import static cn.hippo4j.common.constant.Constants.GROUP_KEY_DELIMITER; @@ -55,7 +54,7 @@ public class GroupKey { urlEncode(dataId, sb); sb.append(GROUP_KEY_DELIMITER); urlEncode(group, sb); - if (!StringUtils.isEmpty(datumStr)) { + if (!StringUtil.isEmpty(datumStr)) { sb.append(GROUP_KEY_DELIMITER); urlEncode(datumStr, sb); } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java index 6f6c2efe..89181f01 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java @@ -20,7 +20,6 @@ package cn.hippo4j.common.toolkit; import cn.hippo4j.common.web.exception.IllegalException; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.springframework.cglib.core.ReflectUtils; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; @@ -308,17 +307,20 @@ public class ReflectUtil { } /** - * * @param clazz * @param methodName * @param parameterTypes * @return */ - public static Method findDeclaredMethod(Class clazz, String methodName, Class[] parameterTypes) { - try { - return ReflectUtils.findDeclaredMethod(clazz, methodName, parameterTypes); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); + public static Method findDeclaredMethod(Class clazz, String methodName, Class[] parameterTypes) throws NoSuchMethodException { + Class cl = clazz; + while (cl != null) { + try { + return cl.getDeclaredMethod(methodName, parameterTypes); + } catch (NoSuchMethodException e) { + cl = cl.getSuperclass(); + } } + throw new NoSuchMethodException(methodName); } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java index 1134b34b..d7f105a4 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java @@ -362,4 +362,30 @@ public class StringUtil { } return str.substring(0, pos); } + + /** + * Determine whether it is a string. + * + * @param str string + * @return String returns true, non-string returns false + */ + public static boolean hasText(String str) { + return (str != null && !str.isEmpty() && containsText(str)); + } + + /** + * Whether to contain a string. + * + * @param str str + * @return String returns true, non-string returns false + */ + private static boolean containsText(CharSequence str) { + int strLen = str.length(); + for (int i = 0; i < strLen; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + return true; + } + } + return false; + } } diff --git a/infra/common/src/main/resources/META-INF/spring.factories b/infra/common/src/main/resources/META-INF/spring.factories index 520aa9cd..097c5c2e 100644 --- a/infra/common/src/main/resources/META-INF/spring.factories +++ b/infra/common/src/main/resources/META-INF/spring.factories @@ -1 +1 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.hippo4j.common.extension.support.ExtensionAutoConfiguration \ No newline at end of file +org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.hippo4j.core.extension.support.ExtensionAutoConfiguration \ No newline at end of file diff --git a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue deleted file mode 100644 index 0df513e2..00000000 --- a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue +++ /dev/null @@ -1 +0,0 @@ -cn.hippo4j.common.spi.MyArrayBlockingQueue \ No newline at end of file diff --git a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi b/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi deleted file mode 100644 index 29dcbcac..00000000 --- a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.extension.spi.IOldSpi +++ /dev/null @@ -1 +0,0 @@ -cn.hippo4j.common.extension.spi.IOldSpiImplA \ No newline at end of file diff --git a/starters/threadpool/adapter/alibaba-dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/alibaba/dubbo/AlibabaDubboAdapterAutoConfiguration.java b/starters/threadpool/adapter/alibaba-dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/alibaba/dubbo/AlibabaDubboAdapterAutoConfiguration.java index 03d9fcfb..dc7cfb38 100644 --- a/starters/threadpool/adapter/alibaba-dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/alibaba/dubbo/AlibabaDubboAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/alibaba-dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/alibaba/dubbo/AlibabaDubboAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.alibaba.dubbo; import cn.hippo4j.adapter.alibaba.dubbo.AlibabaDubboThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboAdapterAutoConfiguration.java b/starters/threadpool/adapter/dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboAdapterAutoConfiguration.java index badf3efd..632ba19d 100644 --- a/starters/threadpool/adapter/dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/dubbo/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.dubbo; import cn.hippo4j.adapter.dubbo.DubboThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/dubbox/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboxAdapterAutoConfiguration.java b/starters/threadpool/adapter/dubbox/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboxAdapterAutoConfiguration.java index ff760c53..51095944 100644 --- a/starters/threadpool/adapter/dubbox/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboxAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/dubbox/src/main/java/cn/hippo4j/springboot/starter/adapter/dubbo/DubboxAdapterAutoConfiguration.java @@ -19,7 +19,7 @@ package cn.hippo4j.springboot.starter.adapter.dubbo; import cn.hippo4j.adapter.dubbo.DubboThreadPoolAdapter; import cn.hippo4j.adapter.dubbo.DubboxThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/springboot/starter/adapter/hystrix/HystrixAdapterAutoConfiguration.java b/starters/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/springboot/starter/adapter/hystrix/HystrixAdapterAutoConfiguration.java index f8492a04..5fd67420 100644 --- a/starters/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/springboot/starter/adapter/hystrix/HystrixAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/springboot/starter/adapter/hystrix/HystrixAdapterAutoConfiguration.java @@ -20,7 +20,7 @@ package cn.hippo4j.springboot.starter.adapter.hystrix; import cn.hippo4j.adapter.hystrix.HystrixThreadPoolAdapter4Config; import cn.hippo4j.adapter.hystrix.HystrixThreadPoolAdapter4Server; import cn.hippo4j.adapter.hystrix.ThreadPoolAdapterScheduler; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/KafkaAdapterAutoConfiguration.java b/starters/threadpool/adapter/kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/KafkaAdapterAutoConfiguration.java index 24107d28..5a5b194f 100644 --- a/starters/threadpool/adapter/kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/KafkaAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/kafka/src/main/java/cn/hippo4j/springboot/starter/adapter/kafka/KafkaAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.kafka; import cn.hippo4j.adapter.kafka.KafkaThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/starters/threadpool/adapter/rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/RabbitMQAdapterAutoConfiguration.java b/starters/threadpool/adapter/rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/RabbitMQAdapterAutoConfiguration.java index aec28c6d..85ea6a7f 100644 --- a/starters/threadpool/adapter/rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/RabbitMQAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rabbitmq/RabbitMQAdapterAutoConfiguration.java @@ -20,7 +20,7 @@ package cn.hippo4j.springboot.starter.adapter.rabbitmq; import java.util.Map; import cn.hippo4j.adapter.rabbitmq.RabbitMQThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.RequiredArgsConstructor; import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory; diff --git a/starters/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/RocketMQAdapterAutoConfiguration.java b/starters/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/RocketMQAdapterAutoConfiguration.java index 02b73d71..bffc969f 100644 --- a/starters/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/RocketMQAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/rocketmq/RocketMQAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.rocketmq; import cn.hippo4j.adapter.rocketmq.RocketMQThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQAdapterAutoConfiguration.java b/starters/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQAdapterAutoConfiguration.java index 4d87afb9..a4c42221 100644 --- a/starters/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.springcloud.stream.rabbitmq; import cn.hippo4j.adapter.springcloud.stream.rabbitmq.SpringCloudStreamRabbitMQThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; diff --git a/starters/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQAdapterAutoConfiguration.java b/starters/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQAdapterAutoConfiguration.java index 61d8ced8..0fd74718 100644 --- a/starters/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQAdapterAutoConfiguration.java +++ b/starters/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/springboot/starter/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQAdapterAutoConfiguration.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.adapter.springcloud.stream.rocketmq; import cn.hippo4j.adapter.springcloud.stream.rocketmq.SpringCloudStreamRocketMQThreadPoolAdapter; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; diff --git a/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebAdapterConfiguration.java b/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebAdapterConfiguration.java index 2765b2f7..af82973d 100644 --- a/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebAdapterConfiguration.java +++ b/starters/threadpool/adapter/web/src/main/java/cn/hippo4j/springboot/starter/adapter/web/WebAdapterConfiguration.java @@ -19,7 +19,7 @@ package cn.hippo4j.springboot.starter.adapter.web; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.adapter.web.WebThreadPoolRunStateHandler; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.toolkit.inet.InetUtils; import lombok.RequiredArgsConstructor; diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/web/AbstractWebThreadPoolService1x.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/web/AbstractWebThreadPoolService1x.java index f0213907..19acda1e 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/web/AbstractWebThreadPoolService1x.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/web/AbstractWebThreadPoolService1x.java @@ -19,7 +19,7 @@ package cn.hippo4j.config.springboot1x.starter.web; import cn.hippo4j.adapter.web.AbstractWebThreadPoolService; import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.embedded.EmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index 0d748f7e..70a0f707 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -18,8 +18,8 @@ package cn.hippo4j.config.springboot.starter.config; import cn.hippo4j.adapter.web.WebThreadPoolService; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.monitor.ThreadPoolMonitorExecutor; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java index 5b91d02d..985da755 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java @@ -25,9 +25,9 @@ import java.util.Optional; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.config.MonitorProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index f9501559..73940f69 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -18,7 +18,7 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java index 47aae1ed..739e4d06 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import com.alibaba.cloud.nacos.NacosConfigProperties; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.listener.Listener; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java index f3a78962..2b518447 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java @@ -20,7 +20,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.config.springboot.starter.config.AdapterExecutorProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java index 8191b0b5..5c726b97 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.common.config.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java index 0baf43b3..ca068146 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java @@ -20,7 +20,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.api.ThreadPoolConfigChange; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java index c50a2403..25326184 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.support; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index 5b9ee75a..dd3d21d3 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -20,10 +20,10 @@ package cn.hippo4j.springboot.starter.config; import cn.hippo4j.adapter.base.ThreadPoolAdapterBeanContainer; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.common.api.ThreadDetailState; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.api.ThreadPoolConfigChange; import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.core.config.UtilAutoConfiguration; import cn.hippo4j.core.enable.MarkerConfiguration; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java index f697ea55..187f721e 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java @@ -20,8 +20,8 @@ package cn.hippo4j.springboot.starter.controller; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.api.ClientNetworkService; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.core.api.ClientNetworkService; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Results; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java index ce01cbcd..c706be4d 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.core; import cn.hippo4j.common.api.ClientCloseHookExecute; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.web.base.Result; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java index 5460d96b..62b64bff 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java @@ -21,7 +21,7 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterCacheConfig; import cn.hippo4j.adapter.base.ThreadPoolAdapterRegisterAction; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.core.toolkit.IdentifyUtil; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java index b908c3e6..7efc1411 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java @@ -17,10 +17,10 @@ package cn.hippo4j.springboot.starter.monitor; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; import cn.hippo4j.common.monitor.Message; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.ThreadUtil; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/provider/InstanceInfoProviderFactory.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/provider/InstanceInfoProviderFactory.java index 02b8f047..697557d1 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/provider/InstanceInfoProviderFactory.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/provider/InstanceInfoProviderFactory.java @@ -17,9 +17,9 @@ package cn.hippo4j.springboot.starter.provider; -import cn.hippo4j.common.api.ClientNetworkService; +import cn.hippo4j.core.api.ClientNetworkService; import cn.hippo4j.common.model.InstanceInfo; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.ContentUtil; import cn.hippo4j.core.toolkit.IdentifyUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java index c507d12d..7ad8ca19 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java @@ -17,7 +17,7 @@ package cn.hippo4j.springboot.starter.remote; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; import cn.hippo4j.common.toolkit.StringUtil; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java index c3bd82e1..0b7bbbdb 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -17,7 +17,7 @@ package cn.hippo4j.springboot.starter.support; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.enums.EnableEnum; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; diff --git a/threadpool/adapter/base/pom.xml b/threadpool/adapter/base/pom.xml index 2c253278..939675d7 100644 --- a/threadpool/adapter/base/pom.xml +++ b/threadpool/adapter/base/pom.xml @@ -12,7 +12,7 @@ cn.hippo4j - hippo4j-threadpool-infra-common + hippo4j-threadpool-core ${project.version} diff --git a/threadpool/adapter/base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java b/threadpool/adapter/base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java index a87b4743..1338dc5c 100644 --- a/threadpool/adapter/base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java +++ b/threadpool/adapter/base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.base; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.beans.factory.InitializingBean; import java.util.Map; diff --git a/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter4Server.java b/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter4Server.java index 4a187a47..fbd5b94a 100644 --- a/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter4Server.java +++ b/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter4Server.java @@ -21,7 +21,7 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterCacheConfig; import cn.hippo4j.adapter.base.ThreadPoolAdapterRegisterAction; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationStartedEvent; diff --git a/threadpool/adapter/kafka/src/main/java/cn/hippo4j/adapter/kafka/KafkaThreadPoolAdapter.java b/threadpool/adapter/kafka/src/main/java/cn/hippo4j/adapter/kafka/KafkaThreadPoolAdapter.java index 1a2be842..44c8cace 100644 --- a/threadpool/adapter/kafka/src/main/java/cn/hippo4j/adapter/kafka/KafkaThreadPoolAdapter.java +++ b/threadpool/adapter/kafka/src/main/java/cn/hippo4j/adapter/kafka/KafkaThreadPoolAdapter.java @@ -20,8 +20,9 @@ package cn.hippo4j.adapter.kafka; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.ReflectUtil; +import cn.hippo4j.core.config.ApplicationContextHolder; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.cglib.core.Constants; @@ -147,6 +148,7 @@ public class KafkaThreadPoolAdapter implements ThreadPoolAdapter, ApplicationLis * @return true success * @since org.springframework.kafka.listener.ConcurrentMessageListenerContainer#doStart() */ + @SneakyThrows private static boolean addConsumer(String threadPoolKey, ConcurrentMessageListenerContainer concurrentContainer, int originalCoreSize, Integer concurrency) { ContainerProperties containerProperties = concurrentContainer.getContainerProperties(); TopicPartitionOffset[] topicPartitions = containerProperties.getTopicPartitions(); diff --git a/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java b/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java index 3fa91856..2334f0e3 100644 --- a/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java +++ b/threadpool/adapter/rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java @@ -20,9 +20,9 @@ package cn.hippo4j.adapter.rocketmq; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.ReflectUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.impl.consumer.ConsumeMessageService; diff --git a/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java b/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java index d5b3326c..144dcfb2 100644 --- a/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java +++ b/threadpool/adapter/stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java @@ -20,9 +20,9 @@ package cn.hippo4j.adapter.springcloud.stream.rabbitmq; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ReflectUtil; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer; import org.springframework.amqp.rabbit.listener.DirectMessageListenerContainer; diff --git a/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java b/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java index 12769cf3..10b11eab 100644 --- a/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java +++ b/threadpool/adapter/stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java @@ -20,10 +20,10 @@ package cn.hippo4j.adapter.springcloud.stream.rocketmq; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ReflectUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; +import cn.hippo4j.core.config.ApplicationContextHolder; import com.alibaba.cloud.stream.binder.rocketmq.consuming.RocketMQListenerBindingContainer; import com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/DefaultAbstractWebThreadPoolService.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/DefaultAbstractWebThreadPoolService.java index 4d472c23..337a247c 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/DefaultAbstractWebThreadPoolService.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/DefaultAbstractWebThreadPoolService.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.boot.web.server.WebServer; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebIpAndPortHolder.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebIpAndPortHolder.java index dbe23f28..c2b4f2e2 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebIpAndPortHolder.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebIpAndPortHolder.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.WebIpAndPortInfo; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.StringUtil; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java index 1d94d379..71ef1fbe 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.web.exception.ServiceException; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/core/pom.xml b/threadpool/core/pom.xml index fac63720..5002327f 100644 --- a/threadpool/core/pom.xml +++ b/threadpool/core/pom.xml @@ -15,6 +15,10 @@ hippo4j-threadpool-infra-common ${project.version}
+ + org.springframework.boot + spring-boot-starter + org.springframework.boot spring-boot-starter-test diff --git a/infra/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java b/threadpool/core/src/main/java/cn/hippo4j/core/api/ClientNetworkService.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java rename to threadpool/core/src/main/java/cn/hippo4j/core/api/ClientNetworkService.java index 6db7b13d..28cf420f 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/api/ClientNetworkService.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/api/ClientNetworkService.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.api; +package cn.hippo4j.core.api; import org.springframework.core.env.ConfigurableEnvironment; diff --git a/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java b/threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java similarity index 99% rename from infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java rename to threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java index 5c07bd98..25e32097 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolCheckAlarm.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.api; +package cn.hippo4j.core.api; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/infra/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java b/threadpool/core/src/main/java/cn/hippo4j/core/config/ApplicationContextHolder.java similarity index 98% rename from infra/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java rename to threadpool/core/src/main/java/cn/hippo4j/core/config/ApplicationContextHolder.java index 5c2eb3fe..e58fba14 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/config/ApplicationContextHolder.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/config/ApplicationContextHolder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.config; +package cn.hippo4j.core.config; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java index 4b189fec..90e89567 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor.manage; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java index 528eaa5e..9dc940e9 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor.support.adpter; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.support.spi.DynamicThreadPoolAdapterSPI; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/IExtension.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtension.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/extension/IExtension.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtension.java index cae01c93..9e28efcb 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/IExtension.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtension.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension; +package cn.hippo4j.core.extension; /** * Top level interface of extension-point. diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtensionRequest.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtensionRequest.java index 1ad5e14e..9414b670 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/IExtensionRequest.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/IExtensionRequest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension; +package cn.hippo4j.core.extension; /** * Top level interface of extension-point request obj. diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java index 98da0631..b67a58ca 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/annotation/Realization.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.annotation; +package cn.hippo4j.core.extension.annotation; import org.springframework.stereotype.Component; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/config/ExtensionRegisterBootstrap.java similarity index 91% rename from infra/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/config/ExtensionRegisterBootstrap.java index d1ee6baf..c3fc0f07 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/config/ExtensionRegisterBootstrap.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/config/ExtensionRegisterBootstrap.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.config; +package cn.hippo4j.core.extension.config; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.annotation.Realization; -import cn.hippo4j.common.extension.support.ExtensionRegistry; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.annotation.Realization; +import cn.hippo4j.core.extension.support.ExtensionRegistry; import org.springframework.aop.scope.ScopedProxyUtils; import org.springframework.beans.BeansException; import org.springframework.boot.ApplicationArguments; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AllMatch.java similarity index 92% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AllMatch.java index f1f37e7f..604bf0e4 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AllMatch.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AllMatch.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.support.ReduceType; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.support.ReduceType; import cn.hippo4j.common.toolkit.CollectionUtil; import lombok.Getter; import lombok.NonNull; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AnyMatch.java similarity index 92% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AnyMatch.java index 66305b00..3f19fd55 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/AnyMatch.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/AnyMatch.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.support.ReduceType; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.support.ReduceType; import cn.hippo4j.common.toolkit.CollectionUtil; import lombok.Getter; import lombok.NonNull; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/FirstOf.java similarity index 91% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/FirstOf.java index c7aa6981..a148ae91 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/FirstOf.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/FirstOf.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.support.ReduceType; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.support.ReduceType; import lombok.NonNull; import java.util.Objects; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java similarity index 92% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java index 3280a832..db2c1fcc 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/None.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; -import cn.hippo4j.common.extension.support.ReduceType; +import cn.hippo4j.core.extension.support.ReduceType; import java.util.List; import java.util.stream.Collectors; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java similarity index 83% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java index 2f3414ec..1fc2c2d3 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducer.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.IExtensionRequest; -import cn.hippo4j.common.extension.support.ExtensionCallback; -import cn.hippo4j.common.extension.support.ReduceType; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.IExtensionRequest; +import cn.hippo4j.core.extension.support.ExtensionCallback; +import cn.hippo4j.core.extension.support.ReduceType; import lombok.Getter; import lombok.Setter; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java index b3ea7186..f2937205 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/reducer/Reducers.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.reducer; +package cn.hippo4j.core.extension.reducer; import lombok.NonNull; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java similarity index 90% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java index 78736976..67975b85 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionAutoConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; -import cn.hippo4j.common.extension.config.ExtensionRegisterBootstrap; +import cn.hippo4j.core.extension.config.ExtensionRegisterBootstrap; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionCallback.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionCallback.java index 5c71fcb5..b083351f 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionCallback.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionCallback.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; import java.util.function.Function; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionInvoker.java similarity index 90% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionInvoker.java index 24d0465a..fd7a0100 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionInvoker.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionInvoker.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.reducer.Reducer; -import cn.hippo4j.common.extension.reducer.Reducers; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.reducer.Reducer; +import cn.hippo4j.core.extension.reducer.Reducers; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.CollectionUtil; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java index b835446c..33178c5a 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ExtensionRegistry.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; -import cn.hippo4j.common.extension.IExtension; -import cn.hippo4j.common.extension.annotation.Realization; +import cn.hippo4j.core.extension.IExtension; +import cn.hippo4j.core.extension.annotation.Realization; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.logtracing.LogMessage; import lombok.extern.slf4j.Slf4j; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java similarity index 91% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java index d1ffa3e2..9f3b5ae9 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/IExtensionRegistry.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; -import cn.hippo4j.common.extension.IExtension; +import cn.hippo4j.core.extension.IExtension; import java.util.List; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java rename to threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java index 7a4fe9e4..f2ab125e 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/support/ReduceType.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.support; +package cn.hippo4j.core.extension.support; public enum ReduceType { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java index 0b026412..521a3e47 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java @@ -70,7 +70,7 @@ public class DynamicThreadPoolBannerHandler implements InitializingBean { while (padding.length() < STRAP_LINE_SIZE - (bannerVersion.length() + DYNAMIC_THREAD_POOL.length())) { padding.append(" "); } - log.info(AnsiOutput.toString("\n", banner, AnsiColor.GREEN, DYNAMIC_THREAD_POOL, AnsiColor.DEFAULT, + System.out.println(AnsiOutput.toString(banner, AnsiColor.GREEN, DYNAMIC_THREAD_POOL, AnsiColor.DEFAULT, padding.toString(), AnsiStyle.FAINT, bannerVersion, "\n\n", HIPPO4J_GITHUB, "\n", HIPPO4J_SITE, "\n")); } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java index b1bb2c78..7c1ec674 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java @@ -17,8 +17,8 @@ package cn.hippo4j.core.plugin.impl; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; import cn.hippo4j.core.plugin.RejectedAwarePlugin; import lombok.NonNull; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java index be5726d3..2d949a13 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java @@ -17,8 +17,8 @@ package cn.hippo4j.core.plugin.impl; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.plugin.PluginRuntime; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java index 263cbcc3..ff6a1fb1 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java @@ -17,8 +17,8 @@ package cn.hippo4j.core.proxy; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/DynamicThreadPoolAnnotationUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/DynamicThreadPoolAnnotationUtil.java index d4555505..7d1788da 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/DynamicThreadPoolAnnotationUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/DynamicThreadPoolAnnotationUtil.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.toolkit; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java similarity index 91% rename from infra/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java rename to threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java index 6df46504..f14bdfd4 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/FileUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java @@ -15,18 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.common.toolkit; +package cn.hippo4j.core.toolkit; import cn.hippo4j.common.web.exception.IllegalException; import lombok.SneakyThrows; import org.springframework.core.io.ClassPathResource; -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java index 5874f5b7..3f6551b6 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java @@ -17,9 +17,9 @@ package cn.hippo4j.core.toolkit; -import cn.hippo4j.common.api.ClientNetworkService; -import cn.hippo4j.common.config.ApplicationContextHolder; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.core.api.ClientNetworkService; +import cn.hippo4j.core.config.ApplicationContextHolder; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.IdUtil; import cn.hippo4j.common.toolkit.Joiner; diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/ExtensionInvokerTest.java similarity index 78% rename from infra/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/ExtensionInvokerTest.java index 78dd68e7..673c3464 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/ExtensionInvokerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/ExtensionInvokerTest.java @@ -15,19 +15,19 @@ * limitations under the License. */ -package cn.hippo4j.common.extension; +package cn.hippo4j.core.extension; -import cn.hippo4j.common.extension.anymatch.AnyMatchExtImplA; -import cn.hippo4j.common.extension.anymatch.AnyMatchExtImplB; -import cn.hippo4j.common.extension.anymatch.IAnyMatchExtension; -import cn.hippo4j.common.extension.firstof.FirstOfExtImplA; -import cn.hippo4j.common.extension.firstof.FirstOfExtImplB; -import cn.hippo4j.common.extension.firstof.IFirstOfExtension; -import cn.hippo4j.common.extension.reducer.Reducers; -import cn.hippo4j.common.extension.spi.IOldSpi; -import cn.hippo4j.common.extension.support.ExtensionInvoker; -import cn.hippo4j.common.extension.support.ExtensionRegistry; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; +import cn.hippo4j.core.extension.anymatch.AnyMatchExtImplA; +import cn.hippo4j.core.extension.anymatch.AnyMatchExtImplB; +import cn.hippo4j.core.extension.anymatch.IAnyMatchExtension; +import cn.hippo4j.core.extension.firstof.FirstOfExtImplA; +import cn.hippo4j.core.extension.firstof.FirstOfExtImplB; +import cn.hippo4j.core.extension.firstof.IFirstOfExtension; +import cn.hippo4j.core.extension.reducer.Reducers; +import cn.hippo4j.core.extension.spi.IOldSpi; +import cn.hippo4j.core.extension.support.ExtensionInvoker; +import cn.hippo4j.core.extension.support.ExtensionRegistry; import org.assertj.core.util.Lists; import org.junit.Before; import org.junit.Test; @@ -50,6 +50,7 @@ public class ExtensionInvokerTest { ServiceLoaderRegistry.register(IOldSpi.class); } + @Test public void test() { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplA.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplA.java index 75829c75..b9492a6e 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplA.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplA.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.anymatch; +package cn.hippo4j.core.extension.anymatch; -import cn.hippo4j.common.extension.annotation.Realization; +import cn.hippo4j.core.extension.annotation.Realization; @Realization public class AnyMatchExtImplA implements IAnyMatchExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplB.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplB.java index 8aef4d5d..74a8d844 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/AnyMatchExtImplB.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/AnyMatchExtImplB.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.anymatch; +package cn.hippo4j.core.extension.anymatch; -import cn.hippo4j.common.extension.annotation.Realization; +import cn.hippo4j.core.extension.annotation.Realization; @Realization public class AnyMatchExtImplB implements IAnyMatchExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/IAnyMatchExtension.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/IAnyMatchExtension.java index 94d9adec..8d4f3caf 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/anymatch/IAnyMatchExtension.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/anymatch/IAnyMatchExtension.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.anymatch; +package cn.hippo4j.core.extension.anymatch; -import cn.hippo4j.common.extension.IExtension; +import cn.hippo4j.core.extension.IExtension; public interface IAnyMatchExtension extends IExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplA.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplA.java index b5a17c87..a702e28d 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplA.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplA.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.firstof; +package cn.hippo4j.core.extension.firstof; -import cn.hippo4j.common.extension.annotation.Realization; +import cn.hippo4j.core.extension.annotation.Realization; @Realization public class FirstOfExtImplA implements IFirstOfExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplB.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplB.java index 7128541a..9fb0ad87 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/FirstOfExtImplB.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/FirstOfExtImplB.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.firstof; +package cn.hippo4j.core.extension.firstof; -import cn.hippo4j.common.extension.annotation.Realization; +import cn.hippo4j.core.extension.annotation.Realization; @Realization public class FirstOfExtImplB implements IFirstOfExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/IFirstOfExtension.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/IFirstOfExtension.java index f7c8c333..ff720d5c 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/firstof/IFirstOfExtension.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/firstof/IFirstOfExtension.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.firstof; +package cn.hippo4j.core.extension.firstof; -import cn.hippo4j.common.extension.IExtension; +import cn.hippo4j.core.extension.IExtension; public interface IFirstOfExtension extends IExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpi.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpi.java index 7391d6f1..e90facc6 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpi.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpi.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.spi; +package cn.hippo4j.core.extension.spi; -import cn.hippo4j.common.extension.IExtension; +import cn.hippo4j.core.extension.IExtension; public interface IOldSpi extends IExtension { diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java b/threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpiImplA.java similarity index 95% rename from infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java rename to threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpiImplA.java index d161b024..d17fd13d 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/spi/IOldSpiImplA.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/extension/spi/IOldSpiImplA.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.extension.spi; +package cn.hippo4j.core.extension.spi; public class IOldSpiImplA implements IOldSpi { diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java index 8c1f1c65..c4494d72 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.plugin.impl; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java index 92c7e310..1680442b 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.plugin.impl; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java index 54f36bc4..663ef699 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java @@ -17,8 +17,8 @@ package cn.hippo4j.core.proxy; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.junit.Before; import org.junit.Test; import org.junit.jupiter.api.Assertions; diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/DynamicThreadPoolServiceLoaderTest.java similarity index 97% rename from infra/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/DynamicThreadPoolServiceLoaderTest.java index ddd3f317..86b0e5ae 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/DynamicThreadPoolServiceLoaderTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/DynamicThreadPoolServiceLoaderTest.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; import java.util.Collection; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/MyArrayBlockingQueue.java similarity index 97% rename from infra/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/MyArrayBlockingQueue.java index 47408032..153d0c74 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/MyArrayBlockingQueue.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/MyArrayBlockingQueue.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; import cn.hippo4j.common.executor.support.CustomBlockingQueue; diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPI.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPI.java index 2851f7e9..1fc9368e 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPI.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPI.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; /** * test {@link ServiceLoaderRegistry} diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPIImpl.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPIImpl.java index fc8b2779..85a8fda6 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/TestInterfaceSPIImpl.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestInterfaceSPIImpl.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; /** * test {@link ServiceLoaderRegistry} diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPI.java similarity index 85% rename from infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPI.java index e530d6bb..8fe82bad 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPI.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPI.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; -import cn.hippo4j.common.extension.annotation.SingletonSPI; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.SingletonSPI; /** * test {@link ServiceLoaderRegistry} diff --git a/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPIImpl.java similarity index 90% rename from infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java rename to threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPIImpl.java index 6aeb275f..8398109f 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/spi/TestSingletonInterfaceSPIImpl.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/spi/TestSingletonInterfaceSPIImpl.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.spi; +package cn.hippo4j.core.spi; -import cn.hippo4j.common.extension.support.ServiceLoaderRegistry; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; /** * test {@link ServiceLoaderRegistry} diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/toolkit/FileUtilTest.java similarity index 98% rename from infra/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/toolkit/FileUtilTest.java index b3b15b2e..3160c0bc 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/FileUtilTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/toolkit/FileUtilTest.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.common.toolkit; +package cn.hippo4j.core.toolkit; -import org.junit.Test; import org.junit.Assert; +import org.junit.Test; import java.nio.charset.StandardCharsets; import java.util.List; diff --git a/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue new file mode 100644 index 00000000..e897895b --- /dev/null +++ b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.common.executor.support.CustomBlockingQueue @@ -0,0 +1 @@ +cn.hippo4j.core.spi.MyArrayBlockingQueue \ No newline at end of file diff --git a/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.extension.spi.IOldSpi b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.extension.spi.IOldSpi new file mode 100644 index 00000000..730cea11 --- /dev/null +++ b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.extension.spi.IOldSpi @@ -0,0 +1 @@ +cn.hippo4j.core.extension.spi.IOldSpiImplA \ No newline at end of file diff --git a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestInterfaceSPI similarity index 94% rename from infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI rename to threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestInterfaceSPI index 66d393f8..2e4b0c6e 100644 --- a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestInterfaceSPI +++ b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestInterfaceSPI @@ -15,4 +15,4 @@ # limitations under the License. # -cn.hippo4j.common.spi.TestInterfaceSPIImpl \ No newline at end of file +cn.hippo4j.core.spi.TestInterfaceSPIImpl \ No newline at end of file diff --git a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestSingletonInterfaceSPI similarity index 93% rename from infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI rename to threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestSingletonInterfaceSPI index bcfaa43b..86a6cfe6 100644 --- a/infra/common/src/test/resources/META-INF/services/cn.hippo4j.common.spi.TestSingletonInterfaceSPI +++ b/threadpool/core/src/test/resources/META-INF/services/cn.hippo4j.core.spi.TestSingletonInterfaceSPI @@ -15,4 +15,4 @@ # limitations under the License. # -cn.hippo4j.common.spi.TestSingletonInterfaceSPIImpl \ No newline at end of file +cn.hippo4j.core.spi.TestSingletonInterfaceSPIImpl \ No newline at end of file diff --git a/infra/common/src/test/resources/test/test_utf8.txt b/threadpool/core/src/test/resources/test/test_utf8.txt similarity index 100% rename from infra/common/src/test/resources/test/test_utf8.txt rename to threadpool/core/src/test/resources/test/test_utf8.txt diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java b/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java index c92ea715..e915f622 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java @@ -19,11 +19,11 @@ package cn.hippo4j.message.platform; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; +import cn.hippo4j.core.toolkit.FileUtil; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.enums.NotifyPlatformEnum; import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java b/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java index 6de50aab..dce2e378 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java @@ -18,11 +18,11 @@ package cn.hippo4j.message.platform; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; +import cn.hippo4j.core.toolkit.FileUtil; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.enums.NotifyPlatformEnum; import cn.hippo4j.message.enums.NotifyTypeEnum; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java b/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java index c502fc4f..48e191f4 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java @@ -18,10 +18,10 @@ package cn.hippo4j.message.platform; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.http.HttpUtil; +import cn.hippo4j.core.toolkit.FileUtil; import cn.hippo4j.message.enums.NotifyPlatformEnum; import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; import cn.hippo4j.message.platform.base.RobotMessageActualContent; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java b/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java index de770758..d5098b4c 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.message.service; -import cn.hippo4j.common.api.ThreadPoolCheckAlarm; +import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.CalculateUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java b/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java index 30493e82..21db2221 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java @@ -19,7 +19,7 @@ package cn.hippo4j.message.service; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.message.api.NotifyConfigBuilder; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.message.dto.AlarmControlDTO; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.enums.NotifyTypeEnum; diff --git a/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractAdapterThreadPoolMonitor.java b/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractAdapterThreadPoolMonitor.java index adf1ca1c..ec5918c9 100644 --- a/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractAdapterThreadPoolMonitor.java +++ b/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractAdapterThreadPoolMonitor.java @@ -19,7 +19,7 @@ package cn.hippo4j.monitor.base; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import java.util.Map; diff --git a/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/DynamicThreadPoolElasticSearchMonitorHandler.java b/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/DynamicThreadPoolElasticSearchMonitorHandler.java index f476ae1c..e45f3d15 100644 --- a/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/DynamicThreadPoolElasticSearchMonitorHandler.java +++ b/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/DynamicThreadPoolElasticSearchMonitorHandler.java @@ -17,11 +17,11 @@ package cn.hippo4j.monitor.elasticsearch; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; -import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.JSONUtil; +import cn.hippo4j.core.toolkit.FileUtil; import cn.hippo4j.monitor.base.AbstractDynamicThreadPoolMonitor; import cn.hippo4j.monitor.base.MonitorTypeEnum; import cn.hippo4j.monitor.elasticsearch.model.ElasticSearchThreadPoolRunStateInfo; diff --git a/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/ElasticSearchClientHolder.java b/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/ElasticSearchClientHolder.java index ba428722..b1b2a16e 100644 --- a/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/ElasticSearchClientHolder.java +++ b/threadpool/monitor/elasticsearch/src/main/java/cn/hippo4j/monitor/elasticsearch/ElasticSearchClientHolder.java @@ -17,7 +17,7 @@ package cn.hippo4j.monitor.elasticsearch; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpHost; diff --git a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/AdapterThreadPoolMicrometerMonitorHandler.java b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/AdapterThreadPoolMicrometerMonitorHandler.java index b5e20608..aeaa4f22 100644 --- a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/AdapterThreadPoolMicrometerMonitorHandler.java +++ b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/AdapterThreadPoolMicrometerMonitorHandler.java @@ -18,7 +18,7 @@ package cn.hippo4j.monitor.micrometer; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.monitor.base.AbstractAdapterThreadPoolMonitor; diff --git a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java index 19dac923..748f8068 100644 --- a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java +++ b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.monitor.micrometer; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; diff --git a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/WebThreadPoolMicrometerMonitorHandler.java b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/WebThreadPoolMicrometerMonitorHandler.java index 078cb8c1..f61eda61 100644 --- a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/WebThreadPoolMicrometerMonitorHandler.java +++ b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/WebThreadPoolMicrometerMonitorHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.monitor.micrometer; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java index c4efcd25..c3da92b0 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java @@ -45,7 +45,7 @@ import java.io.Closeable; * The client implements Closeable and supports automatic shutdown, However, you can manually * disable it when you want to use it * - * @since 1.5.1 + * @since 2.0.0 */ public interface Client extends Closeable { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java index e3fb241c..cc30b3be 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java @@ -24,7 +24,7 @@ import cn.hippo4j.rpc.model.Response; /** * Applicable to client connections
* - * @since 1.5.1 + * @since 2.0.0 */ public interface ClientConnection extends Connection { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java index b98228c7..880181cb 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java @@ -39,7 +39,7 @@ import java.util.concurrent.locks.LockSupport; /** * Client implemented using netty * - * @since 1.5.1 + * @since 2.0.0 */ @Slf4j public class NettyClientConnection implements ClientConnection { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java index f9eb8eea..527f380d 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java @@ -26,7 +26,7 @@ import java.io.IOException; * The client, which provides a closing mechanism, maintains a persistent connection if not closed
* Delegate the method to the {@link ClientConnection} for implementation * - * @since 1.5.1 + * @since 2.0.0 */ public class RPCClient implements Client { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/CompactObjectOutputStream.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/CompactObjectOutputStream.java index 36c34f9c..5cab9229 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/CompactObjectOutputStream.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/CompactObjectOutputStream.java @@ -25,7 +25,7 @@ import java.io.OutputStream; /** * object OutputStream * - * @since 1.5.1 + * @since 2.0.0 */ public class CompactObjectOutputStream extends ObjectOutputStream { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java index 3197b3a7..8c5ce752 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java @@ -30,7 +30,7 @@ import java.io.Serializable; * this is a encoder, For custom gluing and unpacking
* {@link io.netty.handler.codec.serialization.ObjectEncoder} * - * @since 1.5.1 + * @since 2.0.0 */ public class NettyEncoder extends MessageToByteEncoder { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java index d01f510e..227f19e1 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java @@ -26,7 +26,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * the registration center for Client and Server * - * @since 1.5.1 + * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ClassRegistry { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java index 44b9a6f4..d04adbe3 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java @@ -28,7 +28,7 @@ import java.util.ServiceLoader; * Load through the ServiceLoader first. If the load fails, load directly through the instantiation. * If it is an interface, throw an exception. This is not elegant implementation * - * @since 1.5.1 + * @since 2.0.0 */ public class DefaultInstance implements Instance { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DiscoveryAdapter.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DiscoveryAdapter.java index 119fde6e..6ec4e7da 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DiscoveryAdapter.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DiscoveryAdapter.java @@ -23,7 +23,7 @@ import java.net.InetSocketAddress; * The adaptation layer of different service centers is used to know * the host of different services through the registration center * - * @since 1.5.1 + * @since 2.0.0 */ public interface DiscoveryAdapter { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java index 83f649f0..8d1c92c3 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java @@ -20,7 +20,7 @@ package cn.hippo4j.rpc.discovery; /** * Instance interface to get an instance * - * @since 1.5.1 + * @since 2.0.0 */ public interface Instance { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ServerPort.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ServerPort.java index 82e240a7..71e835c4 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ServerPort.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ServerPort.java @@ -20,7 +20,7 @@ package cn.hippo4j.rpc.discovery; /** * Gets the top-level interface of the instance port * - * @since 1.5.1 + * @since 2.0.0 */ @FunctionalInterface public interface ServerPort { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java index fa25d4c9..324c0705 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java @@ -17,23 +17,23 @@ package cn.hippo4j.rpc.discovery; -import cn.hippo4j.common.config.ApplicationContextHolder; - /** * Adapter Spring, The requested object is managed by spring * - * @since 1.5.1 + * @since 2.0.0 */ public class SpringContextInstance implements Instance { @Override public Object getInstance(Class cls) { - return ApplicationContextHolder.getBean(cls); + // return ApplicationContextHolder.getBean(cls); + return null; } @Override public Object getInstance(String name) { - return ApplicationContextHolder.getInstance().getBean(name); + // return ApplicationContextHolder.getInstance().getBean(name); + return null; } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/CoderException.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/CoderException.java index e891772c..c55117d3 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/CoderException.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/CoderException.java @@ -21,7 +21,7 @@ package cn.hippo4j.rpc.exception; * During decoding and encoding, if an exception occurs, an exception of type {@link CoderException} is thrown, * which is not different from a {@link RuntimeException}, but is more explicit about the type of exception * - * @since 1.5.1 + * @since 2.0.0 */ public class CoderException extends RuntimeException { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/ConnectionException.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/ConnectionException.java index aaf6edd2..2ac45233 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/ConnectionException.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/ConnectionException.java @@ -22,7 +22,7 @@ package cn.hippo4j.rpc.exception; * {@link ConnectionException} is thrown, which is not different from {@link RuntimeException}, but is more explicit * about the type of exception * - * @since 1.5.1 + * @since 2.0.0 */ public class ConnectionException extends RuntimeException { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/TimeOutException.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/TimeOutException.java index 43d51057..a6ed5b77 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/TimeOutException.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/TimeOutException.java @@ -21,7 +21,7 @@ package cn.hippo4j.rpc.exception; * If there is a timeout between the server and the client, you will get a {@link TimeOutException}, * which is not different from {@link RuntimeException}, but it will be more explicit about the type of exception, right * - * @since 1.5.1 + * @since 2.0.0 */ public class TimeOutException extends RuntimeException { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java index a3d5eae2..85f7289d 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java @@ -31,7 +31,7 @@ import java.util.stream.Collectors; /** * Processor manager for ChannelHandler in netty * - * @since 1.5.1 + * @since 2.0.0 */ public abstract class AbstractNettyHandlerManager implements HandlerManager { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyTakeHandler.java index 3bc02728..c1740b5b 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyTakeHandler.java @@ -29,7 +29,7 @@ import java.util.Optional; /** * the abstract base of {@link ConnectHandler} and {@link ChannelInboundHandlerAdapter} * - * @since 1.5.1 + * @since 2.0.0 */ public abstract class AbstractNettyTakeHandler extends ChannelInboundHandlerAdapter implements ConnectHandler { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ConnectHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ConnectHandler.java index 35c900fc..d8650e7c 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ConnectHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ConnectHandler.java @@ -25,7 +25,7 @@ import cn.hippo4j.rpc.model.Response; * must be specified, such as serialization and parsing, requesting and receiving * requests, and so on
* - * @since 1.5.1 + * @since 2.0.0 */ public interface ConnectHandler { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java index 943b4f54..5f93bab7 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java @@ -27,7 +27,7 @@ import java.io.Closeable; * connection and the connection channel together, so creating {@link Connection} is * very resource intensive, for which caching is recommended * - * @since 1.5.1 + * @since 2.0.0 */ public interface Connection extends Closeable { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java index fbc72bc4..5c583eee 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java @@ -26,7 +26,7 @@ import lombok.Getter; * Manage the Handler used in the processing.
* The Handler must be able to exist multiple times and be invoked once in a single execution * - * @since 1.5.1 + * @since 2.0.0 */ public interface HandlerManager { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java index 42d5fbaf..26a195d9 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java @@ -33,7 +33,7 @@ import java.util.List; /** * Processing by the client connection pool handler to clean the buffer and define new connection properties * - * @since 1.5.1 + * @since 2.0.0 */ @Slf4j public class NettyClientPoolHandler extends AbstractNettyHandlerManager implements ChannelPoolHandler { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java index b1852bd5..dca66b90 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java @@ -25,7 +25,7 @@ import io.netty.channel.ChannelHandlerContext; /** * Interconnect with the netty mediation layer * - * @since 1.5.1 + * @since 2.0.0 */ @ChannelHandler.Sharable public class NettyClientTakeHandler extends AbstractNettyTakeHandler implements ConnectHandler { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java index e0951c03..c83846c7 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java @@ -32,7 +32,7 @@ import java.lang.reflect.Method; /** * netty adaptation layer * - * @since 1.5.1 + * @since 2.0.0 */ @ChannelHandler.Sharable public class NettyServerTakeHandler extends AbstractNettyTakeHandler implements ConnectHandler { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java index a49ad075..d615e2ea 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java @@ -26,7 +26,7 @@ import java.util.Objects; * default request
* Use the fully qualified name key of the interface and override equals and hashCode * - * @since 1.5.1 + * @since 2.0.0 */ public final class DefaultRequest implements Request { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java index 1f4d46ae..0ba5e799 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java @@ -26,7 +26,7 @@ import java.util.Objects; * default request
* Use the fully qualified name key of the interface and override equals and hashCode * - * @since 1.5.1 + * @since 2.0.0 */ public class DefaultResponse implements Response { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java index 128d069e..83d4feae 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java @@ -22,7 +22,7 @@ import java.io.Serializable; /** * request * - * @since 1.5.1 + * @since 2.0.0 */ public interface Request extends Serializable { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java index a7b2642a..cd7ada9c 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java @@ -22,7 +22,7 @@ import java.io.Serializable; /** * Response * - * @since 1.5.1 + * @since 2.0.0 */ public interface Response extends Serializable { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java index 65a8c2b6..224163eb 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java @@ -45,7 +45,7 @@ import java.util.List; /** * adapter to the netty server * - * @since 1.5.1 + * @since 2.0.0 */ @Slf4j public class NettyServerConnection extends AbstractNettyHandlerManager implements ServerConnection { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java index b50c0f85..1136937e 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java @@ -25,7 +25,7 @@ import java.io.IOException; /** * Server Implementation * - * @since 1.5.1 + * @since 2.0.0 */ public class RPCServer implements Server { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/Server.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/Server.java index 5c346525..4583e4a0 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/Server.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/Server.java @@ -22,7 +22,7 @@ import java.io.Closeable; /** * the service for RPC, Explain the role of the service in the request * - * @since 1.5.1 + * @since 2.0.0 */ public interface Server extends Closeable { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java index a1a830ca..a72d2318 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java @@ -23,7 +23,7 @@ import cn.hippo4j.rpc.handler.Connection; /** * This applies to server-side connections * - * @since 1.5.1 + * @since 2.0.0 */ public interface ServerConnection extends Connection { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ClientFactoryBean.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ClientFactoryBean.java deleted file mode 100644 index 37b63596..00000000 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ClientFactoryBean.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.rpc.client.Client; -import cn.hippo4j.rpc.discovery.DiscoveryAdapter; -import cn.hippo4j.rpc.exception.ConnectionException; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import io.netty.channel.ChannelHandler; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; - -import java.net.InetSocketAddress; -import java.util.Optional; - -/** - * A FactoryBean that builds interfaces to invoke proxy objects - * is responsible for managing the entire life cycle of the proxy objects
- *

APPLICATION START

- * When the application is started, the request initiator needs to complete the proxy of the calling interface, - * which ensures that the method can be requested to the server side when the method is called, rather than simply - * request an interface that cannot be instantiated. The classes involved in adding proxy to the interface are: - *
    - *
  • {@link NettyClientSupport}
  • - *
  • {@link NettyProxyCenter}
  • - *
  • {@link NettyClientPoolHandler}
  • - *
- *

AND SPRING

- * In order to fully integrate {@link ClientFactoryBean} into the life cycle of spring beans, - * {@link ClientFactoryBean} also needs to implement the following interfaces: - *
    - *
  • {@link InitializingBean}
  • - *
  • {@link ApplicationContextAware}
  • - *
  • {@link DisposableBean}
  • - *
- * - * @since 1.5.1 - * @deprecated With {@link cn.hippo4j.config.service.ThreadPoolAdapterService} structure, FactoryBean is not the best choice - */ -@Deprecated -public class ClientFactoryBean implements FactoryBean, InitializingBean, ApplicationContextAware, DisposableBean { - - /** - * Application name or address string. If it is an address string, it must be in ip:port format - */ - private String applicationName; - - /** - * The adapter name in the container needs to be used with applicationName - * to get the real server address. If it is null or the address information - * cannot be found, applicationName is treated as an address string - */ - private String discoveryAdapterName; - - /** - * The adaptation interface for obtaining ip information in the registry is used together with - * {@link #discoveryAdapterName}, so that the adapter implementation can be obtained in the container - * during the initialization phase - */ - private DiscoveryAdapter discoveryAdapter; - - /** - * the channel handler, To ensure the security and reliability of netty calls, - * {@link ChannelHandler} must be identified by {@link ChannelHandler.Sharable} - */ - private ChannelHandler[] handlers; - - /** - * Type of the proxy interface - */ - private Class cls; - - /** - * Container Context - */ - private ApplicationContext applicationContext; - - /** - * InetSocketAddress, It is usually converted from {@link #applicationName} and {@link #discoveryAdapter} - */ - InetSocketAddress address; - - public ClientFactoryBean(String applicationName, String discoveryAdapterName, Class cls) { - Assert.notNull(applicationName); - Assert.notNull(cls); - this.applicationName = applicationName; - this.discoveryAdapterName = discoveryAdapterName; - this.cls = cls; - } - - @Override - public Object getObject() throws Exception { - this.address = Optional.ofNullable(applicationName) - .map(a -> discoveryAdapter.getSocketAddress(a)) - .map(a -> { - String[] addressStr = applicationName.split(":"); - if (addressStr.length < 2) { - throw new ConnectionException("Failed to connect to the server because the IP address is invalid. Procedure"); - } - return InetSocketAddress.createUnresolved(addressStr[0], Integer.parseInt(addressStr[1])); - }) - .orElseThrow(() -> new ConnectionException("Failed to connect to the server because the IP address is invalid. Procedure")); - Client client = NettyClientSupport.getClient(this.address, new NettyClientPoolHandler(handlers)); - return NettyProxyCenter.createProxy(client, cls, this.address); - } - - @Override - public Class getObjectType() { - return cls; - } - - @Override - public void afterPropertiesSet() throws Exception { - this.discoveryAdapter = Optional.ofNullable(discoveryAdapterName) - .map(s -> (DiscoveryAdapter) applicationContext.getBean(discoveryAdapterName)) - .orElse(null); - } - - @Override - public void destroy() throws Exception { - Optional.ofNullable(this.address) - .ifPresent(a -> NettyClientSupport.closeClient(this.address)); - } - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - this.applicationContext = applicationContext; - } - - public ClientFactoryBean applicationName(String applicationName) { - this.applicationName = applicationName; - return this; - } - - public ClientFactoryBean discoveryAdapterName(String discoveryAdapterName) { - this.discoveryAdapterName = discoveryAdapterName; - return this; - } - - public ClientFactoryBean cls(Class cls) { - this.cls = cls; - return this; - } - - public ClientFactoryBean handlers(ChannelHandler[] handlers) { - this.handlers = handlers; - return this; - } - -} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java index 84797f44..5eb12607 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java @@ -51,8 +51,7 @@ import java.util.concurrent.ConcurrentHashMap; * @see cn.hippo4j.rpc.client.RPCClient * @see cn.hippo4j.rpc.client.NettyClientConnection * @see NettyServerSupport - * @see ClientFactoryBean - * @since 1.5.1 + * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class NettyClientSupport { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java index dc2f9b57..9585adc8 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; /** * This parameter applies only to the connection pool of netty * - * @since 1.5.1 + * @since 2.0.0 */ @Slf4j public class NettyConnectPool { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java index 6af34cd6..8fada5f7 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java @@ -32,7 +32,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * To avoid creating multiple connection pools for the same host:port, save all connection pools of the client * - * @since 1.5.1 + * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class NettyConnectPoolHolder { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java index 1a0dd1fd..910e27f4 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java @@ -37,7 +37,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * Add a proxy for the request, {@link Proxy} and {@link InvocationHandler} * - * @since 1.5.1 + * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class NettyProxyCenter { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java index b2cc2af1..c09f25f2 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java @@ -40,7 +40,7 @@ import java.util.List; * @see RPCServer * @see NettyServerConnection * @see NettyClientSupport - * @since 1.5.1 + * @since 2.0.0 */ public class NettyServerSupport implements Server { diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ResultHolder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ResultHolder.java index fa57b9f1..9a50f661 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ResultHolder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/ResultHolder.java @@ -32,7 +32,7 @@ import java.util.concurrent.locks.LockSupport; * response, and the result of the call is stored in the secondary cache, * which is convenient for the client to use at any time. * - * @since 1.5.1 + * @since 2.0.0 */ @Slf4j @NoArgsConstructor(access = AccessLevel.PRIVATE) diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java index 6eb17f5f..5bce1cff 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java @@ -17,27 +17,29 @@ package cn.hippo4j.rpc.discovery; -import cn.hippo4j.common.config.ApplicationContextHolder; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {InstanceModel.class, ApplicationContextHolder.class}) -@RunWith(SpringJUnit4ClassRunner.class) +/** + * TODO Common module removes spring dependency leftovers + */ +// @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {InstanceModel.class}) +// @RunWith(SpringJUnit4ClassRunner.class) public class SpringContextInstanceTest { Instance instance = new SpringContextInstance(); - @Test + // @Test public void getInstance() { Object obj = instance.getInstance(InstanceModel.class); Assert.assertNotNull(obj); Assert.assertEquals(obj.getClass(), InstanceModel.class); } - @Test + // @Test public void testGetInstance() { Object obj = instance.getInstance("instanceModel"); Assert.assertNotNull(obj); diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java index 578677bb..49cbf368 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/CommonConfig.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.config; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java index 525ee8ee..0057a67a 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.monitor; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageTypeEnum; import org.springframework.boot.CommandLineRunner; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java index 04232aa5..72e0abc1 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.service; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.design.observer.AbstractSubjectCenter; import cn.hippo4j.common.design.observer.Observer; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index 6038751a..a9b56bba 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.service.biz.impl; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.enums.DelEnum; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/verify/ConfigModificationVerifyServiceChoose.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/verify/ConfigModificationVerifyServiceChoose.java index 2eb72589..ec944bee 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/verify/ConfigModificationVerifyServiceChoose.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/verify/ConfigModificationVerifyServiceChoose.java @@ -17,9 +17,9 @@ package cn.hippo4j.config.verify; -import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.constant.ConfigModifyTypeConstants; import cn.hippo4j.config.service.biz.ConfigModificationVerifyService; +import cn.hippo4j.core.config.ApplicationContextHolder; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java index cf7a66d5..13467a96 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java @@ -18,7 +18,7 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.api.ClientCloseHookExecute; -import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Results; @@ -37,9 +37,9 @@ import java.util.Map; public class ClientCloseHookController { @PostMapping - public Result clientCloseHook(@RequestBody ClientCloseHookExecute.ClientCloseHookReq req) { + public Result clientCloseHook(@RequestBody ClientCloseHookExecute.ClientCloseHookReq requestParam) { Map clientCloseHookExecuteMap = ApplicationContextHolder.getBeansOfType(ClientCloseHookExecute.class); - clientCloseHookExecuteMap.forEach((key, execute) -> execute.closeHook(req)); + clientCloseHookExecuteMap.forEach((key, execute) -> execute.closeHook(requestParam)); return Results.success(); } } From 5a124e85a99a1caa5c4dc9db96404c778591d08d Mon Sep 17 00:00:00 2001 From: Xin Chen <37373516+DDreame@users.noreply.github.com> Date: Wed, 17 May 2023 20:36:16 +0800 Subject: [PATCH 15/58] optimize: fix StyleCheck errors for hippo4j-agent-bootstrap (#1292) * optimize: fix StyleCheck errors for hippo4j-agent-bootstrap * optimize: fix StyleCheck errors for hippo4j-agent-bootstrap * optimize: fix StyleCheck errors for hippo4j-agent-bootstrap --- .../hippo4j/agent/bootstrap/Hippo4jAgent.java | 17 ++++++++++++----- checkstyle/hippo4j_checkstyle_suppression.xml | 2 ++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java b/agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java index afae5cc0..64f6ce9c 100644 --- a/agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java +++ b/agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java @@ -18,7 +18,6 @@ package cn.hippo4j.agent.bootstrap; import cn.hippo4j.agent.core.boot.AgentPackageNotFoundException; -import cn.hippo4j.agent.core.boot.DefaultNamedThreadFactory; import cn.hippo4j.agent.core.boot.ServiceManager; import cn.hippo4j.agent.core.conf.Config; import cn.hippo4j.agent.core.conf.SnifferConfigInitializer; @@ -49,15 +48,14 @@ import java.security.ProtectionDomain; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; import static net.bytebuddy.matcher.ElementMatchers.nameContains; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.not; +/** + * Hippo4j Agent + */ public class Hippo4jAgent { private static ILog LOGGER = LogManager.getLogger(Hippo4jAgent.class); @@ -151,6 +149,9 @@ public class Hippo4jAgent { .addShutdownHook(new Thread(ServiceManager.INSTANCE::shutdown, "hippo4j service shutdown thread")); } + /** + * transformer + */ private static class Transformer implements AgentBuilder.Transformer { private PluginFinder pluginFinder; @@ -193,6 +194,9 @@ public class Hippo4jAgent { return nameStartsWith("cn.hippo4j").and(not(nameStartsWith("cn.hippo4j.agent.toolkit."))); } + /** + * listener + */ private static class Listener implements AgentBuilder.Listener { @Override @@ -235,6 +239,9 @@ public class Hippo4jAgent { } } + /** + * redefinition listener + */ private static class RedefinitionListener implements AgentBuilder.RedefinitionStrategy.Listener { @Override diff --git a/checkstyle/hippo4j_checkstyle_suppression.xml b/checkstyle/hippo4j_checkstyle_suppression.xml index 39de4153..6d6baded 100644 --- a/checkstyle/hippo4j_checkstyle_suppression.xml +++ b/checkstyle/hippo4j_checkstyle_suppression.xml @@ -30,4 +30,6 @@ + + From 908671e88751fe39780f92f93974721c3b542ad0 Mon Sep 17 00:00:00 2001 From: yanrongzhen Date: Wed, 17 May 2023 23:31:21 +0800 Subject: [PATCH 16/58] Implement real-time parameter modification of the Spring bean thread pool instance. (#1295) * Add common dependencies and realize basic functions. * Update example config properties --- .../threadpool/hippo4j-agent-plugin/pom.xml | 1 - ...tPublishingRunListenerInstrumentation.java | 10 +++ .../EventPublishingFinishedInterceptor.java | 2 +- ...tPublishingRunListenerInstrumentation.java | 10 +++ .../EventPublishingStartedInterceptor.java | 2 +- .../spring/common/conf/SpringBootConfig.java | 4 +- .../SpringThreadPoolRegisterSupport.java | 27 +++++- agents/threadpool/pom.xml | 6 ++ .../resources/apollo-config-agent.properties | 85 +++++++++++++++++++ .../resources/apollo-config-agent.properties | 85 +++++++++++++++++++ .../main/resources/apollo-config.properties | 20 +---- 11 files changed, 227 insertions(+), 25 deletions(-) create mode 100644 examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/resources/apollo-config-agent.properties create mode 100644 examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config-agent.properties diff --git a/agents/threadpool/hippo4j-agent-plugin/pom.xml b/agents/threadpool/hippo4j-agent-plugin/pom.xml index a49097de..0a4ed758 100644 --- a/agents/threadpool/hippo4j-agent-plugin/pom.xml +++ b/agents/threadpool/hippo4j-agent-plugin/pom.xml @@ -41,7 +41,6 @@ net.bytebuddy byte-buddy - ${bytebuddy.version} provided diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java index e918b90d..06c93998 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java @@ -17,6 +17,7 @@ package cn.hippo4j.agent.plugin.spring.boot.v1.define; +import cn.hippo4j.agent.core.plugin.WitnessMethod; import cn.hippo4j.agent.core.plugin.interceptor.ConstructorInterceptPoint; import cn.hippo4j.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; import cn.hippo4j.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; @@ -24,6 +25,9 @@ import cn.hippo4j.agent.core.plugin.match.ClassMatch; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.matcher.ElementMatcher; +import java.util.Collections; +import java.util.List; + import static net.bytebuddy.matcher.ElementMatchers.named; import static cn.hippo4j.agent.core.plugin.match.NameMatch.byName; @@ -86,4 +90,10 @@ public class EventPublishingRunListenerInstrumentation extends ClassInstanceMeth } }; } + + @Override + protected List witnessMethods() { + return Collections.singletonList(new WitnessMethod("org.springframework.boot.context.event.EventPublishingRunListener", + named("finished"))); + } } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java index 8b3bd59d..8e31a629 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java @@ -50,7 +50,7 @@ public class EventPublishingFinishedInterceptor implements InstanceMethodsAround ConfigurableApplicationContext context = (ConfigurableApplicationContext) allArguments[0]; if (context.getParent() != null) { // After the child container is started, the thread pool registration will be carried out - SpringThreadPoolRegisterSupport.registerThreadPoolInstances(); + SpringThreadPoolRegisterSupport.registerThreadPoolInstances(context); return ret; } SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java index d341f00c..34d36c39 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java @@ -17,6 +17,7 @@ package cn.hippo4j.agent.plugin.spring.boot.v2.define; +import cn.hippo4j.agent.core.plugin.WitnessMethod; import cn.hippo4j.agent.core.plugin.interceptor.ConstructorInterceptPoint; import cn.hippo4j.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; import cn.hippo4j.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; @@ -24,6 +25,9 @@ import cn.hippo4j.agent.core.plugin.match.ClassMatch; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.matcher.ElementMatcher; +import java.util.Collections; +import java.util.List; + import static net.bytebuddy.matcher.ElementMatchers.named; import static cn.hippo4j.agent.core.plugin.match.NameMatch.byName; @@ -86,4 +90,10 @@ public class EventPublishingRunListenerInstrumentation extends ClassInstanceMeth } }; } + + @Override + protected List witnessMethods() { + return Collections.singletonList(new WitnessMethod("org.springframework.boot.context.event.EventPublishingRunListener", + named("started"))); + } } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java index 2f3803fd..d4362392 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java @@ -47,7 +47,7 @@ public class EventPublishingStartedInterceptor implements InstanceMethodsAroundI ConfigurableApplicationContext context = (ConfigurableApplicationContext) allArguments[0]; if (context.getParent() != null) { // After the child container is started, the thread pool registration will be carried out - SpringThreadPoolRegisterSupport.registerThreadPoolInstances(); + SpringThreadPoolRegisterSupport.registerThreadPoolInstances(context); return ret; } SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java index e4a16126..813369c3 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java @@ -49,10 +49,10 @@ public class SpringBootConfig { @SpringBootConfigNode(root = SpringBootConfig.class) public static class Apollo { - public static final List NAMESPACE = Arrays.asList("application"); + public static List NAMESPACE = Arrays.asList("application"); } - public static final String CONFIG_FILE_TYPE = null; + public static String CONFIG_FILE_TYPE; } } } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index d54f901d..8a7da4c7 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -24,13 +24,18 @@ import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.toolkit.BooleanUtil; +import cn.hippo4j.core.executor.DynamicThreadPool; +import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; +import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapterChoose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationContext; import java.lang.reflect.Field; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -41,7 +46,7 @@ public class SpringThreadPoolRegisterSupport { private static final Logger LOGGER = LoggerFactory.getLogger(SpringThreadPoolRegisterSupport.class); - public static void registerThreadPoolInstances() { + public static void registerThreadPoolInstances(ApplicationContext context) { Map> earlyConstructMap = AgentThreadPoolInstanceRegistry.getInstance().earlyConstructMap; for (Map.Entry> entry : earlyConstructMap.entrySet()) { ThreadPoolExecutor enhancedInstance = entry.getKey(); @@ -60,10 +65,30 @@ public class SpringThreadPoolRegisterSupport { } } } + + Map beansWithAnnotation = context.getBeansOfType(Executor.class); + for (Map.Entry entry : beansWithAnnotation.entrySet()) { + String beanName = entry.getKey(); + Executor bean = entry.getValue(); + ThreadPoolExecutor executor = null; + if (DynamicThreadPoolAdapterChoose.match(bean)) { + executor = DynamicThreadPoolAdapterChoose.unwrap(bean); + } else { + executor = (ThreadPoolExecutor) bean; + } + if (executor == null) { + LOGGER.warn("[Hippo4j-Agent] Thread pool is null, ignore bean registration. beanName={}, beanClass={}", beanName, bean.getClass().getName()); + } else { + register(beanName, executor); + } + } LOGGER.info("[Hippo4j-Agent] Registered thread pool instances successfully."); } public static void register(String threadPoolId, ThreadPoolExecutor executor) { + if (executor == null) { + return; + } // build parameter properties. Properties properties = new Properties(); properties.put(ThreadPoolPropertyKey.THREAD_POOL_ID, threadPoolId); diff --git a/agents/threadpool/pom.xml b/agents/threadpool/pom.xml index 0ccc62a9..bd1437f8 100644 --- a/agents/threadpool/pom.xml +++ b/agents/threadpool/pom.xml @@ -69,6 +69,12 @@ hippo4j-agent-core ${project.version} + + cn.hippo4j + hippo4j-threadpool-common + ${project.version} + provided + com.google.code.gson gson diff --git a/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/resources/apollo-config-agent.properties b/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/resources/apollo-config-agent.properties new file mode 100644 index 00000000..fd5ef431 --- /dev/null +++ b/examples/threadpool-example/config/config-apollo-spring-boot-1x/src/main/resources/apollo-config-agent.properties @@ -0,0 +1,85 @@ +# Copy the following to the apollo configuration file + +spring.dynamic.thread-pool.web.core-pool-size=64 +spring.dynamic.thread-pool.web.maximum-pool-size=128 +spring.dynamic.thread-pool.web.keep-alive-time=1000 +spring.dynamic.thread-pool.web.enable=true +spring.dynamic.thread-pool.default-executor.core-pool-size=1 +spring.dynamic.thread-pool.default-executor.maximum-pool-size=2 +spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.default-executor.execute-time-out=100 +spring.dynamic.thread-pool.default-executor.keep-alive-time=6691 +spring.dynamic.thread-pool.default-executor.queue-capacity=1 +spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy +spring.dynamic.thread-pool.default-executor.active-alarm=90 +spring.dynamic.thread-pool.default-executor.capacity-alarm=85 +spring.dynamic.thread-pool.default-executor.alarm=true +spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true +spring.dynamic.thread-pool.default-executor.notify.interval=5 +spring.dynamic.thread-pool.default-executor.notify.receives=hippo4j +spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT +spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08 + +spring.dynamic.thread-pool.executors[0].thread-pool-id = cn.hippo4j.example.core.config.DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[0].thread-name-prefix = DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[0].core-pool-size = 2 +spring.dynamic.thread-pool.executors[0].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[0].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[0].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[0].execute-time-out = 800 +spring.dynamic.thread-pool.executors[0].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[0].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[0].alarm = true +spring.dynamic.thread-pool.executors[0].active-alarm = 80 +spring.dynamic.thread-pool.executors[0].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[0].notify.interval = 8 +spring.dynamic.thread-pool.executors[0].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[1].thread-pool-id = cn.hippo4j.example.core.config.DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[1].thread-name-prefix = DynamicThreadPoolConfig#FIELD2 +spring.dynamic.thread-pool.executors[1].core-pool-size = 2 +spring.dynamic.thread-pool.executors[1].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[1].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[1].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[1].execute-time-out = 800 +spring.dynamic.thread-pool.executors[1].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[1].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[1].alarm = true +spring.dynamic.thread-pool.executors[1].active-alarm = 80 +spring.dynamic.thread-pool.executors[1].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[1].notify.interval = 8 +spring.dynamic.thread-pool.executors[1].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[2].thread-pool-id = messageConsumeTtlDynamicThreadPool +spring.dynamic.thread-pool.executors[2].thread-name-prefix = messageConsumeTtlDynamicThreadPool +spring.dynamic.thread-pool.executors[2].core-pool-size = 2 +spring.dynamic.thread-pool.executors[2].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[2].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[2].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[2].execute-time-out = 800 +spring.dynamic.thread-pool.executors[2].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[2].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[2].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[2].alarm = true +spring.dynamic.thread-pool.executors[2].active-alarm = 80 +spring.dynamic.thread-pool.executors[2].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[2].notify.interval = 8 +spring.dynamic.thread-pool.executors[2].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[3].thread-pool-id = messageProduceDynamicThreadPool +spring.dynamic.thread-pool.executors[3].thread-name-prefix = messageProduceDynamicThreadPool +spring.dynamic.thread-pool.executors[3].core-pool-size = 2 +spring.dynamic.thread-pool.executors[3].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[3].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[3].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[3].execute-time-out = 800 +spring.dynamic.thread-pool.executors[3].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[3].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[3].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[3].alarm = true +spring.dynamic.thread-pool.executors[3].active-alarm = 80 +spring.dynamic.thread-pool.executors[3].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[3].notify.interval = 8 +spring.dynamic.thread-pool.executors[3].notify.receives = hippo4j diff --git a/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config-agent.properties b/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config-agent.properties new file mode 100644 index 00000000..fd5ef431 --- /dev/null +++ b/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config-agent.properties @@ -0,0 +1,85 @@ +# Copy the following to the apollo configuration file + +spring.dynamic.thread-pool.web.core-pool-size=64 +spring.dynamic.thread-pool.web.maximum-pool-size=128 +spring.dynamic.thread-pool.web.keep-alive-time=1000 +spring.dynamic.thread-pool.web.enable=true +spring.dynamic.thread-pool.default-executor.core-pool-size=1 +spring.dynamic.thread-pool.default-executor.maximum-pool-size=2 +spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.default-executor.execute-time-out=100 +spring.dynamic.thread-pool.default-executor.keep-alive-time=6691 +spring.dynamic.thread-pool.default-executor.queue-capacity=1 +spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy +spring.dynamic.thread-pool.default-executor.active-alarm=90 +spring.dynamic.thread-pool.default-executor.capacity-alarm=85 +spring.dynamic.thread-pool.default-executor.alarm=true +spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true +spring.dynamic.thread-pool.default-executor.notify.interval=5 +spring.dynamic.thread-pool.default-executor.notify.receives=hippo4j +spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT +spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08 + +spring.dynamic.thread-pool.executors[0].thread-pool-id = cn.hippo4j.example.core.config.DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[0].thread-name-prefix = DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[0].core-pool-size = 2 +spring.dynamic.thread-pool.executors[0].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[0].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[0].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[0].execute-time-out = 800 +spring.dynamic.thread-pool.executors[0].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[0].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[0].alarm = true +spring.dynamic.thread-pool.executors[0].active-alarm = 80 +spring.dynamic.thread-pool.executors[0].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[0].notify.interval = 8 +spring.dynamic.thread-pool.executors[0].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[1].thread-pool-id = cn.hippo4j.example.core.config.DynamicThreadPoolConfig#FIELD1 +spring.dynamic.thread-pool.executors[1].thread-name-prefix = DynamicThreadPoolConfig#FIELD2 +spring.dynamic.thread-pool.executors[1].core-pool-size = 2 +spring.dynamic.thread-pool.executors[1].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[1].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[1].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[1].execute-time-out = 800 +spring.dynamic.thread-pool.executors[1].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[1].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[1].alarm = true +spring.dynamic.thread-pool.executors[1].active-alarm = 80 +spring.dynamic.thread-pool.executors[1].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[1].notify.interval = 8 +spring.dynamic.thread-pool.executors[1].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[2].thread-pool-id = messageConsumeTtlDynamicThreadPool +spring.dynamic.thread-pool.executors[2].thread-name-prefix = messageConsumeTtlDynamicThreadPool +spring.dynamic.thread-pool.executors[2].core-pool-size = 2 +spring.dynamic.thread-pool.executors[2].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[2].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[2].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[2].execute-time-out = 800 +spring.dynamic.thread-pool.executors[2].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[2].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[2].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[2].alarm = true +spring.dynamic.thread-pool.executors[2].active-alarm = 80 +spring.dynamic.thread-pool.executors[2].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[2].notify.interval = 8 +spring.dynamic.thread-pool.executors[2].notify.receives = hippo4j + +spring.dynamic.thread-pool.executors[3].thread-pool-id = messageProduceDynamicThreadPool +spring.dynamic.thread-pool.executors[3].thread-name-prefix = messageProduceDynamicThreadPool +spring.dynamic.thread-pool.executors[3].core-pool-size = 2 +spring.dynamic.thread-pool.executors[3].maximum-pool-size = 50 +spring.dynamic.thread-pool.executors[3].queue-capacity = 1024 +spring.dynamic.thread-pool.executors[3].blocking-queue = ResizableCapacityLinkedBlockingQueue +spring.dynamic.thread-pool.executors[3].execute-time-out = 800 +spring.dynamic.thread-pool.executors[3].rejected-handler = AbortPolicy +spring.dynamic.thread-pool.executors[3].keep-alive-time = 6691 +spring.dynamic.thread-pool.executors[3].allow-core-thread-time-out = true +spring.dynamic.thread-pool.executors[3].alarm = true +spring.dynamic.thread-pool.executors[3].active-alarm = 80 +spring.dynamic.thread-pool.executors[3].capacity-alarm = 80 +spring.dynamic.thread-pool.executors[3].notify.interval = 8 +spring.dynamic.thread-pool.executors[3].notify.receives = hippo4j diff --git a/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config.properties b/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config.properties index 2156078e..747fef07 100644 --- a/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config.properties +++ b/examples/threadpool-example/config/config-apollo/src/main/resources/apollo-config.properties @@ -48,22 +48,4 @@ spring.dynamic.thread-pool.executors[1].alarm=true spring.dynamic.thread-pool.executors[1].active-alarm=80 spring.dynamic.thread-pool.executors[1].capacity-alarm=80 spring.dynamic.thread-pool.executors[1].notify.interval=8 -spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma - - -# For hippo4j-agent mode (Optional) -spring.dynamic.thread-pool.executors[2].thread-pool-id = cn.hippo4j.example.core.config.DynamicThreadPoolConfig#FIELD1 -spring.dynamic.thread-pool.executors[2].thread-name-prefix = DynamicThreadPoolConfig#FIELD1 -spring.dynamic.thread-pool.executors[2].core-pool-size = 2 -spring.dynamic.thread-pool.executors[2].maximum-pool-size = 52 -spring.dynamic.thread-pool.executors[2].queue-capacity = 1024 -spring.dynamic.thread-pool.executors[2].blocking-queue = ResizableCapacityLinkedBlockingQueue -spring.dynamic.thread-pool.executors[2].execute-time-out = 800 -spring.dynamic.thread-pool.executors[2].rejected-handler = AbortPolicy -spring.dynamic.thread-pool.executors[2].keep-alive-time = 6691 -spring.dynamic.thread-pool.executors[2].allow-core-thread-time-out = true -spring.dynamic.thread-pool.executors[2].alarm = true -spring.dynamic.thread-pool.executors[2].active-alarm = 80 -spring.dynamic.thread-pool.executors[2].capacity-alarm = 80 -spring.dynamic.thread-pool.executors[2].notify.interval = 8 -spring.dynamic.thread-pool.executors[2].notify.receives = nobodyiam +spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma \ No newline at end of file From e34054ac00493ff8c7946e353ea310724ce9b8d5 Mon Sep 17 00:00:00 2001 From: Xin Chen <37373516+DDreame@users.noreply.github.com> Date: Wed, 17 May 2023 23:52:00 +0800 Subject: [PATCH 17/58] optimize: fix StyleCheck errors for hippo4j-threadpool-coore (#1294) * optimize: fix StyleCheck errors for hippo4j-threadpool-coore * optimize: fix StyleCheck errors for hippo4j-threadpool-coore --- checkstyle/hippo4j_checkstyle_suppression.xml | 1 + .../cn/hippo4j/core/extension/annotation/Realization.java | 3 +++ .../main/java/cn/hippo4j/core/extension/reducer/None.java | 4 ++++ .../main/java/cn/hippo4j/core/extension/reducer/Reducer.java | 5 +++++ .../java/cn/hippo4j/core/extension/reducer/Reducers.java | 3 +++ .../core/extension/support/ExtensionAutoConfiguration.java | 3 +++ .../cn/hippo4j/core/extension/support/ExtensionRegistry.java | 2 +- .../hippo4j/core/extension/support/IExtensionRegistry.java | 3 +++ .../java/cn/hippo4j/core/extension/support/ReduceType.java | 3 +++ 9 files changed, 26 insertions(+), 1 deletion(-) diff --git a/checkstyle/hippo4j_checkstyle_suppression.xml b/checkstyle/hippo4j_checkstyle_suppression.xml index 6d6baded..1a328a45 100644 --- a/checkstyle/hippo4j_checkstyle_suppression.xml +++ b/checkstyle/hippo4j_checkstyle_suppression.xml @@ -32,4 +32,5 @@ + diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java index b67a58ca..90c35e60 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/annotation/Realization.java @@ -25,6 +25,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * realization + */ @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java index db2c1fcc..9c4ea642 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/None.java @@ -22,6 +22,10 @@ import cn.hippo4j.core.extension.support.ReduceType; import java.util.List; import java.util.stream.Collectors; +/** + * None extends + * @param + */ public class None extends Reducer> { @Override diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java index 1fc2c2d3..111cb195 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducer.java @@ -26,6 +26,11 @@ import lombok.Setter; import java.util.List; +/** + * reducer + * @param + * @param + */ public abstract class Reducer { @Getter diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java index f2937205..83be76ec 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/reducer/Reducers.java @@ -23,6 +23,9 @@ import java.util.List; import java.util.Objects; import java.util.function.Predicate; +/** + * reducers + */ @SuppressWarnings("all") public class Reducers { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java index 67975b85..ea924ace 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.extension.config.ExtensionRegisterBootstrap; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +/** + * extension auto configuration + */ @Configuration public class ExtensionAutoConfiguration { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java index 33178c5a..c2406bde 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionRegistry.java @@ -34,7 +34,7 @@ import java.util.concurrent.ConcurrentHashMap; * Extension registry */ @Slf4j -public class ExtensionRegistry implements IExtensionRegistry { +public final class ExtensionRegistry implements IExtensionRegistry { private final Map, List> registry = new ConcurrentHashMap<>(); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java index 9f3b5ae9..44a1e479 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/IExtensionRegistry.java @@ -21,6 +21,9 @@ import cn.hippo4j.core.extension.IExtension; import java.util.List; +/** + * extension registry interface + */ public interface IExtensionRegistry { void register(IExtension realization); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java index f2ab125e..48bd65a7 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ReduceType.java @@ -17,6 +17,9 @@ package cn.hippo4j.core.extension.support; +/** + * reduce type + */ public enum ReduceType { NONE, From 846a366821828c5414d2058f6bbdff5263c47d82 Mon Sep 17 00:00:00 2001 From: magestack Date: Thu, 18 May 2023 13:06:59 +0800 Subject: [PATCH 18/58] Update user company (#1298) * Update user company * Update user company --- docs/i18n/zh/docusaurus-plugin-content-pages/users.md | 8 ++++++-- docs/src/pages/users.md | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md index 93489091..f667e7e7 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md +++ b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md @@ -5,12 +5,12 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 33+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 37+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) - [北京智合联创科技有限公司](http://www.zhlc.com.cn) -- [神州数码](http://www.digitalchina.com) +- [神州数码(北京)](http://www.digitalchina.com) - [PayerMax](https://www.payermax.com/) - [轻松到家](http://www.uyess.com/index.html) - [某商业银行股份有限公司](https://github.com/opengoofy/hippo4j/issues/13) @@ -40,6 +40,10 @@ title: 采用公司 - [新华智云科技有限公司](https://www.xinhuazhiyun.com) - [银丰新融](https://www.ist.com.cn) - [深圳市帮客帮科技有限公司](https://www.bangkebang.com) +- [重庆威爱云科技有限公司](https://51vive.com) +- [网易有道信息技术(北京)有限公司](https://www.youdao.com) +- [神州数码(西安)](https://www.digitalchina.com) +- [广联达科技股份有限公司](https://www.glodon.com) ## 登记 diff --git a/docs/src/pages/users.md b/docs/src/pages/users.md index 93489091..f667e7e7 100644 --- a/docs/src/pages/users.md +++ b/docs/src/pages/users.md @@ -5,12 +5,12 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 33+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 37+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) - [北京智合联创科技有限公司](http://www.zhlc.com.cn) -- [神州数码](http://www.digitalchina.com) +- [神州数码(北京)](http://www.digitalchina.com) - [PayerMax](https://www.payermax.com/) - [轻松到家](http://www.uyess.com/index.html) - [某商业银行股份有限公司](https://github.com/opengoofy/hippo4j/issues/13) @@ -40,6 +40,10 @@ title: 采用公司 - [新华智云科技有限公司](https://www.xinhuazhiyun.com) - [银丰新融](https://www.ist.com.cn) - [深圳市帮客帮科技有限公司](https://www.bangkebang.com) +- [重庆威爱云科技有限公司](https://51vive.com) +- [网易有道信息技术(北京)有限公司](https://www.youdao.com) +- [神州数码(西安)](https://www.digitalchina.com) +- [广联达科技股份有限公司](https://www.glodon.com) ## 登记 From 7cb33878228a214b67afe9203b5f9246d764f399 Mon Sep 17 00:00:00 2001 From: Mryanhehe <47975600+Mryanhehe@users.noreply.github.com> Date: Fri, 19 May 2023 17:16:46 +0800 Subject: [PATCH 19/58] update property file about zookeeper example (#1302) Co-authored-by: Yixuan yan --- .../src/main/resources/zookeeper-demo.properties | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/threadpool-example/config/config-zookeeper/src/main/resources/zookeeper-demo.properties b/examples/threadpool-example/config/config-zookeeper/src/main/resources/zookeeper-demo.properties index 20e8cc0b..be6976db 100644 --- a/examples/threadpool-example/config/config-zookeeper/src/main/resources/zookeeper-demo.properties +++ b/examples/threadpool-example/config/config-zookeeper/src/main/resources/zookeeper-demo.properties @@ -12,14 +12,14 @@ spring.dynamic.thread-pool.executors[0].core-pool-size=2 spring.dynamic.thread-pool.executors[0].execute-time-out=1000 spring.dynamic.thread-pool.executors[0].keep-alive-time=6691 spring.dynamic.thread-pool.executors[0].maximum-pool-size=4 -spring.dynamic.thread-pool.executors[0].notify.active-alarm=80 -spring.dynamic.thread-pool.executors[0].notify.capacity-alarm=80 +spring.dynamic.thread-pool.executors[0].active-alarm=80 +spring.dynamic.thread-pool.executors[0].capacity-alarm=80 spring.dynamic.thread-pool.executors[0].notify.interval=8 -spring.dynamic.thread-pool.executors[0].notify.is-alarm=true +spring.dynamic.thread-pool.executors[0].alarm=true spring.dynamic.thread-pool.executors[0].notify.receives.DING=177****6993 spring.dynamic.thread-pool.executors[0].queue-capacity=100 spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy -spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume +spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true spring.dynamic.thread-pool.executors[1].blocking-queue=LinkedBlockingQueue @@ -27,10 +27,10 @@ spring.dynamic.thread-pool.executors[1].core-pool-size=1 spring.dynamic.thread-pool.executors[1].execute-time-out=1000 spring.dynamic.thread-pool.executors[1].keep-alive-time=6691 spring.dynamic.thread-pool.executors[1].maximum-pool-size=1 -spring.dynamic.thread-pool.executors[1].notify.active-alarm=80 -spring.dynamic.thread-pool.executors[1].notify.capacity-alarm=80 +spring.dynamic.thread-pool.executors[1].active-alarm=80 +spring.dynamic.thread-pool.executors[1].capacity-alarm=80 spring.dynamic.thread-pool.executors[1].notify.interval=8 -spring.dynamic.thread-pool.executors[1].notify.is-alarm=true +spring.dynamic.thread-pool.executors[1].alarm=true spring.dynamic.thread-pool.executors[1].notify.receives.DING=177****6993 spring.dynamic.thread-pool.executors[1].queue-capacity=1 spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy From 06c6c06768c214ab06ae104bf1e70150fab16404 Mon Sep 17 00:00:00 2001 From: magestack Date: Fri, 19 May 2023 20:53:57 +0800 Subject: [PATCH 20/58] Abstract infrastructure modules and refactor existing modules (#1305) --- .../AgentThreadPoolExecutorHolder.java | 1 - .../AgentThreadPoolInstanceRegistry.java | 1 - .../EventPublishingFinishedInterceptor.java | 7 +- .../EventPublishingStartedInterceptor.java | 6 +- .../spring-plugin-common/pom.xml | 7 + ...tDynamicThreadPoolChangeHandlerSpring.java | 7 +- ...IDynamicThreadPoolChangeHandlerSpring.java | 27 - docs/deploy.sh | 1 - docs/package-lock.json | 21313 ++++++++++++++++ .../TaskTimeRecordPluginBenchmarkTest.java | 6 +- .../common/api/IExecutorProperties.java | 2 +- .../ThreadFactoryBuilder.java | 4 +- .../support/BlockingQueueTypeEnum.java | 1 - .../support/NotSupportedException.java | 37 - .../design}/AbstractSubjectCenter.java | 2 +- .../builder => extension/design}/Builder.java | 2 +- .../design}/Observer.java | 2 +- .../design}/ObserverMessage.java | 7 +- .../common/{ => extension}/enums/DelEnum.java | 2 +- .../{ => extension}/enums/EnableEnum.java | 2 +- .../{ => extension}/enums/VerifyEnum.java | 2 +- .../enums/WebContainerEnum.java | 2 +- .../{ => extension}/function/Matcher.java | 2 +- .../function/NoArgsConsumer.java | 2 +- .../common/{web/base => model}/Result.java | 2 +- .../executor}/ExecutorNotifyProperties.java | 2 +- .../executor}/ExecutorProperties.java | 2 +- .../common/monitor/AbstractMessage.java | 6 +- .../cn/hippo4j/common/toolkit/ArrayUtil.java | 2 +- .../cn/hippo4j/common/toolkit/BeanUtil.java | 7 +- .../hippo4j/common/toolkit/ConditionUtil.java | 2 +- .../hippo4j/common/toolkit/ReflectUtil.java | 19 +- .../hippo4j/common/toolkit/http/HttpUtil.java | 5 +- .../common/executor/ExecutorFactoryTest.java | 1 - .../common/function/MatcherFunctionTest.java | 1 + .../common/function/NoArgsConsumerTest.java | 1 + .../hippo4j/common/toolkit/ArrayUtilTest.java | 2 +- .../common/toolkit/ConditionUtilTest.java | 2 +- .../cn/hippo4j/common/web/ResultsTest.java | 21 - kernel/dynamic/api/pom.xml | 21 + .../api/ThreadPoolDynamicRefresh.java | 19 +- kernel/dynamic/core/pom.xml | 13 + kernel/dynamic/mode/config/pom.xml | 13 + kernel/dynamic/mode/pom.xml | 19 + kernel/dynamic/mode/server/pom.xml | 13 + kernel/dynamic/pom.xml | 7 + starters/threadpool/config/pom.xml | 5 + .../config/BootstrapConfigProperties.java | 2 +- .../DynamicThreadPoolAutoConfiguration.java | 2 +- .../starter/config/WebExecutorProperties.java | 2 +- .../monitor/ThreadPoolMonitorExecutor.java | 2 +- .../notify/ConfigModeNotifyConfigBuilder.java | 4 +- ...bstractConfigThreadPoolDynamicRefresh.java | 10 +- .../refresher/ApolloRefresherHandler.java | 2 +- .../refresher/ConsulRefresherHandler.java | 2 +- .../refresher/EtcdRefresherHandler.java | 2 +- .../refresher/NacosCloudRefresherHandler.java | 2 +- .../refresher/NacosRefresherHandler.java | 2 +- .../refresher/PolarisRefresherHandler.java | 2 +- .../refresher/ZookeeperRefresherHandler.java | 2 +- .../DynamicThreadPoolRefreshListener.java | 2 +- .../event/PlatformsRefreshListener.java | 2 +- .../refresher/event/RefreshListener.java | 2 +- .../DynamicThreadPoolConfigService.java | 2 +- .../DynamicThreadPoolPostProcessor.java | 4 +- .../support/GlobalCoreThreadPoolManage.java | 2 +- starters/threadpool/server/pom.xml | 5 + .../DynamicThreadPoolAutoConfiguration.java | 4 +- .../ThreadPoolAdapterController.java | 7 +- .../controller/WebThreadPoolController.java | 12 +- .../WebThreadPoolRunStateController.java | 9 +- .../springboot/starter/core/ClientWorker.java | 6 +- .../starter/core/DiscoveryClient.java | 16 +- .../DynamicThreadPoolSubscribeConfig.java | 2 +- .../core/ServerThreadPoolDynamicRefresh.java | 4 +- .../core/ThreadPoolAdapterRegister.java | 2 +- .../monitor/ReportingEventExecutor.java | 2 +- .../notify/ServerModeNotifyConfigBuilder.java | 2 +- .../starter/remote/AbstractHealthCheck.java | 2 +- .../springboot/starter/remote/HttpAgent.java | 2 +- .../remote/HttpScheduledHealthCheck.java | 2 +- .../starter/remote/ServerHttpAgent.java | 4 +- .../starter/security/SecurityProxy.java | 2 +- .../DynamicThreadPoolConfigService.java | 9 +- .../DynamicThreadPoolPostProcessor.java | 7 +- ...ThreadPoolPluginRegisterPostProcessor.java | 12 +- .../hystrix/ThreadPoolAdapterScheduler.java | 2 +- .../web/AbstractWebThreadPoolService.java | 2 +- .../web/IWebThreadPoolHandlerSupport.java | 2 +- .../web/WebThreadPoolHandlerChoose.java | 3 +- .../adapter/web/WebThreadPoolService.java | 2 +- .../JettyWebThreadPoolHandlerSupport.java | 2 +- .../TomcatWebThreadPoolHandlerSupport.java | 2 +- .../UndertowWebThreadPoolHandlerSupport.java | 2 +- .../executor/DynamicThreadPoolExecutor.java | 12 +- .../executor/DynamicThreadPoolWrapper.java | 2 +- .../ExtensibleThreadPoolExecutor.java | 14 +- .../DynamicThreadPoolBannerHandler.java | 2 +- .../plugin/ExecuteAwarePlugin.java | 2 +- .../{ => executor}/plugin/PluginRuntime.java | 2 +- .../plugin/RejectedAwarePlugin.java | 2 +- .../plugin/ShutdownAwarePlugin.java | 2 +- .../plugin/TaskAwarePlugin.java | 2 +- .../plugin/ThreadPoolPlugin.java | 8 +- .../plugin/impl/AbstractTaskTimerPlugin.java | 4 +- .../plugin/impl/TaskDecoratorPlugin.java | 6 +- .../impl/TaskRejectCountRecordPlugin.java | 6 +- .../impl/TaskRejectNotifyAlarmPlugin.java | 4 +- .../plugin/impl/TaskTimeRecordPlugin.java | 4 +- .../impl/TaskTimeoutNotifyAlarmPlugin.java | 4 +- .../ThreadPoolExecutorShutdownPlugin.java | 6 +- .../DefaultGlobalThreadPoolPluginManager.java | 4 +- .../DefaultThreadPoolPluginManager.java | 12 +- .../DefaultThreadPoolPluginRegistrar.java | 14 +- .../manager/EmptyThreadPoolPluginManager.java | 12 +- .../GlobalThreadPoolPluginManager.java | 4 +- .../manager/ThreadPoolPluginManager.java | 16 +- .../manager/ThreadPoolPluginRegistrar.java | 4 +- .../manager/ThreadPoolPluginSupport.java | 12 +- ...ommonDynamicThreadPoolProviderFactory.java | 5 +- .../proxy/RejectedProxyInvocationHandler.java | 2 +- .../proxy/RejectedProxyUtil.java | 2 +- .../AbstractBuildThreadPoolTemplate.java | 2 +- .../AbstractDynamicExecutorSupport.java | 2 +- .../executor/support/ThreadPoolBuilder.java | 2 +- .../support/ExtensionAutoConfiguration.java | 2 +- .../cn/hippo4j/core/toolkit/FileUtil.java | 3 +- .../main/resources/META-INF/spring.factories | 0 .../ExtensibleThreadPoolExecutorTest.java | 12 +- .../DynamicThreadPoolBannerHandlerTest.java | 2 +- .../plugin/PluginRuntimeTest.java | 3 +- .../plugin/ThreadPoolPluginTest.java | 5 +- .../plugin/impl/TaskDecoratorPluginTest.java | 9 +- .../impl/TaskRejectCountRecordPluginTest.java | 5 +- .../impl/TaskRejectNotifyAlarmPluginTest.java | 5 +- .../plugin/impl/TaskTimeRecordPluginTest.java | 4 +- .../TaskTimeoutNotifyAlarmPluginTest.java | 5 +- .../ThreadPoolExecutorShutdownPluginTest.java | 7 +- ...aultGlobalThreadPoolPluginManagerTest.java | 5 +- .../DefaultThreadPoolPluginManagerTest.java | 15 +- .../DefaultThreadPoolPluginRegistrarTest.java | 16 +- .../EmptyThreadPoolPluginManagerTest.java | 8 +- .../manager/ThreadPoolPluginSupportTest.java | 15 +- .../RejectedProxyInvocationHandlerTest.java | 3 +- .../rpc/client/NettyClientConnection.java | 3 +- .../rpc/discovery/DefaultInstance.java | 3 +- .../hippo4j/rpc/handler/HandlerManager.java | 3 +- .../rpc/handler/NettyClientTakeHandler.java | 3 +- .../rpc/support/NettyClientSupport.java | 3 +- .../hippo4j/rpc/support/NettyProxyCenter.java | 5 +- .../rpc/discovery/DefaultInstanceTest.java | 3 +- .../handler/NettyClientPoolHandlerTest.java | 3 +- .../rpc/model/DefaultResponseTest.java | 5 +- .../rpc/support/NettyProxyCenterTest.java | 3 +- threadpool/server/auth/pom.xml | 5 + .../auth/filter/JWTAuthenticationFilter.java | 2 +- .../auth/filter/JWTAuthorizationFilter.java | 6 +- .../auth/service/impl/UserServiceImpl.java | 2 +- threadpool/server/common/pom.xml | 35 + .../hippo4j/server/common}/base/Results.java | 9 +- .../base}/exception/AbstractException.java | 2 +- .../common/base}/exception/ErrorCode.java | 2 +- .../common/base}/exception/ErrorCodeEnum.java | 2 +- .../base}/exception/IllegalException.java | 2 +- .../base}/exception/ServiceException.java | 2 +- .../server/common}/base/ResultsTest.java | 9 +- .../config/config/MyMetaObjectHandler.java | 2 +- .../config/controller/ConfigController.java | 4 +- .../config/controller/MonitorController.java | 4 +- .../ThreadPoolAdapterController.java | 4 +- .../config/service/ConfigCacheService.java | 6 +- .../config/service/LongPollingService.java | 2 +- .../service/ThreadPoolAdapterService.java | 8 +- .../config/service/biz/HisRunDataService.java | 2 +- ...stractConfigModificationVerifyService.java | 2 +- .../service/biz/impl/ConfigServiceImpl.java | 4 +- .../biz/impl/HisRunDataServiceImpl.java | 4 +- .../service/biz/impl/ItemServiceImpl.java | 2 +- .../service/biz/impl/NotifyServiceImpl.java | 4 +- .../service/biz/impl/TenantServiceImpl.java | 2 +- .../biz/impl/ThreadPoolServiceImpl.java | 2 +- .../config/GlobalExceptionHandler.java | 8 +- .../controller/ClientCloseHookController.java | 4 +- .../controller/ConfigVerifyController.java | 4 +- .../controller/DashboardController.java | 6 +- .../controller/HealthCheckController.java | 4 +- .../console/controller/ItemController.java | 4 +- .../controller/LogRecordController.java | 4 +- .../console/controller/NotifyController.java | 4 +- .../console/controller/TenantController.java | 4 +- .../ThreadPoolAdapterController.java | 4 +- .../controller/ThreadPoolController.java | 6 +- .../console/controller/UserController.java | 4 +- .../service/impl/DashboardServiceImpl.java | 2 +- threadpool/server/discovery/pom.xml | 5 + .../controller/ApplicationController.java | 6 +- .../discovery/core/BaseInstanceRegistry.java | 4 +- threadpool/server/pom.xml | 1 + 198 files changed, 21863 insertions(+), 482 deletions(-) delete mode 100644 agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java create mode 100644 docs/package-lock.json rename infra/common/src/main/java/cn/hippo4j/common/{design/builder => executor}/ThreadFactoryBuilder.java (97%) delete mode 100644 infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java rename infra/common/src/main/java/cn/hippo4j/common/{design/observer => extension/design}/AbstractSubjectCenter.java (98%) rename infra/common/src/main/java/cn/hippo4j/common/{design/builder => extension/design}/Builder.java (95%) rename infra/common/src/main/java/cn/hippo4j/common/{design/observer => extension/design}/Observer.java (95%) rename infra/common/src/main/java/cn/hippo4j/common/{design/observer => extension/design}/ObserverMessage.java (86%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/enums/DelEnum.java (96%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/enums/EnableEnum.java (97%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/enums/VerifyEnum.java (97%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/enums/WebContainerEnum.java (96%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/function/Matcher.java (95%) rename infra/common/src/main/java/cn/hippo4j/common/{ => extension}/function/NoArgsConsumer.java (95%) rename infra/common/src/main/java/cn/hippo4j/common/{web/base => model}/Result.java (97%) rename infra/common/src/main/java/cn/hippo4j/common/{config => model/executor}/ExecutorNotifyProperties.java (96%) rename infra/common/src/main/java/cn/hippo4j/common/{config => model/executor}/ExecutorProperties.java (98%) delete mode 100644 infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java create mode 100644 kernel/dynamic/api/pom.xml rename {infra/common/src/main/java/cn/hippo4j/common => kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic}/api/ThreadPoolDynamicRefresh.java (72%) create mode 100644 kernel/dynamic/core/pom.xml create mode 100644 kernel/dynamic/mode/config/pom.xml create mode 100644 kernel/dynamic/mode/pom.xml create mode 100644 kernel/dynamic/mode/server/pom.xml rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/handler/DynamicThreadPoolBannerHandler.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/ExecuteAwarePlugin.java (97%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/PluginRuntime.java (97%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/RejectedAwarePlugin.java (96%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/ShutdownAwarePlugin.java (97%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/TaskAwarePlugin.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/ThreadPoolPlugin.java (89%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/AbstractTaskTimerPlugin.java (96%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskDecoratorPlugin.java (94%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskRejectCountRecordPlugin.java (92%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskRejectNotifyAlarmPlugin.java (95%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskTimeRecordPlugin.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java (97%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/impl/ThreadPoolExecutorShutdownPlugin.java (96%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultGlobalThreadPoolPluginManager.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultThreadPoolPluginManager.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultThreadPoolPluginRegistrar.java (81%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/EmptyThreadPoolPluginManager.java (93%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/GlobalThreadPoolPluginManager.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/ThreadPoolPluginManager.java (94%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/ThreadPoolPluginRegistrar.java (92%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/plugin/manager/ThreadPoolPluginSupport.java (94%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/provider/CommonDynamicThreadPoolProviderFactory.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/proxy/RejectedProxyInvocationHandler.java (98%) rename threadpool/core/src/main/java/cn/hippo4j/core/{ => executor}/proxy/RejectedProxyUtil.java (97%) rename {infra/common => threadpool/core}/src/main/resources/META-INF/spring.factories (100%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/handler/DynamicThreadPoolBannerHandlerTest.java (96%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/PluginRuntimeTest.java (93%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/ThreadPoolPluginTest.java (94%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskDecoratorPluginTest.java (92%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskRejectCountRecordPluginTest.java (93%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskRejectNotifyAlarmPluginTest.java (94%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskTimeRecordPluginTest.java (96%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java (94%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java (92%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java (98%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultThreadPoolPluginManagerTest.java (95%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java (77%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/manager/EmptyThreadPoolPluginManagerTest.java (93%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/plugin/manager/ThreadPoolPluginSupportTest.java (93%) rename threadpool/core/src/test/java/cn/hippo4j/core/{ => executor}/proxy/RejectedProxyInvocationHandlerTest.java (96%) create mode 100644 threadpool/server/common/pom.xml rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common}/base/Results.java (89%) rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common/base}/exception/AbstractException.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common/base}/exception/ErrorCode.java (95%) rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common/base}/exception/ErrorCodeEnum.java (97%) rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common/base}/exception/IllegalException.java (96%) rename {infra/common/src/main/java/cn/hippo4j/common/web => threadpool/server/common/src/main/java/cn/hippo4j/server/common/base}/exception/ServiceException.java (97%) rename {infra/common/src/test/java/cn/hippo4j/common/web => threadpool/server/common/src/test/java/cn/hippo4j/server/common}/base/ResultsTest.java (91%) diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java b/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java index 42df259e..96478a60 100644 --- a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java +++ b/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java @@ -19,7 +19,6 @@ package cn.hippo4j.agent.core.registry; import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; -import cn.hippo4j.common.config.ExecutorProperties; import lombok.Data; import java.util.Properties; diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java b/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java index 3b34210e..ddf3bb43 100644 --- a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java +++ b/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java @@ -19,7 +19,6 @@ package cn.hippo4j.agent.core.registry; import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; -import cn.hippo4j.common.config.ExecutorProperties; import java.util.Map; import java.util.Optional; diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java index 8e31a629..93b7d1ef 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java @@ -24,8 +24,8 @@ import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInt import cn.hippo4j.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import cn.hippo4j.agent.plugin.spring.boot.v1.DynamicThreadPoolChangeHandlerSpring1x; import cn.hippo4j.agent.plugin.spring.common.support.SpringPropertiesLoader; -import cn.hippo4j.agent.plugin.spring.common.support.IDynamicThreadPoolChangeHandlerSpring; import cn.hippo4j.agent.plugin.spring.common.support.SpringThreadPoolRegisterSupport; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ConfigurableApplicationContext; @@ -54,9 +54,8 @@ public class EventPublishingFinishedInterceptor implements InstanceMethodsAround return ret; } SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); - IDynamicThreadPoolChangeHandlerSpring handlerSpring1x = new DynamicThreadPoolChangeHandlerSpring1x(context); - handlerSpring1x.registerApolloConfigHandler(); - + ThreadPoolDynamicRefresh dynamicRefreshSpring1x = new DynamicThreadPoolChangeHandlerSpring1x(context); + dynamicRefreshSpring1x.registerListener(); return ret; } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java index d4362392..eabdf409 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java @@ -24,8 +24,8 @@ import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInt import cn.hippo4j.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import cn.hippo4j.agent.plugin.spring.boot.v2.DynamicThreadPoolChangeHandlerSpring2x; import cn.hippo4j.agent.plugin.spring.common.support.SpringPropertiesLoader; -import cn.hippo4j.agent.plugin.spring.common.support.IDynamicThreadPoolChangeHandlerSpring; import cn.hippo4j.agent.plugin.spring.common.support.SpringThreadPoolRegisterSupport; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import org.springframework.context.ConfigurableApplicationContext; import java.lang.reflect.Method; @@ -51,8 +51,8 @@ public class EventPublishingStartedInterceptor implements InstanceMethodsAroundI return ret; } SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); - IDynamicThreadPoolChangeHandlerSpring handler = new DynamicThreadPoolChangeHandlerSpring2x(context); - handler.registerApolloConfigHandler(); + ThreadPoolDynamicRefresh dynamicRefresh = new DynamicThreadPoolChangeHandlerSpring2x(context); + dynamicRefresh.registerListener(); return ret; } diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml index 16994cb4..bb61efbb 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml @@ -41,6 +41,13 @@ ${project.version} provided + + + cn.hippo4j + hippo4j-threadpool-dynamic-api + ${project.version} + provided + \ No newline at end of file diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java index 6766c194..5107da56 100644 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java +++ b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java @@ -21,7 +21,7 @@ import cn.hippo4j.agent.core.registry.AgentThreadPoolExecutorHolder; import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; import cn.hippo4j.agent.core.util.ThreadPoolPropertyKey; import cn.hippo4j.agent.plugin.spring.common.conf.SpringBootConfig; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; @@ -32,6 +32,7 @@ import cn.hippo4j.config.springboot.starter.parser.ConfigFileTypeEnum; import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.message.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.ConfigFile; import com.ctrip.framework.apollo.ConfigService; @@ -59,7 +60,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD /** * Abstract dynamic thread poo change handler spring */ -public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements IDynamicThreadPoolChangeHandlerSpring { +public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements ThreadPoolDynamicRefresh { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDynamicThreadPoolChangeHandlerSpring.class); @@ -69,7 +70,7 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements ID this.applicationContext = context; } - public void registerApolloConfigHandler() { + public void registerListener() { List apolloNamespaces = SpringBootConfig.Spring.Dynamic.Thread_Pool.Apollo.NAMESPACE; String namespace = apolloNamespaces.get(0); diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java b/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java deleted file mode 100644 index 75eeab4a..00000000 --- a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/IDynamicThreadPoolChangeHandlerSpring.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.agent.plugin.spring.common.support; - -/** - * IDynamic thread pool change handler spring - */ -public interface IDynamicThreadPoolChangeHandlerSpring { - - void registerApolloConfigHandler(); - -} diff --git a/docs/deploy.sh b/docs/deploy.sh index ec009c0a..0379f9fb 100644 --- a/docs/deploy.sh +++ b/docs/deploy.sh @@ -16,7 +16,6 @@ git add -A git commit -m "auto commit" # github -git branch -m master main GIT_SSH_COMMAND="ssh -i ~/.ssh/hippo4j" git remote add origin git@github.com:hippo4j/hippo4j.github.io.git GIT_SSH_COMMAND="ssh -i ~/.ssh/hippo4j" git push -u origin main -f diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 00000000..a2b19807 --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,21313 @@ +{ + "name": "website", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "website", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/preset-classic": "2.1.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.1.1", + "prism-react-renderer": "^1.3.3", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.1.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.8.2.tgz", + "integrity": "sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ==", + "dependencies": { + "@algolia/autocomplete-shared": "1.8.2" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.8.2.tgz", + "integrity": "sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA==", + "dependencies": { + "@algolia/autocomplete-shared": "1.8.2" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.8.2.tgz", + "integrity": "sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g==" + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.0.tgz", + "integrity": "sha512-myRSRZDIMYB8uCkO+lb40YKiYHi0fjpWRtJpR/dgkaiBlSD0plRyB6lLOh1XIfmMcSeBOqDE7y9m8xZMrXYfyQ==", + "dependencies": { + "@algolia/cache-common": "4.17.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.0.tgz", + "integrity": "sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ==" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.0.tgz", + "integrity": "sha512-PT32ciC/xI8z919d0oknWVu3kMfTlhQn3MKxDln3pkn+yA7F7xrxSALysxquv+MhFfNAcrtQ/oVvQVBAQSHtdw==", + "dependencies": { + "@algolia/cache-common": "4.17.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.0.tgz", + "integrity": "sha512-sSEHx9GA6m7wrlsSMNBGfyzlIfDT2fkz2u7jqfCCd6JEEwmxt8emGmxAU/0qBfbhRSuGvzojoLJlr83BSZAKjA==", + "dependencies": { + "@algolia/client-common": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.0.tgz", + "integrity": "sha512-84ooP8QA3mQ958hQ9wozk7hFUbAO+81CX1CjAuerxBqjKIInh1fOhXKTaku05O/GHBvcfExpPLIQuSuLYziBXQ==", + "dependencies": { + "@algolia/client-common": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.0.tgz", + "integrity": "sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ==", + "dependencies": { + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.0.tgz", + "integrity": "sha512-RMzN4dZLIta1YuwT7QC9o+OeGz2cU6eTOlGNE/6RcUBLOU3l9tkCOdln5dPE2jp8GZXPl2yk54b2nSs1+pAjqw==", + "dependencies": { + "@algolia/client-common": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.0.tgz", + "integrity": "sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA==", + "dependencies": { + "@algolia/client-common": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "node_modules/@algolia/logger-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.0.tgz", + "integrity": "sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw==" + }, + "node_modules/@algolia/logger-console": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.0.tgz", + "integrity": "sha512-zMPvugQV/gbXUvWBCzihw6m7oxIKp48w37QBIUu/XqQQfxhjoOE9xyfJr1KldUt5FrYOKZJVsJaEjTsu+bIgQg==", + "dependencies": { + "@algolia/logger-common": "4.17.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.0.tgz", + "integrity": "sha512-aSOX/smauyTkP21Pf52pJ1O2LmNFJ5iHRIzEeTh0mwBeADO4GdG94cAWDILFA9rNblq/nK3EDh3+UyHHjplZ1A==", + "dependencies": { + "@algolia/requester-common": "4.17.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.0.tgz", + "integrity": "sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg==" + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.0.tgz", + "integrity": "sha512-bpb/wDA1aC6WxxM8v7TsFspB7yBN3nqCGs2H1OADolQR/hiAIjAxusbuMxVbRFOdaUvAIqioIIkWvZdpYNIn8w==", + "dependencies": { + "@algolia/requester-common": "4.17.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.0.tgz", + "integrity": "sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA==", + "dependencies": { + "@algolia/cache-common": "4.17.0", + "@algolia/logger-common": "4.17.0", + "@algolia/requester-common": "4.17.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", + "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", + "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "dependencies": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", + "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.5", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", + "integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-typescript": "^7.21.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.5.tgz", + "integrity": "sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==", + "dependencies": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.5.tgz", + "integrity": "sha512-NaXVp3I8LdmJ54fn038KHgG7HmbIzZlKS2FkVf6mKcW5bYMJovkx4947joQyZk5yubxOZ+ddHSh79y39Aevufg==" + }, + "node_modules/@docsearch/react": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.5.tgz", + "integrity": "sha512-Zuxf4z5PZ9eIQkVCNu76v1H+KAztKItNn3rLzZa7kpBS+++TgNARITnZeUS7C1DKoAhJZFr6T/H+Lvc6h/iiYg==", + "dependencies": { + "@algolia/autocomplete-core": "1.8.2", + "@algolia/autocomplete-preset-algolia": "1.8.2", + "@docsearch/css": "3.3.5", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz", + "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==", + "dependencies": { + "@babel/core": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.18.6", + "@babel/preset-env": "^7.18.6", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@babel/runtime": "^7.18.6", + "@babel/runtime-corejs3": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@docusaurus/cssnano-preset": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.2.1", + "autoprefixer": "^10.4.7", + "babel-loader": "^8.2.5", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.0", + "cli-table3": "^0.6.2", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.23.3", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", + "cssnano": "^5.1.12", + "del": "^6.1.1", + "detect-port": "^1.3.0", + "escape-html": "^1.0.3", + "eta": "^1.12.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "html-minifier-terser": "^6.1.0", + "html-tags": "^3.2.0", + "html-webpack-plugin": "^5.5.0", + "import-fresh": "^3.3.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.6.1", + "postcss": "^8.4.14", + "postcss-loader": "^7.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.3", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.3", + "rtl-detect": "^1.0.4", + "semver": "^7.3.7", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.3", + "tslib": "^2.4.0", + "update-notifier": "^5.1.0", + "url-loader": "^4.1.1", + "wait-on": "^6.0.1", + "webpack": "^5.73.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-dev-server": "^4.9.3", + "webpack-merge": "^5.8.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz", + "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==", + "dependencies": { + "cssnano-preset-advanced": "^5.3.8", + "postcss": "^8.4.14", + "postcss-sort-media-queries": "^4.2.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/logger": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz", + "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz", + "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==", + "dependencies": { + "@babel/parser": "^7.18.8", + "@babel/traverse": "^7.18.8", + "@docusaurus/logger": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@mdx-js/mdx": "^1.6.22", + "escape-html": "^1.0.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "image-size": "^1.0.1", + "mdast-util-to-string": "^2.0.0", + "remark-emoji": "^2.2.0", + "stringify-object": "^3.3.0", + "tslib": "^2.4.0", + "unified": "^9.2.2", + "unist-util-visit": "^2.0.3", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz", + "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==", + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "2.1.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz", + "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "tslib": "^2.4.0", + "unist-util-visit": "^2.0.3", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz", + "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@types/react-router-config": "^5.0.6", + "combine-promises": "^1.1.0", + "fs-extra": "^10.1.0", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz", + "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "fs-extra": "^10.1.0", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz", + "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "fs-extra": "^10.1.0", + "react-json-view": "^1.21.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz", + "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz", + "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz", + "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "fs-extra": "^10.1.0", + "sitemap": "^7.1.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz", + "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/plugin-debug": "2.1.0", + "@docusaurus/plugin-google-analytics": "2.1.0", + "@docusaurus/plugin-google-gtag": "2.1.0", + "@docusaurus/plugin-sitemap": "2.1.0", + "@docusaurus/theme-classic": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-search-algolia": "2.1.0", + "@docusaurus/types": "2.1.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz", + "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==", + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-translations": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "infima": "0.2.0-alpha.42", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.14", + "prism-react-renderer": "^1.3.5", + "prismjs": "^1.28.0", + "react-router-dom": "^5.3.3", + "rtlcss": "^3.5.0", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz", + "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==", + "dependencies": { + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^1.3.5", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz", + "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==", + "dependencies": { + "@docsearch/react": "^3.1.1", + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-translations": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "algoliasearch": "^4.13.1", + "algoliasearch-helper": "^3.10.0", + "clsx": "^1.2.1", + "eta": "^1.12.3", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz", + "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==", + "dependencies": { + "fs-extra": "^10.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz", + "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.6.0", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0", + "webpack-merge": "^5.8.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz", + "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==", + "dependencies": { + "@docusaurus/logger": "2.1.0", + "@svgr/webpack": "^6.2.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "github-slugger": "^1.4.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.4.0", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz", + "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz", + "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==", + "dependencies": { + "@docusaurus/logger": "2.1.0", + "@docusaurus/utils": "2.1.0", + "joi": "^17.6.0", + "js-yaml": "^4.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", + "dependencies": { + "eval": "^0.1.8", + "p-map": "^4.0.0", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/mdast": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", + "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/node": { + "version": "20.1.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.7.tgz", + "integrity": "sha512-WCuw/o4GSwDGMoonES8rcvwsig77dGCMbZDrZr2x4ZZiNW4P/gcoZXe/0twgtobcTkmg9TuKflxYL/DuwDyJzg==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", + "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.7.tgz", + "integrity": "sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/algoliasearch": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.0.tgz", + "integrity": "sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.17.0", + "@algolia/cache-common": "4.17.0", + "@algolia/cache-in-memory": "4.17.0", + "@algolia/client-account": "4.17.0", + "@algolia/client-analytics": "4.17.0", + "@algolia/client-common": "4.17.0", + "@algolia/client-personalization": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/logger-common": "4.17.0", + "@algolia/logger-console": "4.17.0", + "@algolia/requester-browser-xhr": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/requester-node-http": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.13.0.tgz", + "integrity": "sha512-kV3c1jMQCvkARtGsSDvAwuht4PAMSsQILqPiH4WFiARoa3jXJ/r1TQoBWAjWyWF48rsNYCv7kzxgB4LTxrvvuw==", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@babel/core": "^7.11.6" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base16": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001487", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", + "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio-select/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combine-promises": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", + "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz", + "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", + "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", + "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", + "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", + "dependencies": { + "node-fetch": "^2.6.11" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "dependencies": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", + "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "dependencies": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.14", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "dependencies": { + "repeat-string": "^1.5.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.397", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", + "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", + "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.14.2.tgz", + "integrity": "sha512-wZmJAV7EFUG5W8XNXSazIdichnWEhGB1OWg4tnXWPj0CPNUcFdgorGNO6N9p6WBUgoUe4P0OziJYn1+6zxP2aQ==", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "dependencies": { + "fbjs": "^3.0.0" + } + }, + "node_modules/fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flux": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz", + "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==", + "dependencies": { + "fbemitter": "^3.0.0", + "fbjs": "^3.0.1" + }, + "peerDependencies": { + "react": "^15.0.2 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "dependencies": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dependencies": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", + "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.42", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.42.tgz", + "integrity": "sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dependencies": { + "unist-util-remove": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.0.tgz", + "integrity": "sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "jiti": "^1.18.2", + "klona": "^2.0.6", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "dependencies": { + "sort-css-media-queries": "2.1.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.16" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "peerDependencies": { + "react": ">=0.14.9" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", + "dependencies": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.1.tgz", + "integrity": "sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==" + }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-json-view": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", + "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", + "dependencies": { + "flux": "^4.0.1", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^8.3.2" + }, + "peerDependencies": { + "react": "^17.0.0 || ^16.3.0 || ^15.5.4", + "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" + } + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz", + "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", + "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "dependencies": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.3" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/remark-mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remark-mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtl-detect": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", + "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" + }, + "node_modules/rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dependencies": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + } + }, + "node_modules/rtlcss/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", + "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", + "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz", + "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", + "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==", + "deprecated": "Use String.prototype.trim() instead" + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/update-notifier/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.82.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", + "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.14.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz", + "integrity": "sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + }, + "dependencies": { + "@algolia/autocomplete-core": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.8.2.tgz", + "integrity": "sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ==", + "requires": { + "@algolia/autocomplete-shared": "1.8.2" + } + }, + "@algolia/autocomplete-preset-algolia": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.8.2.tgz", + "integrity": "sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA==", + "requires": { + "@algolia/autocomplete-shared": "1.8.2" + } + }, + "@algolia/autocomplete-shared": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.8.2.tgz", + "integrity": "sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g==" + }, + "@algolia/cache-browser-local-storage": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.0.tgz", + "integrity": "sha512-myRSRZDIMYB8uCkO+lb40YKiYHi0fjpWRtJpR/dgkaiBlSD0plRyB6lLOh1XIfmMcSeBOqDE7y9m8xZMrXYfyQ==", + "requires": { + "@algolia/cache-common": "4.17.0" + } + }, + "@algolia/cache-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.0.tgz", + "integrity": "sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ==" + }, + "@algolia/cache-in-memory": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.0.tgz", + "integrity": "sha512-PT32ciC/xI8z919d0oknWVu3kMfTlhQn3MKxDln3pkn+yA7F7xrxSALysxquv+MhFfNAcrtQ/oVvQVBAQSHtdw==", + "requires": { + "@algolia/cache-common": "4.17.0" + } + }, + "@algolia/client-account": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.0.tgz", + "integrity": "sha512-sSEHx9GA6m7wrlsSMNBGfyzlIfDT2fkz2u7jqfCCd6JEEwmxt8emGmxAU/0qBfbhRSuGvzojoLJlr83BSZAKjA==", + "requires": { + "@algolia/client-common": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "@algolia/client-analytics": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.0.tgz", + "integrity": "sha512-84ooP8QA3mQ958hQ9wozk7hFUbAO+81CX1CjAuerxBqjKIInh1fOhXKTaku05O/GHBvcfExpPLIQuSuLYziBXQ==", + "requires": { + "@algolia/client-common": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "@algolia/client-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.0.tgz", + "integrity": "sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ==", + "requires": { + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "@algolia/client-personalization": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.0.tgz", + "integrity": "sha512-RMzN4dZLIta1YuwT7QC9o+OeGz2cU6eTOlGNE/6RcUBLOU3l9tkCOdln5dPE2jp8GZXPl2yk54b2nSs1+pAjqw==", + "requires": { + "@algolia/client-common": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "@algolia/client-search": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.0.tgz", + "integrity": "sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA==", + "requires": { + "@algolia/client-common": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "@algolia/logger-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.0.tgz", + "integrity": "sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw==" + }, + "@algolia/logger-console": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.0.tgz", + "integrity": "sha512-zMPvugQV/gbXUvWBCzihw6m7oxIKp48w37QBIUu/XqQQfxhjoOE9xyfJr1KldUt5FrYOKZJVsJaEjTsu+bIgQg==", + "requires": { + "@algolia/logger-common": "4.17.0" + } + }, + "@algolia/requester-browser-xhr": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.0.tgz", + "integrity": "sha512-aSOX/smauyTkP21Pf52pJ1O2LmNFJ5iHRIzEeTh0mwBeADO4GdG94cAWDILFA9rNblq/nK3EDh3+UyHHjplZ1A==", + "requires": { + "@algolia/requester-common": "4.17.0" + } + }, + "@algolia/requester-common": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.0.tgz", + "integrity": "sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg==" + }, + "@algolia/requester-node-http": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.0.tgz", + "integrity": "sha512-bpb/wDA1aC6WxxM8v7TsFspB7yBN3nqCGs2H1OADolQR/hiAIjAxusbuMxVbRFOdaUvAIqioIIkWvZdpYNIn8w==", + "requires": { + "@algolia/requester-common": "4.17.0" + } + }, + "@algolia/transporter": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.0.tgz", + "integrity": "sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA==", + "requires": { + "@algolia/cache-common": "4.17.0", + "@algolia/logger-common": "4.17.0", + "@algolia/requester-common": "4.17.0" + } + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==" + }, + "@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "requires": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "requires": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==" + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "requires": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", + "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz", + "integrity": "sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/types": "^7.21.5" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "requires": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", + "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "requires": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.5", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + } + }, + "@babel/preset-typescript": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz", + "integrity": "sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==", + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-typescript": "^7.21.3" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/runtime-corejs3": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.5.tgz", + "integrity": "sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==", + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "requires": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" + }, + "@docsearch/css": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.5.tgz", + "integrity": "sha512-NaXVp3I8LdmJ54fn038KHgG7HmbIzZlKS2FkVf6mKcW5bYMJovkx4947joQyZk5yubxOZ+ddHSh79y39Aevufg==" + }, + "@docsearch/react": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.5.tgz", + "integrity": "sha512-Zuxf4z5PZ9eIQkVCNu76v1H+KAztKItNn3rLzZa7kpBS+++TgNARITnZeUS7C1DKoAhJZFr6T/H+Lvc6h/iiYg==", + "requires": { + "@algolia/autocomplete-core": "1.8.2", + "@algolia/autocomplete-preset-algolia": "1.8.2", + "@docsearch/css": "3.3.5", + "algoliasearch": "^4.0.0" + } + }, + "@docusaurus/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz", + "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==", + "requires": { + "@babel/core": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.18.6", + "@babel/preset-env": "^7.18.6", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@babel/runtime": "^7.18.6", + "@babel/runtime-corejs3": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@docusaurus/cssnano-preset": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.2.1", + "autoprefixer": "^10.4.7", + "babel-loader": "^8.2.5", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.0", + "cli-table3": "^0.6.2", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.23.3", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", + "cssnano": "^5.1.12", + "del": "^6.1.1", + "detect-port": "^1.3.0", + "escape-html": "^1.0.3", + "eta": "^1.12.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "html-minifier-terser": "^6.1.0", + "html-tags": "^3.2.0", + "html-webpack-plugin": "^5.5.0", + "import-fresh": "^3.3.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.6.1", + "postcss": "^8.4.14", + "postcss-loader": "^7.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.3", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.3", + "rtl-detect": "^1.0.4", + "semver": "^7.3.7", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.3", + "tslib": "^2.4.0", + "update-notifier": "^5.1.0", + "url-loader": "^4.1.1", + "wait-on": "^6.0.1", + "webpack": "^5.73.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-dev-server": "^4.9.3", + "webpack-merge": "^5.8.0", + "webpackbar": "^5.0.2" + } + }, + "@docusaurus/cssnano-preset": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz", + "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==", + "requires": { + "cssnano-preset-advanced": "^5.3.8", + "postcss": "^8.4.14", + "postcss-sort-media-queries": "^4.2.1", + "tslib": "^2.4.0" + } + }, + "@docusaurus/logger": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz", + "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==", + "requires": { + "chalk": "^4.1.2", + "tslib": "^2.4.0" + } + }, + "@docusaurus/mdx-loader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz", + "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==", + "requires": { + "@babel/parser": "^7.18.8", + "@babel/traverse": "^7.18.8", + "@docusaurus/logger": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@mdx-js/mdx": "^1.6.22", + "escape-html": "^1.0.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "image-size": "^1.0.1", + "mdast-util-to-string": "^2.0.0", + "remark-emoji": "^2.2.0", + "stringify-object": "^3.3.0", + "tslib": "^2.4.0", + "unified": "^9.2.2", + "unist-util-visit": "^2.0.3", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + } + }, + "@docusaurus/module-type-aliases": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz", + "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==", + "requires": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "2.1.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + } + }, + "@docusaurus/plugin-content-blog": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz", + "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "tslib": "^2.4.0", + "unist-util-visit": "^2.0.3", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-content-docs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz", + "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@types/react-router-config": "^5.0.6", + "combine-promises": "^1.1.0", + "fs-extra": "^10.1.0", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-content-pages": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz", + "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "fs-extra": "^10.1.0", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-debug": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz", + "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "fs-extra": "^10.1.0", + "react-json-view": "^1.21.3", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-google-analytics": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz", + "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-google-gtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz", + "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-sitemap": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz", + "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "fs-extra": "^10.1.0", + "sitemap": "^7.1.1", + "tslib": "^2.4.0" + } + }, + "@docusaurus/preset-classic": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz", + "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/plugin-debug": "2.1.0", + "@docusaurus/plugin-google-analytics": "2.1.0", + "@docusaurus/plugin-google-gtag": "2.1.0", + "@docusaurus/plugin-sitemap": "2.1.0", + "@docusaurus/theme-classic": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-search-algolia": "2.1.0", + "@docusaurus/types": "2.1.0" + } + }, + "@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, + "@docusaurus/theme-classic": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz", + "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==", + "requires": { + "@docusaurus/core": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-translations": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "infima": "0.2.0-alpha.42", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.14", + "prism-react-renderer": "^1.3.5", + "prismjs": "^1.28.0", + "react-router-dom": "^5.3.3", + "rtlcss": "^3.5.0", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-common": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz", + "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==", + "requires": { + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^1.3.5", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-search-algolia": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz", + "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==", + "requires": { + "@docsearch/react": "^3.1.1", + "@docusaurus/core": "2.1.0", + "@docusaurus/logger": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-translations": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "algoliasearch": "^4.13.1", + "algoliasearch-helper": "^3.10.0", + "clsx": "^1.2.1", + "eta": "^1.12.3", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-translations": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz", + "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==", + "requires": { + "fs-extra": "^10.1.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz", + "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.6.0", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0", + "webpack-merge": "^5.8.0" + } + }, + "@docusaurus/utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz", + "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==", + "requires": { + "@docusaurus/logger": "2.1.0", + "@svgr/webpack": "^6.2.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "github-slugger": "^1.4.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.4.0", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + } + }, + "@docusaurus/utils-common": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz", + "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@docusaurus/utils-validation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz", + "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==", + "requires": { + "@docusaurus/logger": "2.1.0", + "@docusaurus/utils": "2.1.0", + "joi": "^17.6.0", + "js-yaml": "^4.1.0", + "tslib": "^2.4.0" + } + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "requires": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "requires": {} + }, + "@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@slorber/static-site-generator-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", + "requires": { + "eval": "^0.1.8", + "p-map": "^4.0.0", + "webpack-sources": "^3.2.2" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "requires": {} + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "requires": {} + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "requires": {} + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "requires": {} + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "requires": {} + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "requires": {} + }, + "@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + } + }, + "@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "requires": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + } + } + }, + "@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + } + }, + "@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "requires": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + } + }, + "@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "requires": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, + "@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "requires": { + "@types/unist": "*" + } + }, + "@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/mdast": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", + "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "requires": { + "@types/unist": "*" + } + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/node": { + "version": "20.1.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.7.tgz", + "integrity": "sha512-WCuw/o4GSwDGMoonES8rcvwsig77dGCMbZDrZr2x4ZZiNW4P/gcoZXe/0twgtobcTkmg9TuKflxYL/DuwDyJzg==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", + "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "@types/react-router-config": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.7.tgz", + "integrity": "sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "algoliasearch": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.0.tgz", + "integrity": "sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA==", + "requires": { + "@algolia/cache-browser-local-storage": "4.17.0", + "@algolia/cache-common": "4.17.0", + "@algolia/cache-in-memory": "4.17.0", + "@algolia/client-account": "4.17.0", + "@algolia/client-analytics": "4.17.0", + "@algolia/client-common": "4.17.0", + "@algolia/client-personalization": "4.17.0", + "@algolia/client-search": "4.17.0", + "@algolia/logger-common": "4.17.0", + "@algolia/logger-console": "4.17.0", + "@algolia/requester-browser-xhr": "4.17.0", + "@algolia/requester-common": "4.17.0", + "@algolia/requester-node-http": "4.17.0", + "@algolia/transporter": "4.17.0" + } + }, + "algoliasearch-helper": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.13.0.tgz", + "integrity": "sha512-kV3c1jMQCvkARtGsSDvAwuht4PAMSsQILqPiH4WFiARoa3jXJ/r1TQoBWAjWyWF48rsNYCv7kzxgB4LTxrvvuw==", + "requires": { + "@algolia/events": "^4.0.1" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "requires": { + "string-width": "^4.1.0" + }, + "dependencies": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "requires": { + "follow-redirects": "^1.14.7" + } + }, + "babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "requires": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "requires": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + } + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base16": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "requires": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001487", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", + "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==" + }, + "ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "dependencies": { + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" + }, + "clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" + }, + "cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "combine-promises": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", + "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==" + }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "copy-text-to-clipboard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz", + "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==" + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "requires": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + } + } + }, + "core-js": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", + "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==" + }, + "core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "requires": { + "browserslist": "^4.21.5" + } + }, + "core-js-pure": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", + "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-fetch": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", + "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", + "requires": { + "node-fetch": "^2.6.11" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "requires": {} + }, + "css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + } + }, + "css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "requires": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "requires": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "requires": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-advanced": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", + "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "requires": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.14", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + } + }, + "cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "requires": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "requires": { + "repeat-string": "^1.5.4" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "requires": { + "address": "^1.0.1", + "debug": "4" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + } + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.397", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz", + "integrity": "sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", + "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "eta": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.14.2.tgz", + "integrity": "sha512-wZmJAV7EFUG5W8XNXSazIdichnWEhGB1OWg4tnXWPj0CPNUcFdgorGNO6N9p6WBUgoUe4P0OziJYn1+6zxP2aQ==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "requires": { + "@types/node": "*", + "require-like": ">= 0.1.1" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + } + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "requires": { + "fbjs": "^3.0.0" + } + }, + "fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "requires": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "requires": { + "xml-js": "^1.6.11" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flux": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz", + "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==", + "requires": { + "fbemitter": "^3.0.0", + "fbjs": "^3.0.1" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "requires": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "requires": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "requires": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + }, + "hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "requires": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "requires": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==" + }, + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" + }, + "html-webpack-plugin": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", + "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + }, + "image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "requires": { + "queue": "6.0.2" + } + }, + "immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infima": { + "version": "0.2.0-alpha.42", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.42.tgz", + "integrity": "sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + } + } + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" + }, + "joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==" + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, + "mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "requires": { + "unist-util-remove": "^2.0.0" + } + }, + "mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "dependencies": { + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "requires": {} + }, + "postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.0.tgz", + "integrity": "sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==", + "requires": { + "cosmiconfig": "^8.1.3", + "jiti": "^1.18.2", + "klona": "^2.0.6", + "semver": "^7.3.8" + }, + "dependencies": { + "cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + } + } + }, + "postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + } + }, + "postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "requires": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-idents": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-sort-media-queries": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "requires": { + "sort-css-media-queries": "2.1.0" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "requires": {} + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" + }, + "prism-react-renderer": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "requires": {} + }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", + "requires": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "react-fast-compare": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.1.tgz", + "integrity": "sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==" + }, + "react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "requires": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-json-view": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", + "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", + "requires": { + "flux": "^4.0.1", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^8.3.2" + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, + "react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-textarea-autosize": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz", + "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==", + "requires": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "requires": { + "minimatch": "^3.0.5" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + }, + "remark-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", + "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "requires": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.3" + } + }, + "remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" + }, + "remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "requires": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "requires": { + "mdast-squeeze-paragraphs": "^4.0.0" + } + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rtl-detect": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", + "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" + }, + "rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "requires": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "~1.33.0" + } + }, + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "requires": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "dependencies": { + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "sort-css-media-queries": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", + "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "std-env": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", + "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "requires": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "terser": { + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz", + "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", + "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==" + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + }, + "unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" + }, + "unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + }, + "unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + }, + "unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "requires": {} + }, + "use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "requires": {} + }, + "use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "requires": { + "use-isomorphic-layout-effect": "^1.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "requires": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "webpack": { + "version": "5.82.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", + "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.14.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-bundle-analyzer": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "requires": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz", + "integrity": "sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "requires": { + "string-width": "^5.0.1" + } + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "requires": { + "sax": "^1.2.4" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + } + } +} diff --git a/examples/threadpool-example/example-core/src/test/java/cn/hippo4j/example/core/TaskTimeRecordPluginBenchmarkTest.java b/examples/threadpool-example/example-core/src/test/java/cn/hippo4j/example/core/TaskTimeRecordPluginBenchmarkTest.java index 27631afa..e38b5136 100644 --- a/examples/threadpool-example/example-core/src/test/java/cn/hippo4j/example/core/TaskTimeRecordPluginBenchmarkTest.java +++ b/examples/threadpool-example/example-core/src/test/java/cn/hippo4j/example/core/TaskTimeRecordPluginBenchmarkTest.java @@ -18,8 +18,8 @@ package cn.hippo4j.example.core; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.impl.TaskTimeRecordPlugin; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.impl.TaskTimeRecordPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.SneakyThrows; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; @@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** - * benchmark test for {@link cn.hippo4j.core.plugin.impl.TaskTimeRecordPlugin} + * benchmark test for {@link TaskTimeRecordPlugin} */ @BenchmarkMode(Mode.All) @OutputTimeUnit(TimeUnit.MILLISECONDS) diff --git a/infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java b/infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java index 6fb60f45..a5420f4b 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java +++ b/infra/common/src/main/java/cn/hippo4j/common/api/IExecutorProperties.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.api; -import cn.hippo4j.common.config.ExecutorNotifyProperties; +import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; /** * Interface for thread pool configuration. diff --git a/infra/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadFactoryBuilder.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadFactoryBuilder.java index 10e93846..6da911ac 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/design/builder/ThreadFactoryBuilder.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadFactoryBuilder.java @@ -15,7 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.common.design.builder; +package cn.hippo4j.common.executor; + +import cn.hippo4j.common.extension.design.Builder; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java index 5928d2cc..c55e85f8 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java @@ -173,7 +173,6 @@ public enum BlockingQueueTypeEnum { * * @param the class of the objects in the BlockingQueue * @return a BlockingQueue view of the specified T - * @throws NotSupportedException */ abstract BlockingQueue of(); diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java deleted file mode 100644 index f3996a05..00000000 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/NotSupportedException.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.common.executor.support; - -import cn.hippo4j.common.web.exception.AbstractException; - -/** - * This exception is thrown when a context implementation does not support the operation being invoked. - */ -public class NotSupportedException extends AbstractException { - - /** - * Constructs a new not supported exception with the specified detail message and - * cause. - * - * @param message the detail message (which is saved for later retrieval - * by the {@link #getMessage()} method). - */ - public NotSupportedException(String message) { - super(message, null, null); - } -} diff --git a/infra/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java b/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java similarity index 98% rename from infra/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java index 125aa7c5..e87f9d72 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/design/observer/AbstractSubjectCenter.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.design.observer; +package cn.hippo4j.common.extension.design; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; diff --git a/infra/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java b/infra/common/src/main/java/cn/hippo4j/common/extension/design/Builder.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/design/Builder.java index 358a6ee1..2c0a30cf 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/design/builder/Builder.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/design/Builder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.design.builder; +package cn.hippo4j.common.extension.design; import java.io.Serializable; diff --git a/infra/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java b/infra/common/src/main/java/cn/hippo4j/common/extension/design/Observer.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/design/Observer.java index 08b99581..30d9297c 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/design/observer/Observer.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/design/Observer.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.design.observer; +package cn.hippo4j.common.extension.design; /** * Observer. diff --git a/infra/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java b/infra/common/src/main/java/cn/hippo4j/common/extension/design/ObserverMessage.java similarity index 86% rename from infra/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/design/ObserverMessage.java index 912b6b64..38759155 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/design/observer/ObserverMessage.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/design/ObserverMessage.java @@ -15,12 +15,17 @@ * limitations under the License. */ -package cn.hippo4j.common.design.observer; +package cn.hippo4j.common.extension.design; /** * Message notifying observer. */ public interface ObserverMessage { + /** + * Message method definition + * + * @return Different message formats + */ T message(); } diff --git a/infra/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/DelEnum.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/enums/DelEnum.java index 70267d32..763ced85 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/enums/DelEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/DelEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.enums; +package cn.hippo4j.common.extension.enums; /** * Del enum. diff --git a/infra/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/EnableEnum.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/enums/EnableEnum.java index 15e74c4f..624e1df5 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/enums/EnableEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/EnableEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.enums; +package cn.hippo4j.common.extension.enums; import java.util.Objects; diff --git a/infra/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/VerifyEnum.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/enums/VerifyEnum.java index feb78f25..b14b177f 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/enums/VerifyEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/VerifyEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.enums; +package cn.hippo4j.common.extension.enums; /** * Enumeration of thread pool audit status. diff --git a/infra/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/WebContainerEnum.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/enums/WebContainerEnum.java index cbdddb21..179dbccb 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/enums/WebContainerEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/enums/WebContainerEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.enums; +package cn.hippo4j.common.extension.enums; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/infra/common/src/main/java/cn/hippo4j/common/function/Matcher.java b/infra/common/src/main/java/cn/hippo4j/common/extension/function/Matcher.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/function/Matcher.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/function/Matcher.java index a6377d2d..4371aa4e 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/function/Matcher.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/function/Matcher.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.function; +package cn.hippo4j.common.extension.function; /** * Matcher. diff --git a/infra/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java b/infra/common/src/main/java/cn/hippo4j/common/extension/function/NoArgsConsumer.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java rename to infra/common/src/main/java/cn/hippo4j/common/extension/function/NoArgsConsumer.java index cc4adc7c..b6452d14 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/function/NoArgsConsumer.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/function/NoArgsConsumer.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.function; +package cn.hippo4j.common.extension.function; /** * No args consumer. diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/base/Result.java b/infra/common/src/main/java/cn/hippo4j/common/model/Result.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/web/base/Result.java rename to infra/common/src/main/java/cn/hippo4j/common/model/Result.java index 73237e14..878b1926 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/base/Result.java +++ b/infra/common/src/main/java/cn/hippo4j/common/model/Result.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.base; +package cn.hippo4j.common.model; import lombok.Data; import lombok.experimental.Accessors; diff --git a/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java b/infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorNotifyProperties.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java rename to infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorNotifyProperties.java index 647c6d9b..da3cb3c1 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorNotifyProperties.java +++ b/infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorNotifyProperties.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.config; +package cn.hippo4j.common.model.executor; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java b/infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorProperties.java similarity index 98% rename from infra/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java rename to infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorProperties.java index fb33a0dd..5aff08b8 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/config/ExecutorProperties.java +++ b/infra/common/src/main/java/cn/hippo4j/common/model/executor/ExecutorProperties.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.config; +package cn.hippo4j.common.model.executor; import cn.hippo4j.common.api.IExecutorProperties; import lombok.AllArgsConstructor; diff --git a/infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java b/infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java index a96e8df8..51f47037 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java +++ b/infra/common/src/main/java/cn/hippo4j/common/monitor/AbstractMessage.java @@ -30,17 +30,17 @@ import java.util.List; public abstract class AbstractMessage implements Message { /** - * groupKey: tenant + item + tpId + identify + * GroupKey: tenant + item + threadPoolId + identify */ private String groupKey; /** - * messageTypeEnum + * Message type enum */ private MessageTypeEnum messageType; /** - * message + * Message */ private List messages; } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java index 16a32e28..4290fe7b 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ArrayUtil.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.function.Matcher; +import cn.hippo4j.common.extension.function.Matcher; import java.lang.reflect.Array; diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java index 1de806a3..4b971a6a 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java @@ -17,7 +17,6 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.web.exception.IllegalException; import com.github.dozermapper.core.DozerBeanMapperBuilder; import com.github.dozermapper.core.Mapper; import lombok.AccessLevel; @@ -93,7 +92,7 @@ public class BeanUtil { T newInstance = clazz.newInstance(); return mapToBean(map, newInstance, toCamelCase); } catch (InstantiationException | IllegalAccessException e) { - throw new IllegalException("do not create instance for " + clazz.getName(), e); + throw new RuntimeException("do not create instance for " + clazz.getName(), e); } } @@ -139,7 +138,7 @@ public class BeanUtil { PropertyDescriptor descriptor = new PropertyDescriptor(propertiesName, o); return descriptor.getReadMethod(); } catch (IntrospectionException e) { - throw new IllegalException("not find getter for" + propertiesName + "in" + o.getName(), e); + throw new RuntimeException("not find getter for" + propertiesName + "in" + o.getName(), e); } } @@ -158,7 +157,7 @@ public class BeanUtil { PropertyDescriptor descriptor = new PropertyDescriptor(propertiesName, o); return descriptor.getWriteMethod(); } catch (IntrospectionException e) { - throw new IllegalException("not find setter for" + propertiesName + "in" + o.getName(), e); + throw new RuntimeException("not find setter for" + propertiesName + "in" + o.getName(), e); } } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java index c9d79fb1..7188acba 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ConditionUtil.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.function.NoArgsConsumer; +import cn.hippo4j.common.extension.function.NoArgsConsumer; /** * Condition util. diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java index 89181f01..25ed782c 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/ReflectUtil.java @@ -17,7 +17,6 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.web.exception.IllegalException; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -63,7 +62,7 @@ public class ReflectUtil { result = field.get(obj); } catch (IllegalAccessException e) { String exceptionMsg = String.format("IllegalAccess for %s.%s", field.getDeclaringClass(), field.getName()); - throw new IllegalException(exceptionMsg, e); + throw new RuntimeException(exceptionMsg, e); } return result; } @@ -117,7 +116,7 @@ public class ReflectUtil { return field.getName(); } - public static void setFieldValue(Object obj, String fieldName, Object value) throws IllegalException { + public static void setFieldValue(Object obj, String fieldName, Object value) throws RuntimeException { Assert.notNull(obj); Assert.notBlank(fieldName); final Field field = getField((obj instanceof Class) ? (Class) obj : obj.getClass(), fieldName); @@ -125,7 +124,7 @@ public class ReflectUtil { setFieldValue(obj, field, value); } - public static void setFieldValue(Object obj, Field field, Object value) throws IllegalException { + public static void setFieldValue(Object obj, Field field, Object value) throws RuntimeException { Assert.notNull(field, "Field in [" + obj + "] not exist !"); final Class fieldType = field.getType(); if (null != value) { @@ -142,7 +141,7 @@ public class ReflectUtil { try { field.set(obj instanceof Class ? null : obj, value); } catch (IllegalAccessException e) { - throw new IllegalException("IllegalAccess for " + obj + "." + field.getName(), e); + throw new RuntimeException("IllegalAccess for " + obj + "." + field.getName(), e); } } @@ -183,7 +182,7 @@ public class ReflectUtil { return clazz.getMethod(methodName, arguments); } } catch (NoSuchMethodException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } return null; } @@ -247,12 +246,12 @@ public class ReflectUtil { try { Method method = ReflectUtil.getMethodByName(obj.getClass(), methodName); if (method == null) { - throw new IllegalException(methodName + "method not exists"); + throw new RuntimeException(methodName + "method not exists"); } ReflectUtil.setAccessible(method); return (T) method.invoke(obj, arguments); } catch (IllegalAccessException | InvocationTargetException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } } @@ -269,7 +268,7 @@ public class ReflectUtil { try { return (T) method.invoke(obj, arguments); } catch (IllegalAccessException | InvocationTargetException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } } @@ -283,7 +282,7 @@ public class ReflectUtil { try { return cls.newInstance(); } catch (InstantiationException | IllegalAccessException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java index 138b6076..2f8a475e 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/HttpUtil.java @@ -26,7 +26,6 @@ import cn.hippo4j.common.toolkit.IoUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.logtracing.LogMessage; -import cn.hippo4j.common.web.exception.ServiceException; import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.SneakyThrows; @@ -262,7 +261,7 @@ public class HttpUtil { .kv("method", method) .kv("json", json) .kv2String("headers", JSONUtil.toJSONString(headers))); - throw new ServiceException("Invalid http json body, please check it again."); + throw new RuntimeException("Invalid http json body, please check it again."); } return execute(url, method, json, headers); } @@ -319,7 +318,7 @@ public class HttpUtil { JdkHttpClientResponse response = new JdkHttpClientResponse(connection); if (!HttpResponseCode.isOk(response.getStatusCode())) { String msg = String.format("HttpPost response code error. [code] %s [url] %s [body] %s", response.getStatusCode(), connection.getURL(), response.getBodyString()); - throw new ServiceException(msg); + throw new RuntimeException(msg); } return response; } catch (Throwable ex) { diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java index f25e3721..4fdd4dfc 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/ExecutorFactoryTest.java @@ -17,7 +17,6 @@ package cn.hippo4j.common.executor; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; import cn.hippo4j.common.toolkit.MapUtil; import cn.hippo4j.common.toolkit.ReflectUtil; import org.junit.Assert; diff --git a/infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java b/infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java index df98ab27..0b701222 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/function/MatcherFunctionTest.java @@ -17,6 +17,7 @@ package cn.hippo4j.common.function; +import cn.hippo4j.common.extension.function.Matcher; import cn.hippo4j.common.toolkit.Assert; import org.junit.Test; diff --git a/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java b/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java index 0c176522..f0ed0b6f 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java @@ -17,6 +17,7 @@ package cn.hippo4j.common.function; +import cn.hippo4j.common.extension.function.NoArgsConsumer; import cn.hippo4j.common.toolkit.Assert; import org.junit.jupiter.api.Test; diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java index 67d86932..17f010f3 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.function.Matcher; +import cn.hippo4j.common.extension.function.Matcher; import org.junit.Test; import org.springframework.util.StringUtils; diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java index bf7dbdd8..99846d9e 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ConditionUtilTest.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.toolkit; -import cn.hippo4j.common.function.NoArgsConsumer; +import cn.hippo4j.common.extension.function.NoArgsConsumer; import org.junit.Test; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java b/infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java deleted file mode 100644 index 44369db3..00000000 --- a/infra/common/src/test/java/cn/hippo4j/common/web/ResultsTest.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.common.web; - -public final class ResultsTest { -} diff --git a/kernel/dynamic/api/pom.xml b/kernel/dynamic/api/pom.xml new file mode 100644 index 00000000..3f058feb --- /dev/null +++ b/kernel/dynamic/api/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-dynamic + ${revision} + + + hippo4j-threadpool-dynamic-api + + + + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} + + + \ No newline at end of file diff --git a/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java similarity index 72% rename from infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java rename to kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java index 2221044c..59f386b5 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/api/ThreadPoolDynamicRefresh.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.api; +package cn.hippo4j.threadpool.dynamic.api; import java.util.Map; @@ -25,17 +25,24 @@ import java.util.Map; public interface ThreadPoolDynamicRefresh { /** - * Dynamic refresh. + * Register configuration center event listener. + */ + default void registerListener() { + } + + /** + * Dynamic refresh of configuration center data changes. * - * @param content + * @param content changed data */ - void dynamicRefresh(String content); + default void dynamicRefresh(String content) { + } /** * Dynamic refresh. * - * @param content - * @param newValueChangeMap + * @param content changed data + * @param newValueChangeMap new value change map */ default void dynamicRefresh(String content, Map newValueChangeMap) { } diff --git a/kernel/dynamic/core/pom.xml b/kernel/dynamic/core/pom.xml new file mode 100644 index 00000000..0d3fd4ab --- /dev/null +++ b/kernel/dynamic/core/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-dynamic + ${revision} + + + hippo4j-threadpool-dynamic-core + \ No newline at end of file diff --git a/kernel/dynamic/mode/config/pom.xml b/kernel/dynamic/mode/config/pom.xml new file mode 100644 index 00000000..af4393c6 --- /dev/null +++ b/kernel/dynamic/mode/config/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-dynamic-mode + ${revision} + + + hippo4j-threadpool-dynamic-mode-config + \ No newline at end of file diff --git a/kernel/dynamic/mode/pom.xml b/kernel/dynamic/mode/pom.xml new file mode 100644 index 00000000..021fb2d2 --- /dev/null +++ b/kernel/dynamic/mode/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-dynamic + ${revision} + + + hippo4j-threadpool-dynamic-mode + pom + + + config + server + + \ No newline at end of file diff --git a/kernel/dynamic/mode/server/pom.xml b/kernel/dynamic/mode/server/pom.xml new file mode 100644 index 00000000..af4bcb6c --- /dev/null +++ b/kernel/dynamic/mode/server/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-dynamic-mode + ${revision} + + + hippo4j-threadpool-dynamic-mode-server + \ No newline at end of file diff --git a/kernel/dynamic/pom.xml b/kernel/dynamic/pom.xml index ee66f779..d3b2bea7 100644 --- a/kernel/dynamic/pom.xml +++ b/kernel/dynamic/pom.xml @@ -10,4 +10,11 @@ hippo4j-threadpool-kernel-dynamic + pom + + + api + core + mode + \ No newline at end of file diff --git a/starters/threadpool/config/pom.xml b/starters/threadpool/config/pom.xml index 3244f574..004d604a 100644 --- a/starters/threadpool/config/pom.xml +++ b/starters/threadpool/config/pom.xml @@ -128,5 +128,10 @@ hippo4j-spring-boot-starter-monitor-micrometer ${project.version} + + cn.hippo4j + hippo4j-threadpool-dynamic-api + ${project.version} + diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java index 04cd9033..16ab7d7f 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.config; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.parser.ConfigFileTypeEnum; import cn.hippo4j.core.config.BootstrapPropertiesInterface; import lombok.Getter; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index 70a0f707..d0341186 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -32,7 +32,7 @@ import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolConfigServi import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolPostProcessor; import cn.hippo4j.core.config.UtilAutoConfiguration; import cn.hippo4j.core.enable.MarkerConfiguration; -import cn.hippo4j.core.handler.DynamicThreadPoolBannerHandler; +import cn.hippo4j.core.executor.handler.DynamicThreadPoolBannerHandler; import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.config.MessageConfiguration; import cn.hippo4j.message.service.AlarmControlHandler; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java index c0a31472..c6606af0 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.config; -import cn.hippo4j.common.config.ExecutorNotifyProperties; +import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; import cn.hippo4j.common.api.IExecutorProperties; import lombok.Data; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java index 985da755..69621876 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java @@ -26,7 +26,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java index d8526557..a7167099 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java @@ -19,8 +19,8 @@ package cn.hippo4j.config.springboot.starter.notify; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.api.IExecutorProperties; -import cn.hippo4j.common.config.ExecutorNotifyProperties; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index 73940f69..3438e934 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -17,13 +17,13 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; import cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEvent; import cn.hippo4j.core.executor.support.ThreadPoolBuilder; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.ApplicationArguments; @@ -40,7 +40,6 @@ import java.util.concurrent.ExecutorService; public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh, InitializingBean, ApplicationRunner { private final BootstrapConfigPropertiesBinderAdapt bootstrapConfigPropertiesBinderAdapt; - protected BootstrapConfigProperties bootstrapConfigProperties; protected final ExecutorService dynamicRefreshExecutorService = ThreadPoolBuilder.builder().singlePool("client.dynamic.refresh").build(); @@ -50,11 +49,6 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo bootstrapConfigPropertiesBinderAdapt = ApplicationContextHolder.getBean(BootstrapConfigPropertiesBinderAdapt.class); } - /** - * Init register listener. - */ - protected abstract void initRegisterListener(); - @Override public void dynamicRefresh(String configContent) { dynamicRefresh(configContent, null); @@ -81,7 +75,7 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo @Override public void afterPropertiesSet() { try { - initRegisterListener(); + registerListener(); } catch (Exception ex) { log.error("Hippo4j failed to initialize register listener.", ex); } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java index f70c956a..78cf474b 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java @@ -42,7 +42,7 @@ public class ApolloRefresherHandler extends AbstractConfigThreadPoolDynamicRefre private String namespace; @Override - public void initRegisterListener() { + public void registerListener() { String[] apolloNamespaces = this.namespace.split(","); this.namespace = apolloNamespaces[0]; Config config = ConfigService.getConfig(String.format("%s.%s", namespace, bootstrapConfigProperties.getConfigFileType().getValue())); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java index 38e7b483..ea2cca4e 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ConsulRefresherHandler.java @@ -75,7 +75,7 @@ public class ConsulRefresherHandler extends AbstractConfigThreadPoolDynamicRefre } @Override - protected void initRegisterListener() { + public void registerListener() { // The listener has been registered by annotation. } } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java index 88d7f7b6..45d98ce9 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java @@ -58,7 +58,7 @@ public class EtcdRefresherHandler extends AbstractConfigThreadPoolDynamicRefresh @SneakyThrows(value = {InterruptedException.class, ExecutionException.class}) @Override - public void initRegisterListener() { + public void registerListener() { Map etcd = bootstrapConfigProperties.getEtcd(); String key = etcd.get(KEY); Charset charset = StringUtil.isBlank(etcd.get(CHARSET)) ? StandardCharsets.UTF_8 : Charset.forName(etcd.get(CHARSET)); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java index 739e4d06..9e23e3b8 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java @@ -46,7 +46,7 @@ public class NacosCloudRefresherHandler extends AbstractConfigThreadPoolDynamicR @SneakyThrows(NacosException.class) @Override - public void initRegisterListener() { + public void registerListener() { Map nacosConfig = bootstrapConfigProperties.getNacos(); configService.addListener(nacosConfig.get(DATA_ID), nacosConfig.get(GROUP), new Listener() { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java index 0b795b23..6963ebca 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java @@ -46,7 +46,7 @@ public class NacosRefresherHandler extends AbstractConfigThreadPoolDynamicRefres @SneakyThrows(NacosException.class) @Override - public void initRegisterListener() { + public void registerListener() { Map nacosConfig = bootstrapConfigProperties.getNacos(); configService.addListener(nacosConfig.get(DATA_ID), nacosConfig.get(GROUP), diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java index ba485536..3f2a3f8b 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java @@ -54,7 +54,7 @@ public class PolarisRefresherHandler extends AbstractConfigThreadPoolDynamicRefr private String fileName; @Override - public void initRegisterListener() { + public void registerListener() { ConfigKVFile configFile = getConfigKVFile(); configFile.addChangeListener((ConfigKVFileChangeListener) event -> { String content = configFile.getContent(); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index 5a9ef433..7a638430 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -56,7 +56,7 @@ public class ZookeeperRefresherHandler extends AbstractConfigThreadPoolDynamicRe private static final int MAX_RETRIES = 3; @Override - public void initRegisterListener() { + public void registerListener() { Map zkConfigs = bootstrapConfigProperties.getZookeeper(); curatorFramework = CuratorFrameworkFactory.newClient(zkConfigs.get(ZK_CONNECT_STR), new ExponentialBackoffRetry(BASE_SLEEP_TIME_MS, MAX_RETRIES)); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java index 99f97ca0..9983d594 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java @@ -24,7 +24,7 @@ import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; import cn.hippo4j.config.springboot.starter.support.GlobalCoreThreadPoolManage; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java index 5c726b97..7bb9585e 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/PlatformsRefreshListener.java @@ -19,7 +19,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/RefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/RefreshListener.java index bd072c04..7ed4386c 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/RefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/RefreshListener.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; -import cn.hippo4j.common.function.Matcher; +import cn.hippo4j.common.extension.function.Matcher; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolConfigService.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolConfigService.java index df9a265e..5f740234 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolConfigService.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolConfigService.java @@ -23,7 +23,7 @@ import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.model.register.notify.DynamicThreadPoolRegisterCoreNotifyParameter; import cn.hippo4j.common.toolkit.BooleanUtil; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.service.AbstractDynamicThreadPoolService; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java index 25326184..8b3959c3 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -24,8 +24,8 @@ import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.toolkit.ReflectUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.common.config.ExecutorNotifyProperties; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.core.executor.DynamicThreadPool; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java index 7a8cacf2..70f3a375 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.support; -import cn.hippo4j.common.config.ExecutorProperties; +import cn.hippo4j.common.model.executor.ExecutorProperties; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/starters/threadpool/server/pom.xml b/starters/threadpool/server/pom.xml index daf82eaa..7092cd9f 100644 --- a/starters/threadpool/server/pom.xml +++ b/starters/threadpool/server/pom.xml @@ -76,5 +76,10 @@ hippo4j-threadpool-monitor-base ${project.version} + + cn.hippo4j + hippo4j-threadpool-dynamic-api + ${project.version} + diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index dd3d21d3..7e8ccd9a 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -22,14 +22,13 @@ import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.common.api.ThreadDetailState; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.api.ThreadPoolConfigChange; -import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.core.config.UtilAutoConfiguration; import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.executor.support.service.DynamicThreadPoolService; -import cn.hippo4j.core.handler.DynamicThreadPoolBannerHandler; +import cn.hippo4j.core.executor.handler.DynamicThreadPoolBannerHandler; import cn.hippo4j.core.toolkit.IdentifyUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; import cn.hippo4j.message.api.NotifyConfigBuilder; @@ -63,6 +62,7 @@ import cn.hippo4j.springboot.starter.support.AdaptedThreadPoolDestroyPostProcess import cn.hippo4j.springboot.starter.support.DynamicThreadPoolConfigService; import cn.hippo4j.springboot.starter.support.DynamicThreadPoolPostProcessor; import cn.hippo4j.springboot.starter.support.ThreadPoolPluginRegisterPostProcessor; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import lombok.AllArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java index 187f721e..7529630f 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/ThreadPoolAdapterController.java @@ -20,11 +20,10 @@ package cn.hippo4j.springboot.starter.controller; import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; +import cn.hippo4j.common.model.Result; import cn.hippo4j.core.api.ClientNetworkService; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; import cn.hippo4j.core.toolkit.IdentifyUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; import cn.hippo4j.springboot.starter.toolkit.CloudCommonIdUtil; @@ -70,7 +69,7 @@ public class ThreadPoolAdapterController { threadPoolState.setIdentify(IdentifyUtil.getIdentify()); return threadPoolState; }).orElse(null); - return Results.success(result); + return new Result().setCode(Result.SUCCESS_CODE).setData(result); } @PostMapping("/adapter/thread-pool/update") @@ -79,6 +78,6 @@ public class ThreadPoolAdapterController { requestParameter.getMark(), requestParameter.getThreadPoolKey(), requestParameter.getCorePoolSize(), requestParameter.getMaximumPoolSize()); ThreadPoolAdapter threadPoolAdapter = THREAD_POOL_ADAPTER_BEAN_CONTAINER.get(requestParameter.getMark()); Optional.ofNullable(threadPoolAdapter).ifPresent(each -> each.updateThreadPool(requestParameter)); - return Results.success(); + return new Result().setCode(Result.SUCCESS_CODE); } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolController.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolController.java index ba9d3353..ca48a8fe 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolController.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolController.java @@ -19,11 +19,10 @@ package cn.hippo4j.springboot.starter.controller; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.adapter.web.WebThreadPoolService; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; @@ -48,20 +47,19 @@ public class WebThreadPoolController { public Result getPoolBaseState(@RequestParam(value = "mark") String mark) { WebThreadPoolService webThreadPoolService = webThreadPoolServiceChoose.choose(); if (webThreadPoolService != null && webThreadPoolService.getClass().getSimpleName().contains(mark)) { - return Results.success(webThreadPoolService.simpleInfo()); + return new Result().setCode(Result.SUCCESS_CODE).setData(webThreadPoolService.simpleInfo()); } - return Results.success(null); + return new Result().setCode(Result.SUCCESS_CODE); } @GetMapping("/web/run/state") public Result getPoolRunState() { - ThreadPoolRunStateInfo result = webThreadPoolServiceChoose.choose().getWebRunStateInfo(); - return Results.success(result); + return new Result().setCode(Result.SUCCESS_CODE).setData(webThreadPoolServiceChoose.choose().getWebRunStateInfo()); } @PostMapping("/web/update/pool") public Result updateWebThreadPool(@RequestBody ThreadPoolParameterInfo threadPoolParameterInfo) { webThreadPoolServiceChoose.choose().updateWebThreadPool(threadPoolParameterInfo); - return Results.success(); + return new Result().setCode(Result.SUCCESS_CODE); } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolRunStateController.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolRunStateController.java index 6918f3d3..52e0bf96 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolRunStateController.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/controller/WebThreadPoolRunStateController.java @@ -18,10 +18,9 @@ package cn.hippo4j.springboot.starter.controller; import cn.hippo4j.common.api.ThreadDetailState; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.model.ThreadDetailStateInfo; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.CrossOrigin; @@ -44,13 +43,11 @@ public class WebThreadPoolRunStateController { @GetMapping("/run/state/{threadPoolId}") public Result getPoolRunState(@PathVariable("threadPoolId") String threadPoolId) { - ThreadPoolRunStateInfo result = threadPoolRunStateHandler.getPoolRunState(threadPoolId); - return Results.success(result); + return new Result().setCode(Result.SUCCESS_CODE).setData(threadPoolRunStateHandler.getPoolRunState(threadPoolId)); } @GetMapping("/run/thread/state/{threadPoolId}") public Result> getThreadStateDetail(@PathVariable("threadPoolId") String threadPoolId) { - List result = threadDetailState.getThreadDetailStateInfo(threadPoolId); - return Results.success(result); + return new Result>().setCode(Result.SUCCESS_CODE).setData(threadDetailState.getThreadDetailStateInfo(threadPoolId)); } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ClientWorker.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ClientWorker.java index 8656c5ce..a75a7f6a 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ClientWorker.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ClientWorker.java @@ -17,19 +17,20 @@ package cn.hippo4j.springboot.starter.core; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.toolkit.ContentUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.IdUtil; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.springboot.starter.remote.HttpAgent; import cn.hippo4j.springboot.starter.remote.ServerHealthCheck; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.DisposableBean; import org.springframework.util.StringUtils; + import java.net.URLDecoder; import java.util.ArrayList; import java.util.Collections; @@ -42,6 +43,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; + import static cn.hippo4j.common.constant.Constants.CONFIG_LONG_POLL_TIMEOUT; import static cn.hippo4j.common.constant.Constants.GROUP_KEY_DELIMITER_TRANSLATION; import static cn.hippo4j.common.constant.Constants.WORD_SEPARATOR; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java index c706be4d..95818c8f 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DiscoveryClient.java @@ -18,13 +18,11 @@ package cn.hippo4j.springboot.starter.core; import cn.hippo4j.common.api.ClientCloseHookExecute; +import cn.hippo4j.common.model.Result; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.InstanceInfo; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.exception.ErrorCodeEnum; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.springboot.starter.remote.HttpAgent; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.DisposableBean; @@ -48,10 +46,12 @@ public class DiscoveryClient implements DisposableBean { private final ClientShutdown hippo4jClientShutdown; private volatile long lastSuccessfulHeartbeatTimestamp = -1; + private final int delayTime = 30; + private static final String PREFIX = "DiscoveryClient_"; private final String appPathIdentifier; - - private final int delayTime = 30; + private final String SERVICE_ERROR_CODE = "3"; + private final String SERVICE_NOT_FOUND_CODE = "404"; public DiscoveryClient(HttpAgent httpAgent, InstanceInfo instanceInfo, ClientShutdown hippo4jClientShutdown) { this.httpAgent = httpAgent; @@ -77,7 +77,7 @@ public class DiscoveryClient implements DisposableBean { try { registerResult = httpAgent.httpPostByDiscovery(urlPath, instanceInfo); } catch (Exception ex) { - registerResult = Results.failure(ErrorCodeEnum.SERVICE_ERROR); + registerResult = new Result().setCode(SERVICE_ERROR_CODE); log.error("{}{} - registration failed: {}", PREFIX, appPathIdentifier, ex.getMessage()); } if (log.isInfoEnabled()) { @@ -145,7 +145,7 @@ public class DiscoveryClient implements DisposableBean { .setLastDirtyTimestamp(instanceInfo.getLastDirtyTimestamp().toString()) .setStatus(instanceInfo.getStatus().toString()); renewResult = httpAgent.httpPostByDiscovery(BASE_PATH + "/apps/renew", instanceRenew); - if (Objects.equals(ErrorCodeEnum.NOT_FOUND.getCode(), renewResult.getCode())) { + if (Objects.equals(SERVICE_NOT_FOUND_CODE, renewResult.getCode())) { long timestamp = instanceInfo.setIsDirtyWithTime(); boolean success = register(); // TODO Abstract server registration logic diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DynamicThreadPoolSubscribeConfig.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DynamicThreadPoolSubscribeConfig.java index db646ff8..404f8a29 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DynamicThreadPoolSubscribeConfig.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/DynamicThreadPoolSubscribeConfig.java @@ -17,10 +17,10 @@ package cn.hippo4j.springboot.starter.core; -import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.core.executor.support.ThreadPoolBuilder; import cn.hippo4j.springboot.starter.config.BootstrapProperties; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import lombok.RequiredArgsConstructor; import java.util.Arrays; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java index 1e253b0f..48325113 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java @@ -18,8 +18,7 @@ package cn.hippo4j.springboot.starter.core; import cn.hippo4j.common.api.ThreadPoolConfigChange; -import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; -import cn.hippo4j.common.enums.EnableEnum; +import cn.hippo4j.common.extension.enums.EnableEnum; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; @@ -30,6 +29,7 @@ import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.message.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java index 62b64bff..82f67457 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java @@ -21,9 +21,9 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterCacheConfig; import cn.hippo4j.adapter.base.ThreadPoolAdapterRegisterAction; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; +import cn.hippo4j.common.model.Result; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.core.toolkit.IdentifyUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; import cn.hippo4j.springboot.starter.config.BootstrapProperties; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java index 7efc1411..4fdee6b4 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.monitor; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.CollectionUtil; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java index 3cfbe586..09bed348 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java @@ -17,10 +17,10 @@ package cn.hippo4j.springboot.starter.notify; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.dto.NotifyConfigDTO; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/AbstractHealthCheck.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/AbstractHealthCheck.java index 246f80ad..354ba94e 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/AbstractHealthCheck.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/AbstractHealthCheck.java @@ -20,7 +20,7 @@ package cn.hippo4j.springboot.starter.remote; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.springboot.starter.event.ApplicationRefreshedEvent; import cn.hippo4j.springboot.starter.core.ShutdownExecuteException; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpAgent.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpAgent.java index e2bf9db5..91de1849 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpAgent.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpAgent.java @@ -17,7 +17,7 @@ package cn.hippo4j.springboot.starter.remote; -import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.common.model.Result; import java.util.Map; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpScheduledHealthCheck.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpScheduledHealthCheck.java index 5b7139d6..2d842a04 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpScheduledHealthCheck.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/HttpScheduledHealthCheck.java @@ -17,7 +17,7 @@ package cn.hippo4j.springboot.starter.remote; -import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.common.model.Result; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java index 7ad8ca19..498aedd4 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java @@ -17,12 +17,12 @@ package cn.hippo4j.springboot.starter.remote; +import cn.hippo4j.common.model.Result; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.security.SecurityProxy; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/security/SecurityProxy.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/security/SecurityProxy.java index c03d518a..83d6b3c2 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/security/SecurityProxy.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/security/SecurityProxy.java @@ -18,11 +18,11 @@ package cn.hippo4j.springboot.starter.security; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.TokenInfo; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java index f648b346..f38d5f51 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java @@ -17,6 +17,7 @@ package cn.hippo4j.springboot.starter.support; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; @@ -24,8 +25,6 @@ import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.service.AbstractDynamicThreadPoolService; @@ -55,13 +54,9 @@ import static cn.hippo4j.common.constant.Constants.REGISTER_DYNAMIC_THREAD_POOL_ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolService { private final HttpAgent httpAgent; - private final BootstrapProperties properties; - private final ServerModeNotifyConfigBuilder serverModeNotifyConfigBuilder; - private final Hippo4jBaseSendMessageService hippo4jBaseSendMessageService; - private final DynamicThreadPoolSubscribeConfig dynamicThreadPoolSubscribeConfig; @Override @@ -80,7 +75,7 @@ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolSer failDynamicThreadPoolRegisterWrapper(registerWrapper); Result registerResult = httpAgent.httpPost(REGISTER_DYNAMIC_THREAD_POOL_PATH, registerWrapper); if (registerResult == null || !registerResult.isSuccess()) { - throw new ServiceException("Dynamic thread pool registration returns error." + throw new RuntimeException("Dynamic thread pool registration returns error." + Optional.ofNullable(registerResult).map(Result::getMessage).orElse("")); } } catch (Throwable ex) { diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java index 0b7bbbdb..1f2617c7 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -17,9 +17,10 @@ package cn.hippo4j.springboot.starter.support; +import cn.hippo4j.common.model.Result; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.enums.EnableEnum; +import cn.hippo4j.common.extension.enums.EnableEnum; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.model.ThreadPoolParameterInfo; @@ -28,7 +29,6 @@ import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.ReflectUtil; -import cn.hippo4j.common.web.base.Result; import cn.hippo4j.core.executor.DynamicThreadPool; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; @@ -53,6 +53,7 @@ import java.util.Optional; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; + import static cn.hippo4j.common.constant.Constants.INITIAL_CAPACITY; import static cn.hippo4j.common.constant.Constants.TP_ID; import static cn.hippo4j.common.constant.Constants.ITEM_ID; @@ -70,9 +71,7 @@ import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT; public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { private final BootstrapProperties properties; - private final HttpAgent httpAgent; - private final DynamicThreadPoolSubscribeConfig dynamicThreadPoolSubscribeConfig; @Override diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/ThreadPoolPluginRegisterPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/ThreadPoolPluginRegisterPostProcessor.java index 262cd268..e5b9d2c7 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/ThreadPoolPluginRegisterPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/ThreadPoolPluginRegisterPostProcessor.java @@ -18,11 +18,11 @@ package cn.hippo4j.springboot.starter.support; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; -import cn.hippo4j.core.plugin.manager.DefaultGlobalThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.GlobalThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginRegistrar; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginSupport; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultGlobalThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.GlobalThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginRegistrar; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginSupport; import lombok.extern.slf4j.Slf4j; import org.springframework.aop.framework.autoproxy.AutoProxyUtils; import org.springframework.beans.BeansException; @@ -59,7 +59,7 @@ import java.util.Objects; public class ThreadPoolPluginRegisterPostProcessor extends DefaultGlobalThreadPoolPluginManager implements BeanPostProcessor, ApplicationContextAware { /** - * application context + * Application context */ private ConfigurableListableBeanFactory beanFactory; diff --git a/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java b/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java index 143b285e..e07dbe57 100644 --- a/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java +++ b/threadpool/adapter/hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.hystrix; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import lombok.Getter; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/AbstractWebThreadPoolService.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/AbstractWebThreadPoolService.java index 03014af3..96a0b0c8 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/AbstractWebThreadPoolService.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/AbstractWebThreadPoolService.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/IWebThreadPoolHandlerSupport.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/IWebThreadPoolHandlerSupport.java index 0b25afdd..8f850287 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/IWebThreadPoolHandlerSupport.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/IWebThreadPoolHandlerSupport.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java index 71ef1fbe..824fda84 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolHandlerChoose.java @@ -18,7 +18,6 @@ package cn.hippo4j.adapter.web; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.common.web.exception.ServiceException; import lombok.extern.slf4j.Slf4j; /** @@ -37,7 +36,7 @@ public class WebThreadPoolHandlerChoose { try { webThreadPoolService = ApplicationContextHolder.getBean(WebThreadPoolService.class); } catch (Exception ex) { - throw new ServiceException("Web thread pool service bean not found.", ex); + throw new RuntimeException("Web thread pool service bean not found.", ex); } return webThreadPoolService; } diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolService.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolService.java index 082c890f..b85f89b9 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolService.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/WebThreadPoolService.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.web; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/jetty/JettyWebThreadPoolHandlerSupport.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/jetty/JettyWebThreadPoolHandlerSupport.java index f82b3408..6307af4d 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/jetty/JettyWebThreadPoolHandlerSupport.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/jetty/JettyWebThreadPoolHandlerSupport.java @@ -19,7 +19,7 @@ package cn.hippo4j.adapter.web.jetty; import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport; import cn.hippo4j.common.constant.ChangeThreadPoolConstants; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/tomcat/TomcatWebThreadPoolHandlerSupport.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/tomcat/TomcatWebThreadPoolHandlerSupport.java index 446a4b43..d04d2af3 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/tomcat/TomcatWebThreadPoolHandlerSupport.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/tomcat/TomcatWebThreadPoolHandlerSupport.java @@ -19,7 +19,7 @@ package cn.hippo4j.adapter.web.tomcat; import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport; import cn.hippo4j.common.constant.ChangeThreadPoolConstants; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java index 0c2cd8bb..2d3d3c06 100644 --- a/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java +++ b/threadpool/adapter/web/src/main/java/cn/hippo4j/adapter/web/undertow/UndertowWebThreadPoolHandlerSupport.java @@ -19,7 +19,7 @@ package cn.hippo4j.adapter.web.undertow; import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport; import cn.hippo4j.common.constant.ChangeThreadPoolConstants; -import cn.hippo4j.common.enums.WebContainerEnum; +import cn.hippo4j.common.extension.enums.WebContainerEnum; import cn.hippo4j.common.model.ThreadPoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java index 15c4f07f..c0917f50 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java @@ -18,12 +18,12 @@ package cn.hippo4j.core.executor; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.core.plugin.impl.TaskDecoratorPlugin; -import cn.hippo4j.core.plugin.impl.TaskRejectCountRecordPlugin; -import cn.hippo4j.core.plugin.impl.TaskTimeoutNotifyAlarmPlugin; -import cn.hippo4j.core.plugin.impl.ThreadPoolExecutorShutdownPlugin; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginRegistrar; +import cn.hippo4j.core.executor.plugin.impl.TaskDecoratorPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectCountRecordPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginRegistrar; import lombok.Getter; import lombok.NonNull; import lombok.Setter; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java index 964d6318..7351055f 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor; -import cn.hippo4j.core.provider.CommonDynamicThreadPoolProviderFactory; +import cn.hippo4j.core.executor.provider.CommonDynamicThreadPoolProviderFactory; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutor.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutor.java index 3401dcd0..1cedb30a 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutor.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutor.java @@ -17,13 +17,13 @@ package cn.hippo4j.core.executor; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginSupport; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginSupport; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NonNull; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java index 521a3e47..2b33a561 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.handler; +package cn.hippo4j.core.executor.handler; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.core.config.BootstrapPropertiesInterface; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ExecuteAwarePlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ExecuteAwarePlugin.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/ExecuteAwarePlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ExecuteAwarePlugin.java index 41176b8d..da5f9165 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ExecuteAwarePlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ExecuteAwarePlugin.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import java.util.concurrent.ThreadPoolExecutor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/PluginRuntime.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/PluginRuntime.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/PluginRuntime.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/PluginRuntime.java index 10515da1..522a473d 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/PluginRuntime.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/PluginRuntime.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/RejectedAwarePlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/RejectedAwarePlugin.java similarity index 96% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/RejectedAwarePlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/RejectedAwarePlugin.java index 00213a59..b7dd3928 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/RejectedAwarePlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/RejectedAwarePlugin.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import java.util.concurrent.ThreadPoolExecutor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ShutdownAwarePlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ShutdownAwarePlugin.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/ShutdownAwarePlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ShutdownAwarePlugin.java index ab526cf5..2fb8f9be 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ShutdownAwarePlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ShutdownAwarePlugin.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import java.util.List; import java.util.concurrent.ThreadPoolExecutor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/TaskAwarePlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/TaskAwarePlugin.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/TaskAwarePlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/TaskAwarePlugin.java index c846a74e..235613ef 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/TaskAwarePlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/TaskAwarePlugin.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ThreadPoolPlugin.java similarity index 89% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ThreadPoolPlugin.java index 8b20137d..06159075 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/ThreadPoolPlugin.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginRegistrar; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginSupport; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginRegistrar; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginSupport; /** *

A marker superinterface indicating that diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/AbstractTaskTimerPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/AbstractTaskTimerPlugin.java similarity index 96% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/AbstractTaskTimerPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/AbstractTaskTimerPlugin.java index 7733249c..f9e715f7 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/AbstractTaskTimerPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/AbstractTaskTimerPlugin.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; import cn.hippo4j.core.toolkit.SystemClock; import java.util.Optional; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPlugin.java similarity index 94% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPlugin.java index 749121f2..93218dc0 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPlugin.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.PluginRuntime; -import cn.hippo4j.core.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.PluginRuntime; import lombok.Getter; import lombok.NonNull; import org.springframework.core.task.TaskDecorator; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPlugin.java similarity index 92% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPlugin.java index 2d82402a..02f937cd 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPlugin.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; -import cn.hippo4j.core.plugin.PluginRuntime; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; import lombok.Getter; import lombok.Setter; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java similarity index 95% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java index 7c1ec674..7a5f5c13 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPlugin.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPlugin.java index 5c47a7c7..56e61cf8 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPlugin.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.core.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.PluginRuntime; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java index 2d949a13..8910d621 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.core.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.PluginRuntime; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NonNull; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPlugin.java similarity index 96% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPlugin.java index beec590b..ec07ef18 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPlugin.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.PluginRuntime; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManager.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManager.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManager.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManager.java index 77246371..2e075e64 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManager.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManager.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import lombok.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManager.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManager.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManager.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManager.java index 790ed894..319e7ef5 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManager.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManager.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import lombok.Getter; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrar.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrar.java similarity index 81% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrar.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrar.java index 356782ee..3bfc911c 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrar.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrar.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; -import cn.hippo4j.core.plugin.impl.TaskDecoratorPlugin; -import cn.hippo4j.core.plugin.impl.TaskRejectCountRecordPlugin; -import cn.hippo4j.core.plugin.impl.TaskRejectNotifyAlarmPlugin; -import cn.hippo4j.core.plugin.impl.TaskTimeoutNotifyAlarmPlugin; -import cn.hippo4j.core.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskDecoratorPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectCountRecordPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManager.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManager.java similarity index 93% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManager.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManager.java index d2d18ea3..e41e38e9 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManager.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManager.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/GlobalThreadPoolPluginManager.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/GlobalThreadPoolPluginManager.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/GlobalThreadPoolPluginManager.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/GlobalThreadPoolPluginManager.java index 62d2085d..b6c20d2d 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/GlobalThreadPoolPluginManager.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/GlobalThreadPoolPluginManager.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import java.util.Collection; import java.util.Optional; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginManager.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginManager.java similarity index 94% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginManager.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginManager.java index 56027c2b..f5782108 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginManager.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginManager.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; - -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.PluginRuntime; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +package cn.hippo4j.core.executor.plugin.manager; + +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import java.util.Collection; import java.util.Optional; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginRegistrar.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginRegistrar.java similarity index 92% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginRegistrar.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginRegistrar.java index 5ba3e57c..c2898cdf 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginRegistrar.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginRegistrar.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; /** * Registrar of {@link ThreadPoolPlugin}. diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupport.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupport.java similarity index 94% rename from threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupport.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupport.java index 31426421..89818bb2 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupport.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupport.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; import org.checkerframework.checker.nullness.qual.NonNull; import java.util.Collection; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/provider/CommonDynamicThreadPoolProviderFactory.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/provider/CommonDynamicThreadPoolProviderFactory.java index 3350544e..b71b2674 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/provider/CommonDynamicThreadPoolProviderFactory.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/provider/CommonDynamicThreadPoolProviderFactory.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.provider; +package cn.hippo4j.core.executor.provider; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; @@ -32,14 +32,17 @@ public class CommonDynamicThreadPoolProviderFactory { * Core pool size. */ private static final int CORE_POOL_SIZE = 2; + /** * Maximum pool size. */ private static final int MAXIMUM_POOL_SIZE = 4; + /** * Keep alive time. */ private static final long KEEP_ALIVE_TIME = 60L; + /** * Work queue capacity. */ diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java similarity index 98% rename from threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java index ff6a1fb1..33119193 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.proxy; +package cn.hippo4j.core.executor.proxy; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyUtil.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyUtil.java rename to threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyUtil.java index 10ce57b5..ddd9f136 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/proxy/RejectedProxyUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.proxy; +package cn.hippo4j.core.executor.proxy; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java index 6a61c23d..4ae9d3ad 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor.support; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import lombok.Data; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java index b44ef7d0..b556ae00 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor.support; -import cn.hippo4j.core.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java index 8b31ede9..ca174ca0 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java @@ -17,7 +17,7 @@ package cn.hippo4j.core.executor.support; -import cn.hippo4j.common.design.builder.Builder; +import cn.hippo4j.common.extension.design.Builder; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.toolkit.Assert; import org.springframework.core.task.TaskDecorator; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java index ea924ace..12d28c05 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/support/ExtensionAutoConfiguration.java @@ -22,7 +22,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * extension auto configuration + * Extension auto configuration. */ @Configuration public class ExtensionAutoConfiguration { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java index f14bdfd4..a267d91f 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java @@ -17,7 +17,6 @@ package cn.hippo4j.core.toolkit; -import cn.hippo4j.common.web.exception.IllegalException; import lombok.SneakyThrows; import org.springframework.core.io.ClassPathResource; @@ -68,7 +67,7 @@ public class FileUtil { strList.add(line); } } catch (IOException e) { - throw new IllegalException("file read error", e); + throw new RuntimeException("file read error", e); } return strList; } diff --git a/infra/common/src/main/resources/META-INF/spring.factories b/threadpool/core/src/main/resources/META-INF/spring.factories similarity index 100% rename from infra/common/src/main/resources/META-INF/spring.factories rename to threadpool/core/src/main/resources/META-INF/spring.factories diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutorTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutorTest.java index 219ab297..ee0e8e14 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutorTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/ExtensibleThreadPoolExecutorTest.java @@ -18,12 +18,12 @@ package cn.hippo4j.core.executor; import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; -import cn.hippo4j.core.plugin.manager.ThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; import lombok.Getter; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandlerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandlerTest.java similarity index 96% rename from threadpool/core/src/test/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandlerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandlerTest.java index 824faf4c..a988cc04 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/handler/DynamicThreadPoolBannerHandlerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandlerTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.handler; +package cn.hippo4j.core.executor.handler; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/PluginRuntimeTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/PluginRuntimeTest.java similarity index 93% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/PluginRuntimeTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/PluginRuntimeTest.java index 80281460..24428752 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/PluginRuntimeTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/PluginRuntimeTest.java @@ -15,8 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; +import cn.hippo4j.core.executor.plugin.PluginRuntime; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/ThreadPoolPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/ThreadPoolPluginTest.java similarity index 94% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/ThreadPoolPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/ThreadPoolPluginTest.java index 423400bf..d0c2968b 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/ThreadPoolPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/ThreadPoolPluginTest.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin; +package cn.hippo4j.core.executor.plugin; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.*; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.Getter; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPluginTest.java similarity index 92% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPluginTest.java index 09f84f8f..5668947d 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskDecoratorPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskDecoratorPluginTest.java @@ -15,13 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.PluginRuntime; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.PluginRuntime; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskDecoratorPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import org.junit.Assert; import org.junit.Test; import org.springframework.core.task.TaskDecorator; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPluginTest.java similarity index 93% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPluginTest.java index a4ae9125..6f5f7603 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectCountRecordPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectCountRecordPluginTest.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectCountRecordPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java similarity index 94% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java index c4494d72..01e699c4 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskRejectNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java @@ -15,12 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.Getter; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPluginTest.java similarity index 96% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPluginTest.java index 391a1169..ea839368 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeRecordPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeRecordPluginTest.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.extern.slf4j.Slf4j; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java similarity index 94% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java index 1680442b..a5aabe04 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java @@ -15,12 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.Getter; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java similarity index 92% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java index 056dc1bd..424e4a7f 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/ThreadPoolExecutorShutdownPluginTest.java @@ -15,12 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.impl; +package cn.hippo4j.core.executor.plugin.impl; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; -import cn.hippo4j.core.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java similarity index 98% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java index 834d0922..06e49b24 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultGlobalThreadPoolPluginManagerTest.java @@ -15,9 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.*; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.junit.Assert; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManagerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManagerTest.java similarity index 95% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManagerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManagerTest.java index 94ae0e1b..ebb63bc3 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginManagerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginManagerTest.java @@ -15,13 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; - -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +package cn.hippo4j.core.executor.plugin.manager; + +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import lombok.Getter; import org.junit.Assert; import org.junit.Before; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java similarity index 77% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java index ee6e5644..c968e735 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/DefaultThreadPoolPluginRegistrarTest.java @@ -15,14 +15,18 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.impl.TaskDecoratorPlugin; -import cn.hippo4j.core.plugin.impl.TaskRejectCountRecordPlugin; -import cn.hippo4j.core.plugin.impl.TaskRejectNotifyAlarmPlugin; -import cn.hippo4j.core.plugin.impl.TaskTimeoutNotifyAlarmPlugin; -import cn.hippo4j.core.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskDecoratorPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectCountRecordPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskRejectNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; +import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginRegistrar; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginRegistrar; import org.junit.Assert; import org.junit.Test; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManagerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManagerTest.java similarity index 93% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManagerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManagerTest.java index be19f091..ce80299c 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/EmptyThreadPoolPluginManagerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/EmptyThreadPoolPluginManagerTest.java @@ -15,9 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.EmptyThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; import lombok.Getter; import org.junit.Assert; import org.junit.Test; @@ -26,7 +28,7 @@ import java.util.Collections; import java.util.Optional; /** - * test for {@link cn.hippo4j.core.plugin.manager.EmptyThreadPoolPluginManager} + * test for {@link EmptyThreadPoolPluginManager} */ public class EmptyThreadPoolPluginManagerTest { diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupportTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupportTest.java similarity index 93% rename from threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupportTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupportTest.java index 92196a5f..0d5c2e87 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/plugin/manager/ThreadPoolPluginSupportTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/manager/ThreadPoolPluginSupportTest.java @@ -15,14 +15,17 @@ * limitations under the License. */ -package cn.hippo4j.core.plugin.manager; +package cn.hippo4j.core.executor.plugin.manager; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.plugin.ExecuteAwarePlugin; -import cn.hippo4j.core.plugin.RejectedAwarePlugin; -import cn.hippo4j.core.plugin.ShutdownAwarePlugin; -import cn.hippo4j.core.plugin.TaskAwarePlugin; -import cn.hippo4j.core.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.ExecuteAwarePlugin; +import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.core.executor.plugin.ShutdownAwarePlugin; +import cn.hippo4j.core.executor.plugin.TaskAwarePlugin; +import cn.hippo4j.core.executor.plugin.ThreadPoolPlugin; +import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginManager; +import cn.hippo4j.core.executor.plugin.manager.ThreadPoolPluginSupport; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.junit.Assert; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java similarity index 96% rename from threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java rename to threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java index 663ef699..42a4286a 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java @@ -15,10 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.proxy; +package cn.hippo4j.core.executor.proxy; import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; +import cn.hippo4j.core.executor.proxy.RejectedProxyInvocationHandler; import org.junit.Before; import org.junit.Test; import org.junit.jupiter.api.Assertions; diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java index 880181cb..4a77c6c4 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java @@ -18,7 +18,6 @@ package cn.hippo4j.rpc.client; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.exception.TimeOutException; import cn.hippo4j.rpc.model.Request; import cn.hippo4j.rpc.model.Response; @@ -86,7 +85,7 @@ public class NettyClientConnection implements ClientConnection { } return response; } catch (Exception ex) { - throw new IllegalException(ex); + throw ex; } finally { connectionPool.release(this.channel); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java index d04adbe3..0a45d78f 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java @@ -18,7 +18,6 @@ package cn.hippo4j.rpc.discovery; import cn.hippo4j.common.toolkit.ReflectUtil; -import cn.hippo4j.common.web.exception.IllegalException; import java.util.Iterator; import java.util.ServiceLoader; @@ -48,7 +47,7 @@ public class DefaultInstance implements Instance { Class cls = Class.forName(name); return getInstance(cls); } catch (ClassNotFoundException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java index 5c583eee..0fe0cc38 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.common.web.exception.IllegalException; import io.netty.channel.ChannelHandler; import lombok.AllArgsConstructor; import lombok.Getter; @@ -66,7 +65,7 @@ public interface HandlerManager { boolean b = cls.isAnnotationPresent(ChannelHandler.Sharable.class) || HandlerManager.class.isAssignableFrom(cls); if (!b) { - throw new IllegalException("Join the execution of the handler must add io.netty.channel.ChannelHandler." + throw new RuntimeException("Join the execution of the handler must add io.netty.channel.ChannelHandler." + "Sharable annotations, Please for the handler class " + cls.getName() + " add io.netty.channel." + "ChannelHandler.Sharable annotation"); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java index dca66b90..02d7c00d 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.model.Response; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; @@ -38,7 +37,7 @@ public class NettyClientTakeHandler extends AbstractNettyTakeHandler implements ctx.flush(); } catch (Exception e) { ctx.close(); - throw new IllegalException(e); + throw e; } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java index 5eb12607..602aecc6 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.support; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.client.Client; import cn.hippo4j.rpc.client.ClientConnection; import cn.hippo4j.rpc.client.NettyClientConnection; @@ -103,7 +102,7 @@ public final class NettyClientSupport { try { c.close(); } catch (IOException e) { - throw new IllegalException(e); + throw new RuntimeException(e); } }); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java index 910e27f4..93214662 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java @@ -18,7 +18,6 @@ package cn.hippo4j.rpc.support; import cn.hippo4j.common.toolkit.IdUtil; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.client.Client; import cn.hippo4j.rpc.exception.ConnectionException; import cn.hippo4j.rpc.handler.NettyClientPoolHandler; @@ -110,7 +109,7 @@ public class NettyProxyCenter { public static T createProxy(Client client, Class cls, InetSocketAddress address) { boolean b = cls.isInterface(); if (!b) { - throw new IllegalException(cls.getName() + "is not a Interface"); + throw new RuntimeException(cls.getName() + "is not a Interface"); } String s = address.toString() + cls.getName(); Object o = map.get(s); @@ -131,7 +130,7 @@ public class NettyProxyCenter { return null; } if (response.isErr()) { - throw new IllegalException(response.getErrMsg(), response.getThrowable()); + throw new RuntimeException(response.getErrMsg(), response.getThrowable()); } return response.getObj(); }); diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java index 0a0a9bb2..eeff9ee3 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.discovery; -import cn.hippo4j.common.web.exception.IllegalException; import org.junit.Assert; import org.junit.Test; @@ -41,7 +40,7 @@ public class DefaultInstanceTest { Assert.assertEquals(className, instanceInstance.getClass().getName()); } - @Test(expected = IllegalException.class) + @Test(expected = RuntimeException.class) public void testGetInstanceTest() { String className = "cn.hippo4j.rpc.discovery.InstanceModelTest"; Object instanceInstance = instance.getInstance(className); diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java index 7914df63..e6f07600 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java @@ -18,7 +18,6 @@ package cn.hippo4j.rpc.handler; import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.client.CallManager; import cn.hippo4j.rpc.client.ClientConnection; import cn.hippo4j.rpc.client.NettyClientConnection; @@ -104,7 +103,7 @@ public class NettyClientPoolHandlerTest { Assert.assertFalse(handler.isEmpty()); } - @Test(expected = IllegalException.class) + @Test(expected = RuntimeException.class) public void testGetHandlerEntityFalse() { TestFalseHandler handler = new TestFalseHandler(); long order = 0; diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java index 33f4fb49..c3e4d209 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.model; -import cn.hippo4j.common.web.exception.IllegalException; import org.junit.Assert; import org.junit.Test; @@ -60,7 +59,7 @@ public class DefaultResponseTest { @Test public void testWriteObject() throws IOException, ClassNotFoundException { String key = "name"; - Throwable throwable = new IllegalException("test throwable"); + Throwable throwable = new RuntimeException("test throwable"); String errMsg = "test throwable"; Response response = new DefaultResponse(key, throwable, errMsg); byte[] bytes; @@ -78,7 +77,7 @@ public class DefaultResponseTest { response1 = (Response) objectInputStream.readObject(); } Assert.assertEquals(key, response1.getKey()); - Assert.assertThrows(IllegalException.class, () -> { + Assert.assertThrows(RuntimeException.class, () -> { throw response1.getThrowable(); }); Assert.assertEquals(response1.hashCode(), response.hashCode()); diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java index aafff550..c807c514 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java @@ -18,7 +18,6 @@ package cn.hippo4j.rpc.support; import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.common.web.exception.IllegalException; import cn.hippo4j.rpc.client.Client; import cn.hippo4j.rpc.client.NettyClientConnection; import cn.hippo4j.rpc.client.RPCClient; @@ -80,7 +79,7 @@ public class NettyProxyCenterTest { NettyProxyCenter.removeProxy(ProxyInterface.class, "localhost8894"); } - @Test(expected = IllegalException.class) + @Test(expected = RuntimeException.class) public void getProxyTest() { InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); diff --git a/threadpool/server/auth/pom.xml b/threadpool/server/auth/pom.xml index 2b431f09..ce8d8175 100644 --- a/threadpool/server/auth/pom.xml +++ b/threadpool/server/auth/pom.xml @@ -57,5 +57,10 @@ hippo4j-threadpool-infra-common ${project.version} + + cn.hippo4j + hippo4j-threadpool-server-common + ${project.version} + diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java index a397a4cf..e64ab45c 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java @@ -22,7 +22,7 @@ import cn.hippo4j.auth.model.biz.user.LoginUser; import cn.hippo4j.auth.toolkit.JwtTokenUtil; import cn.hippo4j.auth.toolkit.ReturnT; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.server.common.base.Results; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.security.authentication.AuthenticationManager; diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthorizationFilter.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthorizationFilter.java index 5347c4ba..ccd04f61 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthorizationFilter.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthorizationFilter.java @@ -22,8 +22,8 @@ import cn.hippo4j.auth.toolkit.JwtTokenUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.UserContext; -import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.exception.ServiceException; +import cn.hippo4j.server.common.base.Results; +import cn.hippo4j.server.common.base.exception.ServiceException; import lombok.extern.slf4j.Slf4j; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -40,7 +40,7 @@ import java.io.IOException; import java.util.Collections; import static cn.hippo4j.common.constant.Constants.ACCESS_TOKEN; -import static cn.hippo4j.common.web.exception.ErrorCodeEnum.LOGIN_TIMEOUT; +import static cn.hippo4j.server.common.base.exception.ErrorCodeEnum.LOGIN_TIMEOUT; /** * JWT authorization filter. diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/service/impl/UserServiceImpl.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/service/impl/UserServiceImpl.java index 9567664f..e3542d3a 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/service/impl/UserServiceImpl.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/service/impl/UserServiceImpl.java @@ -27,7 +27,7 @@ import cn.hippo4j.auth.service.PermissionService; import cn.hippo4j.auth.service.UserService; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.common.web.exception.ServiceException; +import cn.hippo4j.server.common.base.exception.ServiceException; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; diff --git a/threadpool/server/common/pom.xml b/threadpool/server/common/pom.xml new file mode 100644 index 00000000..5b2a21d7 --- /dev/null +++ b/threadpool/server/common/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-server + ${revision} + + + hippo4j-threadpool-server-common + + + true + + + + + org.projectlombok + lombok + + + + org.springframework.boot + spring-boot-starter-test + test + + + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} + + + \ No newline at end of file diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/base/Results.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/Results.java similarity index 89% rename from infra/common/src/main/java/cn/hippo4j/common/web/base/Results.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/Results.java index f3dd8402..d6435e30 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/base/Results.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/Results.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.common.web.base; +package cn.hippo4j.server.common.base; -import cn.hippo4j.common.web.exception.AbstractException; -import cn.hippo4j.common.web.exception.ErrorCode; -import cn.hippo4j.common.web.exception.ErrorCodeEnum; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.exception.AbstractException; +import cn.hippo4j.server.common.base.exception.ErrorCode; +import cn.hippo4j.server.common.base.exception.ErrorCodeEnum; import java.util.Optional; diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/AbstractException.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/AbstractException.java index 07429614..550f5efa 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/exception/AbstractException.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/AbstractException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.exception; +package cn.hippo4j.server.common.base.exception; import lombok.Getter; diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCode.java similarity index 95% rename from infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCode.java index 4f220641..9d5e6327 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCode.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCode.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.exception; +package cn.hippo4j.server.common.base.exception; /** * Error code abstract interface. diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCodeEnum.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCodeEnum.java index 63116639..550d6847 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ErrorCodeEnum.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ErrorCodeEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.exception; +package cn.hippo4j.server.common.base.exception; /** * Error code enum. diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/IllegalException.java similarity index 96% rename from infra/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/IllegalException.java index 86250b4a..d014ca7c 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/exception/IllegalException.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/IllegalException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.exception; +package cn.hippo4j.server.common.base.exception; /** * A generic exception to handle illegal operations diff --git a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ServiceException.java similarity index 97% rename from infra/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java rename to threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ServiceException.java index f0a357da..6ad45d63 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/web/exception/ServiceException.java +++ b/threadpool/server/common/src/main/java/cn/hippo4j/server/common/base/exception/ServiceException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.common.web.exception; +package cn.hippo4j.server.common.base.exception; import lombok.EqualsAndHashCode; diff --git a/infra/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java b/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java similarity index 91% rename from infra/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java rename to threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java index 9da7c892..e76d94b6 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/web/base/ResultsTest.java +++ b/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java @@ -15,14 +15,15 @@ * limitations under the License. */ -package cn.hippo4j.common.web.base; +package cn.hippo4j.server.common.base; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.web.exception.AbstractException; -import cn.hippo4j.common.web.exception.ErrorCode; +import cn.hippo4j.server.common.base.exception.AbstractException; +import cn.hippo4j.server.common.base.exception.ErrorCode; import org.junit.jupiter.api.Test; -import static cn.hippo4j.common.web.exception.ErrorCodeEnum.SERVICE_ERROR; +import static cn.hippo4j.server.common.base.exception.ErrorCodeEnum.SERVICE_ERROR; public class ResultsTest { diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/MyMetaObjectHandler.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/MyMetaObjectHandler.java index 0a1a2771..187841a3 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/config/MyMetaObjectHandler.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/config/MyMetaObjectHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.config; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ConfigController.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ConfigController.java index 2011f5e8..b0a299f4 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ConfigController.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ConfigController.java @@ -29,8 +29,7 @@ import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.UserContext; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.model.ConfigAllInfo; import cn.hippo4j.config.model.ConfigInfoBase; import cn.hippo4j.config.model.biz.threadpool.ConfigModifySaveReqDTO; @@ -39,6 +38,7 @@ import cn.hippo4j.config.service.ConfigServletInner; import cn.hippo4j.config.service.biz.ConfigService; import cn.hippo4j.config.toolkit.Md5ConfigUtil; import cn.hippo4j.config.verify.ConfigModificationVerifyServiceChoose; +import cn.hippo4j.server.common.base.Results; import lombok.AllArgsConstructor; import lombok.SneakyThrows; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/MonitorController.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/MonitorController.java index ef48fbba..addbc56e 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/MonitorController.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/MonitorController.java @@ -19,13 +19,13 @@ package cn.hippo4j.config.controller; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.monitor.MessageWrapper; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.model.biz.monitor.MonitorActiveRespDTO; import cn.hippo4j.config.model.biz.monitor.MonitorQueryReqDTO; import cn.hippo4j.config.model.biz.monitor.MonitorRespDTO; import cn.hippo4j.config.monitor.QueryMonitorExecuteChoose; import cn.hippo4j.config.service.biz.HisRunDataService; +import cn.hippo4j.server.common.base.Results; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ThreadPoolAdapterController.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ThreadPoolAdapterController.java index 112630e4..56324112 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ThreadPoolAdapterController.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/controller/ThreadPoolAdapterController.java @@ -18,9 +18,9 @@ package cn.hippo4j.config.controller; import cn.hippo4j.adapter.base.ThreadPoolAdapterCacheConfig; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.service.ThreadPoolAdapterService; +import cn.hippo4j.server.common.base.Results; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java index 72e0abc1..b598747a 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java @@ -19,9 +19,9 @@ package cn.hippo4j.config.service; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.design.observer.AbstractSubjectCenter; -import cn.hippo4j.common.design.observer.Observer; -import cn.hippo4j.common.design.observer.ObserverMessage; +import cn.hippo4j.common.extension.design.AbstractSubjectCenter; +import cn.hippo4j.common.extension.design.Observer; +import cn.hippo4j.common.extension.design.ObserverMessage; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Joiner; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java index e157d91b..21d8256c 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/LongPollingService.java @@ -22,7 +22,6 @@ import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.MapUtil; import cn.hippo4j.common.toolkit.Md5Util; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.common.web.base.Results; import cn.hippo4j.config.event.AbstractEvent; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.notify.NotifyCenter; @@ -30,6 +29,7 @@ import cn.hippo4j.config.notify.listener.AbstractSubscriber; import cn.hippo4j.config.toolkit.ConfigExecutor; import cn.hippo4j.config.toolkit.Md5ConfigUtil; import cn.hippo4j.config.toolkit.RequestUtil; +import cn.hippo4j.server.common.base.Results; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.Pair; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java index c9299640..3d69cd56 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java @@ -19,14 +19,14 @@ package cn.hippo4j.config.service; import cn.hippo4j.adapter.base.ThreadPoolAdapterCacheConfig; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; -import cn.hippo4j.common.design.observer.AbstractSubjectCenter; -import cn.hippo4j.common.design.observer.Observer; -import cn.hippo4j.common.design.observer.ObserverMessage; +import cn.hippo4j.common.extension.design.AbstractSubjectCenter; +import cn.hippo4j.common.extension.design.Observer; +import cn.hippo4j.common.extension.design.ObserverMessage; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterReqDTO; import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterRespDTO; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/HisRunDataService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/HisRunDataService.java index 2c3a8294..399516d4 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/HisRunDataService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/HisRunDataService.java @@ -19,7 +19,7 @@ package cn.hippo4j.config.service.biz; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageWrapper; -import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.model.HisRunDataInfo; import cn.hippo4j.config.model.biz.monitor.MonitorActiveRespDTO; import cn.hippo4j.config.model.biz.monitor.MonitorQueryReqDTO; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModificationVerifyService.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModificationVerifyService.java index 6648b322..62315301 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModificationVerifyService.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModificationVerifyService.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.service.biz.impl; -import cn.hippo4j.common.enums.VerifyEnum; +import cn.hippo4j.common.extension.enums.VerifyEnum; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.ConditionUtil; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index a9b56bba..4da2b698 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -18,7 +18,7 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.model.register.notify.DynamicThreadPoolRegisterServerNotifyParameter; @@ -31,7 +31,6 @@ import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Md5Util; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.UserContext; -import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.mapper.ConfigInfoMapper; import cn.hippo4j.config.mapper.ConfigInstanceMapper; @@ -47,6 +46,7 @@ import cn.hippo4j.config.service.biz.ItemService; import cn.hippo4j.config.service.biz.NotifyService; import cn.hippo4j.config.service.biz.OperationLogService; import cn.hippo4j.config.service.biz.TenantService; +import cn.hippo4j.server.common.base.exception.ServiceException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java index 165ada9b..385ccbd3 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java @@ -23,8 +23,7 @@ import cn.hippo4j.common.monitor.RuntimeMessage; import cn.hippo4j.common.toolkit.DateUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.MessageConvert; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.config.ServerBootstrapProperties; import cn.hippo4j.config.mapper.HisRunDataMapper; import cn.hippo4j.config.model.HisRunDataInfo; @@ -35,6 +34,7 @@ import cn.hippo4j.config.monitor.QueryMonitorExecuteChoose; import cn.hippo4j.config.service.ConfigCacheService; import cn.hippo4j.config.service.biz.HisRunDataService; import cn.hippo4j.common.toolkit.BeanUtil; +import cn.hippo4j.server.common.base.Results; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java index d0eab4ad..58ff5852 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java @@ -18,7 +18,7 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.mapper.ItemInfoMapper; import cn.hippo4j.config.model.ItemInfo; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java index 5696cb0c..6cab4a76 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java @@ -17,12 +17,11 @@ package cn.hippo4j.config.service.biz.impl; -import cn.hippo4j.common.enums.EnableEnum; +import cn.hippo4j.common.extension.enums.EnableEnum; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.config.mapper.NotifyInfoMapper; import cn.hippo4j.config.model.NotifyInfo; import cn.hippo4j.config.model.biz.notify.NotifyListRespDTO; @@ -31,6 +30,7 @@ import cn.hippo4j.config.model.biz.notify.NotifyReqDTO; import cn.hippo4j.config.model.biz.notify.NotifyRespDTO; import cn.hippo4j.config.service.biz.NotifyService; import cn.hippo4j.common.toolkit.BeanUtil; +import cn.hippo4j.server.common.base.exception.ServiceException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java index de3d32dd..69af1375 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.service.biz.impl; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.mapper.TenantInfoMapper; diff --git a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java index 97bd068d..a0e79497 100644 --- a/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java +++ b/threadpool/server/config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java @@ -18,7 +18,7 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.common.constant.ConfigModifyTypeConstants; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/config/GlobalExceptionHandler.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/config/GlobalExceptionHandler.java index 9b0ab566..cf91bcb4 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/config/GlobalExceptionHandler.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/config/GlobalExceptionHandler.java @@ -19,10 +19,10 @@ package cn.hippo4j.console.config; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.exception.AbstractException; -import cn.hippo4j.common.web.exception.ServiceException; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; +import cn.hippo4j.server.common.base.exception.AbstractException; +import cn.hippo4j.server.common.base.exception.ServiceException; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java index 13467a96..25bafa05 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ClientCloseHookController.java @@ -20,8 +20,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.api.ClientCloseHookExecute; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ConfigVerifyController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ConfigVerifyController.java index 1d58b101..5337751d 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ConfigVerifyController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ConfigVerifyController.java @@ -20,14 +20,14 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.toolkit.ConditionUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.config.model.biz.threadpool.ConfigModificationQueryRespDTO; import cn.hippo4j.config.model.biz.threadpool.ConfigModifyVerifyReqDTO; import cn.hippo4j.config.model.biz.threadpool.ThreadPoolQueryReqDTO; import cn.hippo4j.config.service.biz.ConfigModificationQueryService; import cn.hippo4j.config.service.biz.ConfigModificationVerifyService; import cn.hippo4j.config.verify.ConfigModificationVerifyServiceChoose; +import cn.hippo4j.server.common.base.Results; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/DashboardController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/DashboardController.java index db705ae8..7e0c3629 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/DashboardController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/DashboardController.java @@ -18,21 +18,21 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; import cn.hippo4j.console.model.ChartInfo; import cn.hippo4j.console.model.LineChartInfo; import cn.hippo4j.console.model.PieChartInfo; import cn.hippo4j.console.model.RankingChart; import cn.hippo4j.console.model.TenantChart; import cn.hippo4j.console.service.DashboardService; +import cn.hippo4j.server.common.base.Results; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * Dash board controller. + * Dashboard controller. */ @RestController @AllArgsConstructor diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/HealthCheckController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/HealthCheckController.java index 3ba4ef60..e5101d10 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/HealthCheckController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/HealthCheckController.java @@ -18,8 +18,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ItemController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ItemController.java index 828120fb..7c4e3420 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ItemController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ItemController.java @@ -18,8 +18,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.biz.item.ItemQueryReqDTO; import cn.hippo4j.config.model.biz.item.ItemRespDTO; import cn.hippo4j.config.model.biz.item.ItemSaveReqDTO; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/LogRecordController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/LogRecordController.java index de972232..52cd33f2 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/LogRecordController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/LogRecordController.java @@ -18,8 +18,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.biz.log.LogRecordQueryReqDTO; import cn.hippo4j.config.model.biz.log.LogRecordRespDTO; import cn.hippo4j.config.service.biz.OperationLogService; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/NotifyController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/NotifyController.java index c4710d3f..a9f4ca85 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/NotifyController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/NotifyController.java @@ -18,8 +18,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.biz.notify.NotifyListRespDTO; import cn.hippo4j.config.model.biz.notify.NotifyQueryReqDTO; import cn.hippo4j.config.model.biz.notify.NotifyReqDTO; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/TenantController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/TenantController.java index 0040f5e7..d9933920 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/TenantController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/TenantController.java @@ -18,8 +18,8 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.biz.tenant.TenantQueryReqDTO; import cn.hippo4j.config.model.biz.tenant.TenantRespDTO; import cn.hippo4j.config.model.biz.tenant.TenantSaveReqDTO; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java index bb0094b2..1cd0e43c 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolAdapterController.java @@ -22,8 +22,8 @@ import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterReqDTO; import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterRespDTO; import cn.hippo4j.config.model.biz.threadpool.ConfigModifySaveReqDTO; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java index 95143807..8084b50a 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java @@ -25,9 +25,8 @@ import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.exception.ErrorCodeEnum; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.model.CacheItem; import cn.hippo4j.config.model.biz.threadpool.ConfigModifySaveReqDTO; import cn.hippo4j.config.model.biz.threadpool.ThreadPoolDelReqDTO; @@ -42,6 +41,7 @@ import cn.hippo4j.console.model.WebThreadPoolReqDTO; import cn.hippo4j.console.model.WebThreadPoolRespDTO; import cn.hippo4j.discovery.core.BaseInstanceRegistry; import cn.hippo4j.discovery.core.Lease; +import cn.hippo4j.server.common.base.exception.ErrorCodeEnum; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/UserController.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/UserController.java index 62c9748d..ed54851e 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/UserController.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/controller/UserController.java @@ -26,8 +26,8 @@ import cn.hippo4j.auth.security.AuthManager; import cn.hippo4j.auth.service.UserService; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.TokenInfo; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.common.model.Result; +import cn.hippo4j.server.common.base.Results; import cn.hippo4j.config.service.biz.TenantService; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; diff --git a/threadpool/server/console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java b/threadpool/server/console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java index 75035031..1d079044 100644 --- a/threadpool/server/console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java +++ b/threadpool/server/console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java @@ -17,7 +17,7 @@ package cn.hippo4j.console.service.impl; -import cn.hippo4j.common.enums.DelEnum; +import cn.hippo4j.common.extension.enums.DelEnum; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.DateUtil; diff --git a/threadpool/server/discovery/pom.xml b/threadpool/server/discovery/pom.xml index 42894bb4..a40cb7bb 100644 --- a/threadpool/server/discovery/pom.xml +++ b/threadpool/server/discovery/pom.xml @@ -27,5 +27,10 @@ hippo4j-threadpool-infra-common ${project.version} + + cn.hippo4j + hippo4j-threadpool-server-common + ${project.version} + diff --git a/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/controller/ApplicationController.java b/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/controller/ApplicationController.java index 089ed82a..d3d59617 100644 --- a/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/controller/ApplicationController.java +++ b/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/controller/ApplicationController.java @@ -18,11 +18,11 @@ package cn.hippo4j.discovery.controller; import cn.hippo4j.common.model.InstanceInfo; -import cn.hippo4j.common.web.base.Result; -import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.exception.ErrorCodeEnum; +import cn.hippo4j.common.model.Result; import cn.hippo4j.discovery.core.InstanceRegistry; import cn.hippo4j.discovery.core.Lease; +import cn.hippo4j.server.common.base.Results; +import cn.hippo4j.server.common.base.exception.ErrorCodeEnum; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; diff --git a/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java b/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java index 54bf589b..3c05f901 100644 --- a/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java +++ b/threadpool/server/discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java @@ -17,8 +17,8 @@ package cn.hippo4j.discovery.core; -import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; -import cn.hippo4j.common.design.observer.AbstractSubjectCenter; +import cn.hippo4j.common.executor.ThreadFactoryBuilder; +import cn.hippo4j.common.extension.design.AbstractSubjectCenter; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.model.InstanceInfo.InstanceStatus; import cn.hippo4j.common.toolkit.CollectionUtil; diff --git a/threadpool/server/pom.xml b/threadpool/server/pom.xml index 07d2da69..786e33d9 100644 --- a/threadpool/server/pom.xml +++ b/threadpool/server/pom.xml @@ -20,5 +20,6 @@ config console discovery + common From 53e1de5eee96406e958ca556fed89d2b76cf47d4 Mon Sep 17 00:00:00 2001 From: yanrongzhen Date: Sat, 20 May 2023 09:41:02 +0800 Subject: [PATCH 21/58] Refactor agent module directory structure. (#1306) --- .gitignore | 2 +- .../threadpool => agent}/config/agent.config | 0 .../dist-material/LICENSE | 0 .../threadpool => agent}/dist-material/NOTICE | 0 .../hippo4j-agent-bootstrap/pom.xml | 16 +++++++------- .../hippo4j/agent/bootstrap/Hippo4jAgent.java | 0 .../hippo4j-agent-core/pom.xml | 2 +- .../cn/hippo4j/agent/core/base64/Base64.java | 0 .../boot/AgentPackageNotFoundException.java | 0 .../agent/core/boot/AgentPackagePath.java | 0 .../hippo4j/agent/core/boot/BootService.java | 0 .../agent/core/boot/DefaultImplementor.java | 0 .../core/boot/DefaultNamedThreadFactory.java | 0 .../agent/core/boot/OverrideImplementor.java | 0 .../hippo4j/agent/core/boot/PluginConfig.java | 0 .../core/boot/ServiceConflictException.java | 0 .../agent/core/boot/ServiceManager.java | 0 .../boot/SpringBootConfigInitializer.java | 0 .../agent/core/boot/SpringBootConfigNode.java | 0 .../cn/hippo4j/agent/core/conf/Config.java | 0 .../core/conf/ConfigNotFoundException.java | 0 .../cn/hippo4j/agent/core/conf/Constants.java | 0 .../conf/RuntimeContextConfiguration.java | 0 .../core/conf/SnifferConfigInitializer.java | 0 .../dynamic/AgentConfigChangeWatcher.java | 0 .../core/jvm/LoadedLibraryCollector.java | 0 .../hippo4j/agent/core/logging/api/ILog.java | 0 .../agent/core/logging/api/LogManager.java | 0 .../agent/core/logging/api/LogResolver.java | 0 .../agent/core/logging/api/NoopLogger.java | 0 .../core/logging/core/AbstractLogger.java | 0 .../agent/core/logging/core/Converter.java | 0 .../agent/core/logging/core/FileWriter.java | 0 .../agent/core/logging/core/IWriter.java | 0 .../core/logging/core/JsonLogResolver.java | 0 .../agent/core/logging/core/JsonLogger.java | 0 .../agent/core/logging/core/LogEvent.java | 0 .../agent/core/logging/core/LogLevel.java | 0 .../core/logging/core/LogMessageHolder.java | 0 .../agent/core/logging/core/LogOutput.java | 0 .../agent/core/logging/core/Parser.java | 0 .../core/logging/core/PatternLogResolver.java | 0 .../core/logging/core/PatternLogger.java | 0 .../agent/core/logging/core/ResolverType.java | 0 .../core/logging/core/SystemOutWriter.java | 0 .../core/logging/core/WriterFactory.java | 0 .../core/converters/AgentNameConverter.java | 0 .../core/converters/ClassConverter.java | 0 .../core/converters/DateConverter.java | 0 .../core/converters/LevelConverter.java | 0 .../core/converters/LiteralConverter.java | 0 .../core/converters/MessageConverter.java | 0 .../core/converters/ThreadConverter.java | 0 .../core/converters/ThrowableConverter.java | 0 .../java/cn/hippo4j/agent/core/os/OSUtil.java | 0 .../hippo4j/agent/core/os/ProcessorUtil.java | 0 .../AbstractClassEnhancePluginDefine.java | 0 .../core/plugin/ByteBuddyCoreClasses.java | 0 .../core/plugin/DynamicPluginLoader.java | 0 .../agent/core/plugin/EnhanceContext.java | 0 .../core/plugin/InstrumentDebuggingClass.java | 0 .../agent/core/plugin/PluginBootstrap.java | 0 .../hippo4j/agent/core/plugin/PluginCfg.java | 0 .../agent/core/plugin/PluginDefine.java | 0 .../agent/core/plugin/PluginException.java | 0 .../agent/core/plugin/PluginFinder.java | 0 .../core/plugin/PluginResourcesResolver.java | 0 .../agent/core/plugin/PluginSelector.java | 0 .../agent/core/plugin/WitnessFinder.java | 0 .../agent/core/plugin/WitnessMethod.java | 0 .../bootstrap/BootstrapInstrumentBoost.java | 0 .../bootstrap/BootstrapPluginLogBridge.java | 0 .../core/plugin/bootstrap/IBootstrapLog.java | 0 .../template/ConstructorInterTemplate.java | 0 .../template/InstanceMethodInterTemplate.java | 0 ...ceMethodInterWithOverrideArgsTemplate.java | 0 .../template/StaticMethodInterTemplate.java | 0 ...icMethodInterWithOverrideArgsTemplate.java | 0 .../v2/InstanceMethodInterV2Template.java | 0 ...MethodInterV2WithOverrideArgsTemplate.java | 0 .../v2/StaticMethodInterV2Template.java | 0 ...MethodInterV2WithOverrideArgsTemplate.java | 0 .../plugin/bytebuddy/AbstractJunction.java | 0 .../bytebuddy/AnnotationTypeNameMatch.java | 0 .../bytebuddy/ArgumentTypeNameMatch.java | 0 .../bytebuddy/ArrayTypeNameChecker.java | 0 .../CacheableTransformerDecorator.java | 0 .../core/plugin/bytebuddy/ClassCacheMode.java | 0 .../plugin/bytebuddy/ReturnTypeNameMatch.java | 0 .../IllegalPluginDefineException.java | 0 .../ConstructorInterceptPoint.java | 0 ...DeclaredInstanceMethodsInterceptPoint.java | 0 .../plugin/interceptor/EnhanceException.java | 0 .../InstanceMethodsInterceptPoint.java | 0 .../StaticMethodsInterceptPoint.java | 0 .../enhance/BootstrapInterRuntimeAssist.java | 0 .../enhance/ClassEnhancePluginDefine.java | 0 ...assInstanceMethodsEnhancePluginDefine.java | 0 ...ClassStaticMethodsEnhancePluginDefine.java | 0 .../interceptor/enhance/ConstructorInter.java | 0 .../interceptor/enhance/EnhancedInstance.java | 0 .../interceptor/enhance/InstMethodsInter.java | 0 .../InstMethodsInterWithOverrideArgs.java | 0 .../InstanceConstructorInterceptor.java | 0 .../InstanceMethodsAroundInterceptor.java | 0 .../enhance/MethodInterceptResult.java | 0 .../interceptor/enhance/OverrideCallable.java | 0 .../StaticMethodsAroundInterceptor.java | 0 .../enhance/StaticMethodsInter.java | 0 .../StaticMethodsInterWithOverrideArgs.java | 0 .../v2/ClassEnhancePluginDefineV2.java | 0 ...sInstanceMethodsEnhancePluginDefineV2.java | 0 ...assStaticMethodsEnhancePluginDefineV2.java | 0 .../enhance/v2/InstMethodsInterV2.java | 0 .../InstMethodsInterV2WithOverrideArgs.java | 0 .../InstanceMethodsAroundInterceptorV2.java | 0 .../enhance/v2/MethodInvocationContext.java | 0 .../v2/StaticMethodsAroundInterceptorV2.java | 0 .../enhance/v2/StaticMethodsInterV2.java | 0 .../StaticMethodsInterV2WithOverrideArgs.java | 0 .../v2/ConstructorInterceptV2Point.java | 0 ...claredInstanceMethodsInterceptV2Point.java | 0 .../v2/InstanceMethodsInterceptV2Point.java | 0 .../v2/StaticMethodsInterceptV2Point.java | 0 .../plugin/jdk9module/JDK9ModuleExporter.java | 0 .../core/plugin/loader/AgentClassLoader.java | 0 .../plugin/loader/InstrumentationLoader.java | 0 .../loader/InterceptorInstanceLoader.java | 0 .../plugin/match/ClassAnnotationMatch.java | 0 .../agent/core/plugin/match/ClassMatch.java | 0 .../core/plugin/match/HierarchyMatch.java | 0 .../core/plugin/match/IndirectMatch.java | 0 .../plugin/match/MethodAnnotationMatch.java | 0 .../MethodInheritanceAnnotationMatcher.java | 0 .../plugin/match/MultiClassNameMatch.java | 0 .../agent/core/plugin/match/NameMatch.java | 0 .../agent/core/plugin/match/PrefixMatch.java | 0 .../plugin/match/ProtectiveShieldMatcher.java | 0 .../agent/core/plugin/match/RegexMatch.java | 0 .../plugin/match/logical/LogicalAndMatch.java | 0 .../match/logical/LogicalMatchOperation.java | 0 .../plugin/match/logical/LogicalOrMatch.java | 0 .../AgentThreadPoolExecutorHolder.java | 0 .../AgentThreadPoolInstanceRegistry.java | 0 .../core/util/AgentThreadPoolConstants.java | 0 .../agent/core/util/CollectionUtil.java | 0 .../agent/core/util/ConfigInitializer.java | 0 .../agent/core/util/CustomizeExpression.java | 0 .../agent/core/util/ExecutorNameUtil.java | 0 .../cn/hippo4j/agent/core/util/FileUtils.java | 0 .../cn/hippo4j/agent/core/util/IOUtils.java | 0 .../cn/hippo4j/agent/core/util/Length.java | 0 .../hippo4j/agent/core/util/MethodUtil.java | 0 .../util/PlaceholderConfigurerSupport.java | 0 .../agent/core/util/PrivateKeyUtil.java | 0 .../core/util/PropertyPlaceholderHelper.java | 0 .../hippo4j/agent/core/util/ReflectUtil.java | 0 .../cn/hippo4j/agent/core/util/RegexUtil.java | 0 .../util/RunnableWithExceptionProtection.java | 0 .../hippo4j/agent/core/util/StringUtil.java | 0 .../core/util/ThreadPoolPropertyKey.java | 0 .../apollo-plugin/pom.xml | 0 .../apollo/boot/ApolloPluginBootService.java | 0 .../apollo/define/ApolloInstrumentation.java | 0 .../DefaultConfigConstructorInterceptor.java | 0 .../cn.hippo4j.agent.core.boot.BootService | 0 .../src/main/resources/hippo4j-plugin.def | 0 .../hippo4j-agent-plugin/pom.xml | 4 ++-- .../spring-plugins/pom.xml | 0 .../spring-boot-1.x-plugin/pom.xml | 0 ...ynamicThreadPoolChangeHandlerSpring1x.java | 0 ...tPublishingRunListenerInstrumentation.java | 0 .../EventPublishingFinishedInterceptor.java | 0 .../src/main/resources/hippo4j-plugin.def | 0 .../spring-boot-2.x-plugin/pom.xml | 0 ...ynamicThreadPoolChangeHandlerSpring2x.java | 0 ...tPublishingRunListenerInstrumentation.java | 0 .../EventPublishingStartedInterceptor.java | 0 .../src/main/resources/hippo4j-plugin.def | 0 .../spring-plugin-common/pom.xml | 0 .../spring/common/conf/SpringBootConfig.java | 0 ...istenerEnvironmentPreparedInterceptor.java | 0 ...tDynamicThreadPoolChangeHandlerSpring.java | 0 .../support/SpringEnvironmentSupport.java | 0 .../support/SpringPropertiesLoader.java | 0 .../SpringThreadPoolRegisterSupport.java | 0 .../thread-pool-plugin/pom.xml | 0 .../ThreadPoolExecutorInstrumentation.java | 0 ...lExecutorConstructorMethodInterceptor.java | 0 .../src/main/resources/hippo4j-plugin.def | 0 {agents/threadpool => agent}/pom.xml | 6 +++--- agents/pom.xml | 21 ------------------- pom.xml | 2 +- 193 files changed, 16 insertions(+), 37 deletions(-) rename {agents/threadpool => agent}/config/agent.config (100%) rename {agents/threadpool => agent}/dist-material/LICENSE (100%) rename {agents/threadpool => agent}/dist-material/NOTICE (100%) rename {agents/threadpool => agent}/hippo4j-agent-bootstrap/pom.xml (94%) rename {agents/threadpool => agent}/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/pom.xml (99%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/base64/Base64.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackageNotFoundException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackagePath.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/BootService.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultImplementor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultNamedThreadFactory.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/OverrideImplementor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/PluginConfig.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceConflictException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceManager.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigInitializer.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigNode.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/ConfigNotFoundException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Constants.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/RuntimeContextConfiguration.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/SnifferConfigInitializer.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/dynamic/AgentConfigChangeWatcher.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/jvm/LoadedLibraryCollector.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/ILog.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogManager.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogResolver.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/NoopLogger.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/AbstractLogger.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Converter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/FileWriter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/IWriter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogResolver.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogger.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogEvent.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogLevel.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogMessageHolder.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogOutput.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Parser.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogResolver.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogger.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/ResolverType.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/SystemOutWriter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/WriterFactory.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/AgentNameConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ClassConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/DateConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LevelConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LiteralConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/MessageConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThreadConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThrowableConverter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/OSUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/ProcessorUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/AbstractClassEnhancePluginDefine.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/ByteBuddyCoreClasses.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/DynamicPluginLoader.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/EnhanceContext.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/InstrumentDebuggingClass.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginBootstrap.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginCfg.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginDefine.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginFinder.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginResourcesResolver.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginSelector.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessFinder.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessMethod.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapPluginLogBridge.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/IBootstrapLog.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/ConstructorInterTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterWithOverrideArgsTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterWithOverrideArgsTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2Template.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2WithOverrideArgsTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2Template.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2WithOverrideArgsTemplate.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AbstractJunction.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AnnotationTypeNameMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArgumentTypeNameMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArrayTypeNameChecker.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/CacheableTransformerDecorator.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ClassCacheMode.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ReturnTypeNameMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/exception/IllegalPluginDefineException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/ConstructorInterceptPoint.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/DeclaredInstanceMethodsInterceptPoint.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/EnhanceException.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/BootstrapInterRuntimeAssist.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsEnhancePluginDefine.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ConstructorInter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/EnhancedInstance.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/OverrideCallable.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassEnhancePluginDefineV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassInstanceMethodsEnhancePluginDefineV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassStaticMethodsEnhancePluginDefineV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2WithOverrideArgs.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstanceMethodsAroundInterceptorV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/MethodInvocationContext.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsAroundInterceptorV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2WithOverrideArgs.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/ConstructorInterceptV2Point.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/DeclaredInstanceMethodsInterceptV2Point.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/InstanceMethodsInterceptV2Point.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/StaticMethodsInterceptV2Point.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/jdk9module/JDK9ModuleExporter.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/AgentClassLoader.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InstrumentationLoader.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InterceptorInstanceLoader.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassAnnotationMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/HierarchyMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/IndirectMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodAnnotationMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodInheritanceAnnotationMatcher.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MultiClassNameMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/NameMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/PrefixMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ProtectiveShieldMatcher.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/RegexMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalAndMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalMatchOperation.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalOrMatch.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/AgentThreadPoolConstants.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CollectionUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ConfigInitializer.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CustomizeExpression.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ExecutorNameUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/FileUtils.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/IOUtils.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/Length.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/MethodUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PlaceholderConfigurerSupport.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PrivateKeyUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PropertyPlaceholderHelper.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ReflectUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RegexUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RunnableWithExceptionProtection.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/StringUtil.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/pom.xml (97%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/thread-pool-plugin/pom.xml (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java (100%) rename {agents/threadpool => agent}/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def (100%) rename {agents/threadpool => agent}/pom.xml (99%) delete mode 100644 agents/pom.xml diff --git a/.gitignore b/.gitignore index a23b0ea7..b43da0e6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ target/ !**/dist/ ### Agent ### -agent-dist/ +hippo4j-agent/ **/dependency-reduced-pom.xml ### STS ### diff --git a/agents/threadpool/config/agent.config b/agent/config/agent.config similarity index 100% rename from agents/threadpool/config/agent.config rename to agent/config/agent.config diff --git a/agents/threadpool/dist-material/LICENSE b/agent/dist-material/LICENSE similarity index 100% rename from agents/threadpool/dist-material/LICENSE rename to agent/dist-material/LICENSE diff --git a/agents/threadpool/dist-material/NOTICE b/agent/dist-material/NOTICE similarity index 100% rename from agents/threadpool/dist-material/NOTICE rename to agent/dist-material/NOTICE diff --git a/agents/threadpool/hippo4j-agent-bootstrap/pom.xml b/agent/hippo4j-agent-bootstrap/pom.xml similarity index 94% rename from agents/threadpool/hippo4j-agent-bootstrap/pom.xml rename to agent/hippo4j-agent-bootstrap/pom.xml index 6dddcc4f..8504850d 100644 --- a/agents/threadpool/hippo4j-agent-bootstrap/pom.xml +++ b/agent/hippo4j-agent-bootstrap/pom.xml @@ -5,7 +5,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-agent + hippo4j-agent ${revision} @@ -96,7 +96,7 @@ - + @@ -108,12 +108,12 @@ - - - - - - + + + + + + diff --git a/agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java b/agent/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java similarity index 100% rename from agents/threadpool/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java rename to agent/hippo4j-agent-bootstrap/src/main/java/cn/hippo4j/agent/bootstrap/Hippo4jAgent.java diff --git a/agents/threadpool/hippo4j-agent-core/pom.xml b/agent/hippo4j-agent-core/pom.xml similarity index 99% rename from agents/threadpool/hippo4j-agent-core/pom.xml rename to agent/hippo4j-agent-core/pom.xml index b299e9dc..e020e562 100644 --- a/agents/threadpool/hippo4j-agent-core/pom.xml +++ b/agent/hippo4j-agent-core/pom.xml @@ -5,7 +5,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-agent + hippo4j-agent ${revision} diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/base64/Base64.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/base64/Base64.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/base64/Base64.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/base64/Base64.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackageNotFoundException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackageNotFoundException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackageNotFoundException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackageNotFoundException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackagePath.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackagePath.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackagePath.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/AgentPackagePath.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/BootService.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/BootService.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/BootService.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/BootService.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultImplementor.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultImplementor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultImplementor.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultImplementor.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultNamedThreadFactory.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultNamedThreadFactory.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultNamedThreadFactory.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/DefaultNamedThreadFactory.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/OverrideImplementor.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/OverrideImplementor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/OverrideImplementor.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/OverrideImplementor.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/PluginConfig.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/PluginConfig.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/PluginConfig.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/PluginConfig.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceConflictException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceConflictException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceConflictException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceConflictException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceManager.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceManager.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceManager.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/ServiceManager.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigInitializer.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigInitializer.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigInitializer.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigInitializer.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigNode.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigNode.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigNode.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/boot/SpringBootConfigNode.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/ConfigNotFoundException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/ConfigNotFoundException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/ConfigNotFoundException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/ConfigNotFoundException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Constants.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Constants.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Constants.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Constants.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/RuntimeContextConfiguration.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/RuntimeContextConfiguration.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/RuntimeContextConfiguration.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/RuntimeContextConfiguration.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/SnifferConfigInitializer.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/SnifferConfigInitializer.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/SnifferConfigInitializer.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/SnifferConfigInitializer.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/dynamic/AgentConfigChangeWatcher.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/dynamic/AgentConfigChangeWatcher.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/dynamic/AgentConfigChangeWatcher.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/dynamic/AgentConfigChangeWatcher.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/jvm/LoadedLibraryCollector.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/jvm/LoadedLibraryCollector.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/jvm/LoadedLibraryCollector.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/jvm/LoadedLibraryCollector.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/ILog.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/ILog.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/ILog.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/ILog.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogManager.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogManager.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogManager.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogManager.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogResolver.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogResolver.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogResolver.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/LogResolver.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/NoopLogger.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/NoopLogger.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/NoopLogger.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/api/NoopLogger.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/AbstractLogger.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/AbstractLogger.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/AbstractLogger.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/AbstractLogger.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Converter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Converter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Converter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Converter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/FileWriter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/FileWriter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/FileWriter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/FileWriter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/IWriter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/IWriter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/IWriter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/IWriter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogResolver.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogResolver.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogResolver.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogResolver.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogger.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogger.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogger.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/JsonLogger.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogEvent.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogEvent.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogEvent.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogEvent.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogLevel.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogLevel.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogLevel.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogLevel.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogMessageHolder.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogMessageHolder.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogMessageHolder.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogMessageHolder.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogOutput.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogOutput.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogOutput.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/LogOutput.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Parser.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Parser.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Parser.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/Parser.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogResolver.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogResolver.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogResolver.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogResolver.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogger.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogger.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogger.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/PatternLogger.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/ResolverType.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/ResolverType.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/ResolverType.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/ResolverType.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/SystemOutWriter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/SystemOutWriter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/SystemOutWriter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/SystemOutWriter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/WriterFactory.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/WriterFactory.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/WriterFactory.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/WriterFactory.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/AgentNameConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/AgentNameConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/AgentNameConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/AgentNameConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ClassConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ClassConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ClassConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ClassConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/DateConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/DateConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/DateConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/DateConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LevelConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LevelConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LevelConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LevelConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LiteralConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LiteralConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LiteralConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/LiteralConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/MessageConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/MessageConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/MessageConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/MessageConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThreadConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThreadConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThreadConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThreadConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThrowableConverter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThrowableConverter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThrowableConverter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/logging/core/converters/ThrowableConverter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/OSUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/OSUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/OSUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/OSUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/ProcessorUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/ProcessorUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/ProcessorUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/os/ProcessorUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/AbstractClassEnhancePluginDefine.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/AbstractClassEnhancePluginDefine.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/AbstractClassEnhancePluginDefine.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/AbstractClassEnhancePluginDefine.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/ByteBuddyCoreClasses.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/ByteBuddyCoreClasses.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/ByteBuddyCoreClasses.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/ByteBuddyCoreClasses.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/DynamicPluginLoader.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/DynamicPluginLoader.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/DynamicPluginLoader.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/DynamicPluginLoader.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/EnhanceContext.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/EnhanceContext.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/EnhanceContext.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/EnhanceContext.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/InstrumentDebuggingClass.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/InstrumentDebuggingClass.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/InstrumentDebuggingClass.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/InstrumentDebuggingClass.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginBootstrap.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginBootstrap.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginBootstrap.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginBootstrap.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginCfg.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginCfg.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginCfg.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginCfg.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginDefine.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginDefine.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginDefine.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginDefine.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginFinder.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginFinder.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginFinder.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginFinder.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginResourcesResolver.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginResourcesResolver.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginResourcesResolver.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginResourcesResolver.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginSelector.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginSelector.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginSelector.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/PluginSelector.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessFinder.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessFinder.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessFinder.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessFinder.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessMethod.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessMethod.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessMethod.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/WitnessMethod.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapPluginLogBridge.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapPluginLogBridge.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapPluginLogBridge.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/BootstrapPluginLogBridge.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/IBootstrapLog.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/IBootstrapLog.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/IBootstrapLog.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/IBootstrapLog.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/ConstructorInterTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/ConstructorInterTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/ConstructorInterTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/ConstructorInterTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterWithOverrideArgsTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterWithOverrideArgsTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterWithOverrideArgsTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/InstanceMethodInterWithOverrideArgsTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterWithOverrideArgsTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterWithOverrideArgsTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterWithOverrideArgsTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/StaticMethodInterWithOverrideArgsTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2Template.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2Template.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2Template.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2Template.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2WithOverrideArgsTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2WithOverrideArgsTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2WithOverrideArgsTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/InstanceMethodInterV2WithOverrideArgsTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2Template.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2Template.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2Template.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2Template.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2WithOverrideArgsTemplate.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2WithOverrideArgsTemplate.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2WithOverrideArgsTemplate.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bootstrap/template/v2/StaticMethodInterV2WithOverrideArgsTemplate.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AbstractJunction.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AbstractJunction.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AbstractJunction.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AbstractJunction.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AnnotationTypeNameMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AnnotationTypeNameMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AnnotationTypeNameMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/AnnotationTypeNameMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArgumentTypeNameMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArgumentTypeNameMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArgumentTypeNameMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArgumentTypeNameMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArrayTypeNameChecker.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArrayTypeNameChecker.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArrayTypeNameChecker.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ArrayTypeNameChecker.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/CacheableTransformerDecorator.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/CacheableTransformerDecorator.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/CacheableTransformerDecorator.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/CacheableTransformerDecorator.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ClassCacheMode.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ClassCacheMode.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ClassCacheMode.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ClassCacheMode.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ReturnTypeNameMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ReturnTypeNameMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ReturnTypeNameMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/bytebuddy/ReturnTypeNameMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/exception/IllegalPluginDefineException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/exception/IllegalPluginDefineException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/exception/IllegalPluginDefineException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/exception/IllegalPluginDefineException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/ConstructorInterceptPoint.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/ConstructorInterceptPoint.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/ConstructorInterceptPoint.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/ConstructorInterceptPoint.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/DeclaredInstanceMethodsInterceptPoint.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/DeclaredInstanceMethodsInterceptPoint.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/DeclaredInstanceMethodsInterceptPoint.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/DeclaredInstanceMethodsInterceptPoint.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/EnhanceException.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/EnhanceException.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/EnhanceException.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/EnhanceException.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/BootstrapInterRuntimeAssist.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/BootstrapInterRuntimeAssist.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/BootstrapInterRuntimeAssist.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/BootstrapInterRuntimeAssist.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsEnhancePluginDefine.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsEnhancePluginDefine.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsEnhancePluginDefine.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsEnhancePluginDefine.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ConstructorInter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ConstructorInter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ConstructorInter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/ConstructorInter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/EnhancedInstance.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/EnhancedInstance.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/EnhancedInstance.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/EnhancedInstance.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/OverrideCallable.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/OverrideCallable.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/OverrideCallable.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/OverrideCallable.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassEnhancePluginDefineV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassEnhancePluginDefineV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassEnhancePluginDefineV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassEnhancePluginDefineV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassInstanceMethodsEnhancePluginDefineV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassInstanceMethodsEnhancePluginDefineV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassInstanceMethodsEnhancePluginDefineV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassInstanceMethodsEnhancePluginDefineV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassStaticMethodsEnhancePluginDefineV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassStaticMethodsEnhancePluginDefineV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassStaticMethodsEnhancePluginDefineV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/ClassStaticMethodsEnhancePluginDefineV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2WithOverrideArgs.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2WithOverrideArgs.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2WithOverrideArgs.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstMethodsInterV2WithOverrideArgs.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstanceMethodsAroundInterceptorV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstanceMethodsAroundInterceptorV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstanceMethodsAroundInterceptorV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/InstanceMethodsAroundInterceptorV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/MethodInvocationContext.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/MethodInvocationContext.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/MethodInvocationContext.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/MethodInvocationContext.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsAroundInterceptorV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsAroundInterceptorV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsAroundInterceptorV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsAroundInterceptorV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2WithOverrideArgs.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2WithOverrideArgs.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2WithOverrideArgs.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/enhance/v2/StaticMethodsInterV2WithOverrideArgs.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/ConstructorInterceptV2Point.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/ConstructorInterceptV2Point.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/ConstructorInterceptV2Point.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/ConstructorInterceptV2Point.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/DeclaredInstanceMethodsInterceptV2Point.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/DeclaredInstanceMethodsInterceptV2Point.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/DeclaredInstanceMethodsInterceptV2Point.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/DeclaredInstanceMethodsInterceptV2Point.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/InstanceMethodsInterceptV2Point.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/InstanceMethodsInterceptV2Point.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/InstanceMethodsInterceptV2Point.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/InstanceMethodsInterceptV2Point.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/StaticMethodsInterceptV2Point.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/StaticMethodsInterceptV2Point.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/StaticMethodsInterceptV2Point.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/interceptor/v2/StaticMethodsInterceptV2Point.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/jdk9module/JDK9ModuleExporter.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/jdk9module/JDK9ModuleExporter.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/jdk9module/JDK9ModuleExporter.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/jdk9module/JDK9ModuleExporter.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/AgentClassLoader.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/AgentClassLoader.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/AgentClassLoader.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/AgentClassLoader.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InstrumentationLoader.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InstrumentationLoader.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InstrumentationLoader.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InstrumentationLoader.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InterceptorInstanceLoader.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InterceptorInstanceLoader.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InterceptorInstanceLoader.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/loader/InterceptorInstanceLoader.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassAnnotationMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassAnnotationMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassAnnotationMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassAnnotationMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ClassMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/HierarchyMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/HierarchyMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/HierarchyMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/HierarchyMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/IndirectMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/IndirectMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/IndirectMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/IndirectMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodAnnotationMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodAnnotationMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodAnnotationMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodAnnotationMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodInheritanceAnnotationMatcher.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodInheritanceAnnotationMatcher.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodInheritanceAnnotationMatcher.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MethodInheritanceAnnotationMatcher.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MultiClassNameMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MultiClassNameMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MultiClassNameMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/MultiClassNameMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/NameMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/NameMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/NameMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/NameMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/PrefixMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/PrefixMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/PrefixMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/PrefixMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ProtectiveShieldMatcher.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ProtectiveShieldMatcher.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ProtectiveShieldMatcher.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/ProtectiveShieldMatcher.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/RegexMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/RegexMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/RegexMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/RegexMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalAndMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalAndMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalAndMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalAndMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalMatchOperation.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalMatchOperation.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalMatchOperation.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalMatchOperation.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalOrMatch.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalOrMatch.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalOrMatch.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/plugin/match/logical/LogicalOrMatch.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/AgentThreadPoolConstants.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/AgentThreadPoolConstants.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/AgentThreadPoolConstants.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/AgentThreadPoolConstants.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CollectionUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CollectionUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CollectionUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CollectionUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ConfigInitializer.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ConfigInitializer.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ConfigInitializer.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ConfigInitializer.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CustomizeExpression.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CustomizeExpression.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CustomizeExpression.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/CustomizeExpression.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ExecutorNameUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ExecutorNameUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ExecutorNameUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ExecutorNameUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/FileUtils.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/FileUtils.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/FileUtils.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/FileUtils.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/IOUtils.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/IOUtils.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/IOUtils.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/IOUtils.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/Length.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/Length.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/Length.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/Length.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/MethodUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/MethodUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/MethodUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/MethodUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PlaceholderConfigurerSupport.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PlaceholderConfigurerSupport.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PlaceholderConfigurerSupport.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PlaceholderConfigurerSupport.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PrivateKeyUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PrivateKeyUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PrivateKeyUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PrivateKeyUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PropertyPlaceholderHelper.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PropertyPlaceholderHelper.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PropertyPlaceholderHelper.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/PropertyPlaceholderHelper.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ReflectUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ReflectUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ReflectUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ReflectUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RegexUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RegexUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RegexUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RegexUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RunnableWithExceptionProtection.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RunnableWithExceptionProtection.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RunnableWithExceptionProtection.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/RunnableWithExceptionProtection.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/StringUtil.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/StringUtil.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/StringUtil.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/StringUtil.java diff --git a/agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java similarity index 100% rename from agents/threadpool/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java rename to agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/pom.xml b/agent/hippo4j-agent-plugin/apollo-plugin/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/pom.xml rename to agent/hippo4j-agent-plugin/apollo-plugin/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService diff --git a/agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agents/threadpool/hippo4j-agent-plugin/pom.xml b/agent/hippo4j-agent-plugin/pom.xml similarity index 97% rename from agents/threadpool/hippo4j-agent-plugin/pom.xml rename to agent/hippo4j-agent-plugin/pom.xml index 0a4ed758..934aea83 100644 --- a/agents/threadpool/hippo4j-agent-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/pom.xml @@ -5,7 +5,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-agent + hippo4j-agent ${revision} @@ -23,7 +23,7 @@ net.bytebuddy ${shade.package}.${shade.net.bytebuddy.source} - ${project.build.directory}${sdk.plugin.related.dir}/../../../agent-dist + ${project.build.directory}${sdk.plugin.related.dir}/../../../hippo4j-agent ${agent.package.dest.dir}/plugins diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/conf/SpringBootConfig.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/interceptor/EventPublishingRunListenerEnvironmentPreparedInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringEnvironmentSupport.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringPropertiesLoader.java diff --git a/agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml b/agent/hippo4j-agent-plugin/thread-pool-plugin/pom.xml similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/pom.xml rename to agent/hippo4j-agent-plugin/thread-pool-plugin/pom.xml diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java b/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java rename to agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java b/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java rename to agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java diff --git a/agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agents/threadpool/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agents/threadpool/pom.xml b/agent/pom.xml similarity index 99% rename from agents/threadpool/pom.xml rename to agent/pom.xml index bd1437f8..93c5776c 100644 --- a/agents/threadpool/pom.xml +++ b/agent/pom.xml @@ -5,12 +5,12 @@ 4.0.0 cn.hippo4j - hippo4j-agents + hippo4j-all ${revision} - - hippo4j-threadpool-agent + hippo4j-agent pom + hippo4j-agent-core hippo4j-agent-plugin diff --git a/agents/pom.xml b/agents/pom.xml deleted file mode 100644 index d14ffda6..00000000 --- a/agents/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - cn.hippo4j - hippo4j-all - ${revision} - - hippo4j-agents - pom - - - true - - - - threadpool - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4a2f7683..d63fbf73 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ - agents + agent dependencies examples infra From 630e8402cd25ca004041592a7c28d20c7f410e47 Mon Sep 17 00:00:00 2001 From: pizihao <2335715300@qq.com> Date: Sat, 20 May 2023 14:23:22 +0800 Subject: [PATCH 22/58] Refactor the rpc module (#1309) --- threadpool/rpc/pom.xml | 14 +- .../java/cn/hippo4j/rpc/client/Client.java | 12 +- .../ClientSupport.java} | 77 +++++++-- .../rpc/client/NettyClientConnection.java | 118 ------------- .../java/cn/hippo4j/rpc/client/RPCClient.java | 9 +- .../{NettyEncoder.java => ObjectEncoder.java} | 4 +- .../ClientConnection.java | 16 +- .../ConnectPoolHolder.java} | 26 +-- .../ServerConnection.java} | 18 +- .../connection/SimpleClientConnection.java | 112 ++++++++++++ .../SimpleConnectPool.java} | 25 +-- .../SimpleServerConnection.java} | 45 ++--- .../hippo4j/rpc/discovery/ClassRegistry.java | 76 --------- .../rpc/discovery/DefaultInstance.java | 53 ------ .../exception/HandlerNotFoundException.java | 49 ++++++ .../OperationException.java} | 45 ++--- ...nager.java => AbstractHandlerManager.java} | 16 +- ...eHandler.java => AbstractTakeHandler.java} | 16 +- ...oolHandler.java => ClientPoolHandler.java} | 16 +- ...akeHandler.java => ClientTakeHandler.java} | 16 +- .../ErrorClientHandler.java} | 28 +-- ...keHandler.java => ErrorServerHandler.java} | 43 ++--- .../hippo4j/rpc/handler/HandlerManager.java | 3 +- .../rpc/handler/ServerBareTakeHandler.java | 61 +++++++ .../rpc/handler/ServerBiTakeHandler.java | 73 ++++++++ .../cn/hippo4j/rpc/handler/ServerHandler.java | 55 ++++++ .../rpc/handler/ServerTakeHandler.java | 71 ++++++++ .../cn/hippo4j/rpc/model/DefaultRequest.java | 40 ++--- .../cn/hippo4j/rpc/model/DefaultResponse.java | 38 ++--- .../java/cn/hippo4j/rpc/model/Request.java | 18 +- .../java/cn/hippo4j/rpc/model/Response.java | 12 +- .../java/cn/hippo4j/rpc/server/RPCServer.java | 9 +- .../ServerSupport.java} | 55 ++---- .../cn/hippo4j/rpc/support/AddressUtil.java | 54 ++++++ .../hippo4j/rpc/support/NettyProxyCenter.java | 140 --------------- .../cn/hippo4j/rpc/client/CallManager.java | 11 +- .../hippo4j/rpc/client/ClientSupportTest.java | 95 +++++++++++ .../cn/hippo4j/rpc/client/RPCClientTest.java | 161 ------------------ .../rpc/discovery/ClassRegistryTest.java | 67 -------- .../rpc/discovery/DefaultInstanceTest.java | 59 ------- .../hippo4j/rpc/discovery/InstanceModel.java | 34 ---- .../rpc/discovery/InstanceServerLoader.java | 24 --- .../discovery/InstanceServerLoaderImpl.java | 33 ---- .../discovery/SpringContextInstanceTest.java | 48 ------ .../rpc/handler/ClientPoolHandlerTest.java | 95 +++++++++++ .../rpc/handler/ConnectHandlerTest.java | 75 ++++---- .../ConnectPoolHolderTest.java} | 38 ++--- .../handler/NettyClientPoolHandlerTest.java | 155 ----------------- .../rpc/handler/ServerHandlerTest.java | 141 +++++++++++++++ .../rpc/handler/SimpleConnectPoolTest.java | 119 +++++++++++++ .../hippo4j/rpc/model/DefaultRequestTest.java | 36 ++-- .../rpc/model/DefaultResponseTest.java | 29 ++-- .../rpc/server/NettyServerConnectionTest.java | 39 +++-- .../cn/hippo4j/rpc/server/RPCServerTest.java | 91 ++-------- .../rpc/server/ServerSupportTest.java} | 32 ++-- .../hippo4j/rpc/support/AddressUtilTest.java | 52 ++++++ .../rpc/support/NettyClientSupportTest.java | 72 -------- .../rpc/support/NettyConnectPoolTest.java | 122 ------------- .../rpc/support/NettyProxyCenterTest.java | 134 --------------- .../rpc/support/NettyServerSupportTest.java | 56 ------ .../hippo4j/rpc/support/ResultHolderTest.java | 17 +- ...hippo4j.rpc.discovery.InstanceServerLoader | 18 -- 62 files changed, 1399 insertions(+), 1917 deletions(-) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{support/NettyClientSupport.java => client/ClientSupport.java} (56%) delete mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/{NettyEncoder.java => ObjectEncoder.java} (95%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{client => connection}/ClientConnection.java (67%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{support/NettyConnectPoolHolder.java => connection/ConnectPoolHolder.java} (77%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{handler/Connection.java => connection/ServerConnection.java} (84%) create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleClientConnection.java rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{support/NettyConnectPool.java => connection/SimpleConnectPool.java} (83%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{server/NettyServerConnection.java => connection/SimpleServerConnection.java} (73%) delete mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java delete mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/HandlerNotFoundException.java rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{discovery/Instance.java => exception/OperationException.java} (53%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/{AbstractNettyHandlerManager.java => AbstractHandlerManager.java} (79%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/{AbstractNettyTakeHandler.java => AbstractTakeHandler.java} (82%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/{NettyClientPoolHandler.java => ClientPoolHandler.java} (83%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/{NettyClientTakeHandler.java => ClientTakeHandler.java} (74%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{discovery/SpringContextInstance.java => handler/ErrorClientHandler.java} (56%) rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/{NettyServerTakeHandler.java => ErrorServerHandler.java} (50%) create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBareTakeHandler.java create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBiTakeHandler.java create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerHandler.java create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerTakeHandler.java rename threadpool/rpc/src/main/java/cn/hippo4j/rpc/{support/NettyServerSupport.java => server/ServerSupport.java} (55%) create mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/AddressUtil.java delete mode 100644 threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java create mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/ClientSupportTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java create mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ClientPoolHandlerTest.java rename threadpool/rpc/src/test/java/cn/hippo4j/rpc/{support/NettyConnectPoolHolderTest.java => handler/ConnectPoolHolderTest.java} (61%) delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java create mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ServerHandlerTest.java create mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/SimpleConnectPoolTest.java rename threadpool/rpc/src/{main/java/cn/hippo4j/rpc/server/ServerConnection.java => test/java/cn/hippo4j/rpc/server/ServerSupportTest.java} (58%) create mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/AddressUtilTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyClientSupportTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java delete mode 100644 threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyServerSupportTest.java delete mode 100644 threadpool/rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader diff --git a/threadpool/rpc/pom.xml b/threadpool/rpc/pom.xml index c6f0d91b..ca4a41a7 100644 --- a/threadpool/rpc/pom.xml +++ b/threadpool/rpc/pom.xml @@ -11,18 +11,14 @@ - cn.hippo4j - hippo4j-threadpool-infra-common - ${project.version} - - - org.springframework.boot - spring-boot-starter-test + junit + junit test - org.springframework - spring-web + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} org.projectlombok diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java index c3da92b0..aa5c90ce 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/Client.java @@ -30,8 +30,7 @@ import java.io.Closeable; * able to communicate with the server. Wait for the server's Response ({@link Response}) *

METHOD

*
    - *
  • {@link #connection(Request)}
  • - *
  • {@link #isActive()}
  • + *
  • {@link #connect(Request)}
  • *
  • {@link #close()}
  • *
* You can usually use the client in this way: @@ -55,13 +54,6 @@ public interface Client extends Closeable { * @param request Request information, Requested methods and parameters * @return response Response from server side */ - Response connection(Request request); - - /** - * Check whether the client is active - * - * @return Whether active - */ - boolean isActive(); + R connect(Request request); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientSupport.java similarity index 56% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientSupport.java index 602aecc6..18ea0205 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyClientSupport.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientSupport.java @@ -15,15 +15,19 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.client; -import cn.hippo4j.rpc.client.Client; -import cn.hippo4j.rpc.client.ClientConnection; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; +import cn.hippo4j.rpc.connection.ClientConnection; +import cn.hippo4j.rpc.connection.SimpleClientConnection; +import cn.hippo4j.rpc.exception.OperationException; +import cn.hippo4j.rpc.handler.ErrorClientHandler; import cn.hippo4j.rpc.handler.HandlerManager; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; +import cn.hippo4j.rpc.handler.ClientPoolHandler; +import cn.hippo4j.rpc.handler.ClientTakeHandler; +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.support.AddressUtil; +import cn.hippo4j.rpc.server.ServerSupport; import io.netty.channel.ChannelHandler; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -33,6 +37,7 @@ import java.lang.ref.WeakReference; import java.net.InetSocketAddress; import java.util.Map; import java.util.Optional; +import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; /** @@ -48,12 +53,12 @@ import java.util.concurrent.ConcurrentHashMap; * by the container * * @see cn.hippo4j.rpc.client.RPCClient - * @see cn.hippo4j.rpc.client.NettyClientConnection - * @see NettyServerSupport + * @see SimpleClientConnection + * @see ServerSupport * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -public final class NettyClientSupport { +public final class ClientSupport { /** * the cache for client @@ -69,13 +74,14 @@ public final class NettyClientSupport { */ public static Client getClient(InetSocketAddress address, HandlerManager handlerManager) { return CLIENT_MAP.computeIfAbsent(address, a -> { - NettyClientPoolHandler handler = (handlerManager instanceof NettyClientPoolHandler) - ? (NettyClientPoolHandler) handlerManager - : new NettyClientPoolHandler(); + ClientPoolHandler handler = (handlerManager instanceof ClientPoolHandler) + ? (ClientPoolHandler) handlerManager + : new ClientPoolHandler(); if (handler.isEmpty()) { - handler.addFirst(null, new NettyClientTakeHandler()); + handler.addFirst(null, new ClientTakeHandler()); } - NettyClientConnection connection = new NettyClientConnection(address, handler); + handler.addLast(null, new ErrorClientHandler()); + SimpleClientConnection connection = new SimpleClientConnection(address, handler); return new RPCClient(connection); }); } @@ -87,7 +93,44 @@ public final class NettyClientSupport { * @return Client */ public static Client getClient(InetSocketAddress address) { - return getClient(address, new NettyClientPoolHandler()); + return getClient(address, new ClientPoolHandler()); + } + + /** + * Find a suitable client and send a request to the server + * + * @param address address + * @param handlerName The handler that can handle this request + * @param param parameter + * @return result + */ + public static R clientSend(String address, String handlerName, Object[] param) { + InetSocketAddress socketAddress = AddressUtil.getInetAddress(address); + Client client = getClient(socketAddress); + Request request = new DefaultRequest(UUID.randomUUID().toString(), handlerName, param); + return client.connect(request); + } + + public static R clientSend(String address, String handlerName, Object param) { + Object[] params = {param}; + InetSocketAddress socketAddress = AddressUtil.getInetAddress(address); + Client client = getClient(socketAddress); + Request request = new DefaultRequest(UUID.randomUUID().toString(), handlerName, params); + return client.connect(request); + } + + /** + * Find a suitable client and send a request to the server + * + * @param address address + * @param handlerName The handler that can handle this request + * @return result + */ + public static R clientSend(String address, String handlerName) { + InetSocketAddress socketAddress = AddressUtil.getInetAddress(address); + Client client = getClient(socketAddress); + Request request = new DefaultRequest(UUID.randomUUID().toString(), handlerName); + return client.connect(request); } /** @@ -102,7 +145,7 @@ public final class NettyClientSupport { try { c.close(); } catch (IOException e) { - throw new RuntimeException(e); + throw new OperationException(e); } }); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java deleted file mode 100644 index 4a77c6c4..00000000 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/NettyClientConnection.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.client; - -import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.rpc.exception.TimeOutException; -import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; -import cn.hippo4j.rpc.support.NettyConnectPool; -import cn.hippo4j.rpc.support.NettyConnectPoolHolder; -import cn.hippo4j.rpc.support.ResultHolder; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.pool.ChannelPoolHandler; -import lombok.extern.slf4j.Slf4j; - -import java.net.InetSocketAddress; -import java.util.Optional; -import java.util.concurrent.locks.LockSupport; - -/** - * Client implemented using netty - * - * @since 2.0.0 - */ -@Slf4j -public class NettyClientConnection implements ClientConnection { - - InetSocketAddress address; - /** - * Obtain the connection timeout period. The default value is 30s - */ - long timeout = 30000L; - final int nanosPerMilliSecond = 1000000; - - EventLoopGroup worker = new NioEventLoopGroup(); - NettyConnectPool connectionPool; - ChannelFuture future; - Channel channel; - - public NettyClientConnection(InetSocketAddress address, - ChannelPoolHandler handler) { - Assert.notNull(worker); - this.address = address; - this.connectionPool = NettyConnectPoolHolder.getPool(address, timeout, worker, handler); - } - - @Override - public Response connect(Request request) { - this.channel = connectionPool.acquire(timeout); - boolean debugEnabled = log.isDebugEnabled(); - Response response; - try { - String key = request.getKey(); - this.future = channel.writeAndFlush(request); - if (debugEnabled) { - log.debug("Call successful, target address is {}:{}, request key is {}", address.getHostName(), address.getPort(), key); - } - // Wait for execution to complete - ResultHolder.putThread(key, Thread.currentThread()); - LockSupport.parkNanos(timeout() * nanosPerMilliSecond); - response = ResultHolder.get(key); - if (response == null) { - throw new TimeOutException("Timeout waiting for server-side response"); - } - if (debugEnabled) { - log.debug("The response from {}:{} was received successfully with the response key {}.", address.getHostName(), address.getPort(), key); - } - return response; - } catch (Exception ex) { - throw ex; - } finally { - connectionPool.release(this.channel); - } - } - - @Override - public long timeout() { - return timeout; - } - - @Override - public void setTimeout(long timeout) { - this.timeout = timeout; - } - - @Override - public void close() { - Optional.ofNullable(this.channel) - .ifPresent(c -> { - worker.shutdownGracefully(); - this.future.channel().close(); - this.channel.close(); - }); - } - - @Override - public boolean isActive() { - return channel.isActive(); - } -} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java index 527f380d..48fda056 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/RPCClient.java @@ -17,8 +17,8 @@ package cn.hippo4j.rpc.client; +import cn.hippo4j.rpc.connection.ClientConnection; import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; import java.io.IOException; @@ -37,15 +37,10 @@ public class RPCClient implements Client { } @Override - public Response connection(Request request) { + public R connect(Request request) { return clientConnection.connect(request); } - @Override - public boolean isActive() { - return clientConnection.isActive(); - } - /** * Close the client and release all connections. * diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/ObjectEncoder.java similarity index 95% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/ObjectEncoder.java index 8c5ce752..982082e1 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/NettyEncoder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/coder/ObjectEncoder.java @@ -32,13 +32,13 @@ import java.io.Serializable; * * @since 2.0.0 */ -public class NettyEncoder extends MessageToByteEncoder { +public class ObjectEncoder extends MessageToByteEncoder { private static final int BYTE_LENGTH = 4; private static final byte[] BYTE = new byte[BYTE_LENGTH]; @Override - protected void encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) throws Exception { + protected void encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) { int startIndex = out.writerIndex(); try (ByteBufOutputStream outPut = new ByteBufOutputStream(out)) { outPut.write(BYTE); diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ClientConnection.java similarity index 67% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ClientConnection.java index cc30b3be..fd7d70b6 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/client/ClientConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ClientConnection.java @@ -15,25 +15,31 @@ * limitations under the License. */ -package cn.hippo4j.rpc.client; +package cn.hippo4j.rpc.connection; -import cn.hippo4j.rpc.handler.Connection; import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; + +import java.io.Closeable; /** * Applicable to client connections
+ * Represents a network request connection and provides IO layer support
+ *

+ * This is not a strict and stateless Connection interface, it contains the necessary + * operations that should be done in the connection. It is more like integrating the + * connection and the connection channel together, so creating {@link ClientConnection} is + * very resource intensive, for which caching is recommended * * @since 2.0.0 */ -public interface ClientConnection extends Connection { +public interface ClientConnection extends Closeable { /** * Establish a connection and process * * @param request Request information */ - Response connect(Request request); + R connect(Request request); /** * Get timeout, ms diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ConnectPoolHolder.java similarity index 77% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ConnectPoolHolder.java index 8fada5f7..aa20983a 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPoolHolder.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ConnectPoolHolder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.connection; import io.netty.channel.Channel; import io.netty.channel.EventLoopGroup; @@ -35,16 +35,16 @@ import java.util.concurrent.ConcurrentHashMap; * @since 2.0.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -public class NettyConnectPoolHolder { +public class ConnectPoolHolder { static int maxConnect = 256; - static Map connectPoolMap = new ConcurrentHashMap<>(); + static Map connectPoolMap = new ConcurrentHashMap<>(); - private static NettyConnectPool initPool(InetSocketAddress address, - long timeout, EventLoopGroup worker, - ChannelPoolHandler handler) { - return new NettyConnectPool(address, maxConnect, timeout, worker, NioSocketChannel.class, handler); + private static SimpleConnectPool initPool(InetSocketAddress address, + long timeout, EventLoopGroup worker, + ChannelPoolHandler handler) { + return new SimpleConnectPool(address, maxConnect, timeout, worker, NioSocketChannel.class, handler); } private static String getKey(InetSocketAddress address) { @@ -58,7 +58,7 @@ public class NettyConnectPoolHolder { * @param address the InetSocketAddress * @param pool This parameter applies only to the connection pool of netty */ - public static void createPool(InetSocketAddress address, NettyConnectPool pool) { + public static void createPool(InetSocketAddress address, SimpleConnectPool pool) { connectPoolMap.put(getKey(address), pool); } @@ -68,7 +68,7 @@ public class NettyConnectPoolHolder { * @param address the InetSocketAddress * @return Map to the connection pool */ - public static NettyConnectPool getPool(InetSocketAddress address) { + public static SimpleConnectPool getPool(InetSocketAddress address) { return connectPoolMap.get(getKey(address)); } @@ -82,13 +82,13 @@ public class NettyConnectPoolHolder { * @param handler the chandler for netty * @return Map to the connection pool */ - public static synchronized NettyConnectPool getPool(InetSocketAddress address, - long timeout, EventLoopGroup worker, - ChannelPoolHandler handler) { + public static synchronized SimpleConnectPool getPool(InetSocketAddress address, + long timeout, EventLoopGroup worker, + ChannelPoolHandler handler) { /* * this cannot use the computeIfAbsent method directly here because put is already used in init. Details refer to https://bugs.openjdk.java.net/browse/JDK-8062841 */ - NettyConnectPool pool = getPool(address); + SimpleConnectPool pool = getPool(address); return pool == null ? initPool(address, timeout, worker, handler) : pool; } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ServerConnection.java similarity index 84% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ServerConnection.java index 5f93bab7..3441c7e2 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/Connection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/ServerConnection.java @@ -15,28 +15,34 @@ * limitations under the License. */ -package cn.hippo4j.rpc.handler; +package cn.hippo4j.rpc.connection; + +import cn.hippo4j.rpc.discovery.ServerPort; import java.io.Closeable; /** + * This applies to server-side connections + *

* Represents a network request connection and provides IO layer support
*

* This is not a strict and stateless Connection interface, it contains the necessary * operations that should be done in the connection. It is more like integrating the - * connection and the connection channel together, so creating {@link Connection} is + * connection and the connection channel together, so creating {@link ServerConnection} is * very resource intensive, for which caching is recommended * * @since 2.0.0 */ -public interface Connection extends Closeable { +public interface ServerConnection extends Closeable { + + /** + * Bind ports and process them + */ + void bind(ServerPort port); /** * Gets the state of the connection, which is interpreted differently by different programs
*

- * Client: Active connection indicates that a connection is being maintained with the server. - * Inactive connection indicates that no connection is being established with the server
- *

* Server: The active connection indicates that the server has been started, is receiving ports, * and can obtain requests at any time. The inactive connection indicates that the server has been * shut down and the ports have been released diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleClientConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleClientConnection.java new file mode 100644 index 00000000..dc7d9e77 --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleClientConnection.java @@ -0,0 +1,112 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.connection; + +import cn.hippo4j.rpc.exception.ConnectionException; +import cn.hippo4j.rpc.exception.TimeOutException; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; +import cn.hippo4j.rpc.support.ResultHolder; +import io.netty.channel.Channel; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.pool.ChannelPoolHandler; +import lombok.extern.slf4j.Slf4j; + +import java.net.InetSocketAddress; +import java.util.concurrent.locks.LockSupport; + +/** + * Client implemented using netty + * + * @since 2.0.0 + */ +@Slf4j +public class SimpleClientConnection implements ClientConnection { + + InetSocketAddress address; + /** + * Obtain the connection timeout period. The default value is 30s + */ + long timeout = 30000L; + EventLoopGroup worker = new NioEventLoopGroup(); + SimpleConnectPool connectionPool; + static final String TIME_OUT_MSG = "Timeout waiting for server-side response"; + + public SimpleClientConnection(InetSocketAddress address, + ChannelPoolHandler handler) { + this.address = address; + this.connectionPool = ConnectPoolHolder.getPool(address, timeout, worker, handler); + } + + @Override + public R connect(Request request) { + Channel channel = connectionPool.acquire(timeout); + try { + channel.writeAndFlush(request); + return wait(request.getRID()); + } finally { + connectionPool.release(channel); + } + } + + /** + * wait the Response + * + * @param requestId RID + * @return Response + */ + @SuppressWarnings("unchecked") + public R wait(String requestId) { + Response response; + if (log.isDebugEnabled()) { + log.debug("Call successful, target address is {}:{}, request key is {}", address.getHostName(), address.getPort(), requestId); + } + // Wait for execution to complete + ResultHolder.putThread(requestId, Thread.currentThread()); + LockSupport.parkNanos(timeout() * 1000000); + response = ResultHolder.get(requestId); + if (response == null) { + throw new TimeOutException(TIME_OUT_MSG); + } + if (response.isErr()) { + throw new ConnectionException(response.getErrMsg()); + } + if (log.isDebugEnabled()) { + log.debug("The response from {}:{} was received successfully with the response key {}.", address.getHostName(), address.getPort(), requestId); + } + return (R) response.getObj(); + } + + @Override + public long timeout() { + return timeout; + } + + @Override + public void setTimeout(long timeout) { + this.timeout = timeout; + } + + @Override + public void close() { + worker.shutdownGracefully(); + connectionPool.close(); + } + +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleConnectPool.java similarity index 83% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleConnectPool.java index 9585adc8..18ca6f13 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyConnectPool.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleConnectPool.java @@ -15,8 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.connection; +import cn.hippo4j.rpc.client.ClientSupport; import cn.hippo4j.rpc.exception.ConnectionException; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; @@ -39,7 +40,7 @@ import java.util.concurrent.TimeUnit; * @since 2.0.0 */ @Slf4j -public class NettyConnectPool { +public class SimpleConnectPool { ChannelHealthChecker healthCheck = ChannelHealthChecker.ACTIVE; FixedChannelPool.AcquireTimeoutAction acquireTimeoutAction = FixedChannelPool.AcquireTimeoutAction.NEW; @@ -48,10 +49,10 @@ public class NettyConnectPool { ChannelPool pool; InetSocketAddress address; - public NettyConnectPool(InetSocketAddress address, int maxConnect, - long timeout, EventLoopGroup worker, - Class socketChannelCls, - ChannelPoolHandler handler) { + public SimpleConnectPool(InetSocketAddress address, int maxConnect, + long timeout, EventLoopGroup worker, + Class socketChannelCls, + ChannelPoolHandler handler) { Bootstrap bootstrap = new Bootstrap() .group(worker) .channel(socketChannelCls) @@ -64,7 +65,7 @@ public class NettyConnectPool { if (log.isDebugEnabled()) { log.info("The connection pool is established with the connection target {}:{}", address.getHostName(), address.getPort()); } - NettyConnectPoolHolder.createPool(address, this); + ConnectPoolHolder.createPool(address, this); } public Channel acquire(long timeoutMillis) { @@ -72,7 +73,7 @@ public class NettyConnectPool { Future fch = pool.acquire(); return fch.get(timeoutMillis, TimeUnit.MILLISECONDS); } catch (Exception e) { - NettyClientSupport.closeClient(address); + ClientSupport.closeClient(address); throw new ConnectionException("Failed to get the connection", e); } } @@ -81,7 +82,7 @@ public class NettyConnectPool { try { return pool.acquire(); } catch (Exception e) { - NettyClientSupport.closeClient(address); + ClientSupport.closeClient(address); throw new ConnectionException("Failed to get the connection", e); } } @@ -92,7 +93,7 @@ public class NettyConnectPool { try { pool.release(channel); } catch (Exception e) { - NettyClientSupport.closeClient(address); + ClientSupport.closeClient(address); throw new ConnectionException("Failed to release the connection", e); } }); @@ -101,9 +102,9 @@ public class NettyConnectPool { public void close() { try { pool.close(); - NettyConnectPoolHolder.remove(address); + ConnectPoolHolder.remove(address); } catch (Exception e) { - NettyClientSupport.closeClient(address); + ClientSupport.closeClient(address); throw new ConnectionException("Failed to close the connection pool", e); } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleServerConnection.java similarity index 73% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleServerConnection.java index 224163eb..aa8e29ea 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/NettyServerConnection.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/connection/SimpleServerConnection.java @@ -15,13 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.rpc.server; +package cn.hippo4j.rpc.connection; -import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.rpc.coder.NettyEncoder; +import cn.hippo4j.rpc.coder.ObjectEncoder; import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.exception.ConnectionException; -import cn.hippo4j.rpc.handler.AbstractNettyHandlerManager; +import cn.hippo4j.rpc.handler.AbstractHandlerManager; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; @@ -48,7 +47,7 @@ import java.util.List; * @since 2.0.0 */ @Slf4j -public class NettyServerConnection extends AbstractNettyHandlerManager implements ServerConnection { +public class SimpleServerConnection extends AbstractHandlerManager implements ServerConnection { ServerPort port; EventLoopGroup leader; @@ -56,32 +55,30 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement Class socketChannelCls = NioServerSocketChannel.class; ChannelFuture future; Channel channel; - private final int maxPortNum = 65535; + private static final int MAX_PORT_NUM = 65535; - public NettyServerConnection(EventLoopGroup leader, EventLoopGroup worker, List handlers) { + public SimpleServerConnection(EventLoopGroup leader, EventLoopGroup worker, List handlers) { super(handlers); - Assert.notNull(leader); - Assert.notNull(worker); this.leader = leader; this.worker = worker; } - public NettyServerConnection(EventLoopGroup leader, EventLoopGroup worker, ChannelHandler... handlers) { + public SimpleServerConnection(EventLoopGroup leader, EventLoopGroup worker, ChannelHandler... handlers) { this(leader, worker, (handlers != null ? Arrays.asList(handlers) : Collections.emptyList())); } - public NettyServerConnection(ChannelHandler... handlers) { + public SimpleServerConnection(ChannelHandler... handlers) { this(handlers != null ? Arrays.asList(handlers) : Collections.emptyList()); } - public NettyServerConnection(List handlers) { + public SimpleServerConnection(List handlers) { this(new NioEventLoopGroup(), new NioEventLoopGroup(), handlers); } @Override public void bind(ServerPort port) { int serverPort = port.getPort(); - if (serverPort < 0 || serverPort > maxPortNum) { + if (serverPort < 0 || serverPort > MAX_PORT_NUM) { throw new ConnectionException("The port number " + serverPort + " is outside 0~65535, which is not a legal port number"); } ServerBootstrap server = new ServerBootstrap(); @@ -93,7 +90,7 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement @Override protected void initChannel(SocketChannel ch) { ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast(new NettyEncoder()); + pipeline.addLast(new ObjectEncoder()); pipeline.addLast(new ObjectDecoder(Integer.MAX_VALUE, ClassResolvers.cacheDisabled(null))); handlerEntities.stream() .sorted() @@ -106,18 +103,12 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement }); } }); - try { - this.future = server.bind(serverPort).sync(); - this.channel = this.future.channel(); - if (log.isDebugEnabled()) { - log.debug("The server is started and can receive requests. The listening port is {}", serverPort); - } - this.port = port; - this.future.channel().closeFuture().sync(); - } catch (InterruptedException ex) { - Thread.currentThread().interrupt(); - throw new ConnectionException("Listening port failed, Please check whether the port is occupied", ex); + this.future = server.bind(serverPort); + this.channel = this.future.channel(); + if (log.isDebugEnabled()) { + log.debug("The server is started and can receive requests. The listening port is {}", serverPort); } + this.port = port; } @Override @@ -143,13 +134,13 @@ public class NettyServerConnection extends AbstractNettyHandlerManager implement } @Override - public NettyServerConnection addLast(String name, ChannelHandler handler) { + public SimpleServerConnection addLast(String name, ChannelHandler handler) { super.addLast(name, handler); return this; } @Override - public NettyServerConnection addFirst(String name, ChannelHandler handler) { + public SimpleServerConnection addFirst(String name, ChannelHandler handler) { super.addFirst(name, handler); return this; } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java deleted file mode 100644 index 227f19e1..00000000 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/ClassRegistry.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * the registration center for Client and Server - * - * @since 2.0.0 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class ClassRegistry { - - private static final Map> SERVER_REGISTER = new ConcurrentHashMap<>(); - - /** - * get a Obj in Registry center
- * - * @param s key - * @return t element - */ - public static Class get(String s) { - return SERVER_REGISTER.get(s); - } - - /** - * add the element to Registry Table
- * if the key already exists, failure, and return before the value of the key.
- * if success return the element - * - * @param s key - * @param cls element - * @return final mapped value - */ - public static Class set(String s, Class cls) { - return SERVER_REGISTER.putIfAbsent(s, cls); - } - - /** - * add the element to Registry Table
- * if the key already exists, failure, replace it - * - * @param s key - * @param cls element - */ - public static Class put(String s, Class cls) { - return SERVER_REGISTER.put(s, cls); - } - - /** - * clear - */ - public static void clear() { - SERVER_REGISTER.clear(); - } -} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java deleted file mode 100644 index 0a45d78f..00000000 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/DefaultInstance.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import cn.hippo4j.common.toolkit.ReflectUtil; - -import java.util.Iterator; -import java.util.ServiceLoader; - -/** - * You simply create an instance of a class based on its name and specific type. - * Load through the ServiceLoader first. If the load fails, load directly through the instantiation. - * If it is an interface, throw an exception. This is not elegant implementation - * - * @since 2.0.0 - */ -public class DefaultInstance implements Instance { - - @Override - public Object getInstance(Class cls) { - ServiceLoader load = ServiceLoader.load(cls); - Iterator iterator = load.iterator(); - if (iterator.hasNext()) { - return iterator.next(); - } - return ReflectUtil.createInstance(cls); - } - - @Override - public Object getInstance(String name) { - try { - Class cls = Class.forName(name); - return getInstance(cls); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - } -} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/HandlerNotFoundException.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/HandlerNotFoundException.java new file mode 100644 index 00000000..5bc480e8 --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/HandlerNotFoundException.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.exception; + +/** + * HandlerNotFoundException occurs when no executable handler can be found + * + * @since 2.0.0 + */ +public class HandlerNotFoundException extends RuntimeException { + + private static final long serialVersionUID = 8247610319171014183L; + + public HandlerNotFoundException() { + super(); + } + + public HandlerNotFoundException(String message) { + super(message); + } + + public HandlerNotFoundException(Throwable e) { + super(e.getMessage(), e); + } + + public HandlerNotFoundException(String message, Throwable throwable) { + super(message, throwable); + } + + public HandlerNotFoundException(String message, Throwable throwable, boolean enableSuppression, boolean writableStackTrace) { + super(message, throwable, enableSuppression, writableStackTrace); + } + +} \ No newline at end of file diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/OperationException.java similarity index 53% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/OperationException.java index 8d1c92c3..8512777b 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/Instance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/exception/OperationException.java @@ -15,30 +15,35 @@ * limitations under the License. */ -package cn.hippo4j.rpc.discovery; +package cn.hippo4j.rpc.exception; /** - * Instance interface to get an instance + * a generic operational exception * * @since 2.0.0 */ -public interface Instance { - - /** - * get a instance - * - * @param cls Class object - * @return Information about instances created or found - */ - Object getInstance(Class cls); - - /** - * Gets an instance of a class with a recognizable identity, - * which can be the fully qualified name of class. It can also be a unique name in a container - * - * @param name Identifying name - * @return Information about instances created or found - */ - Object getInstance(String name); +public class OperationException extends RuntimeException { + + private static final long serialVersionUID = 8247610319171014183L; + + public OperationException() { + super(); + } + + public OperationException(String message) { + super(message); + } + + public OperationException(Throwable e) { + super(e.getMessage(), e); + } + + public OperationException(String message, Throwable throwable) { + super(message, throwable); + } + + public OperationException(String message, Throwable throwable, boolean enableSuppression, boolean writableStackTrace) { + super(message, throwable, enableSuppression, writableStackTrace); + } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractHandlerManager.java similarity index 79% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractHandlerManager.java index 85f7289d..1b50900a 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractNettyHandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/AbstractHandlerManager.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.common.toolkit.Assert; import io.netty.channel.ChannelHandler; import java.util.Arrays; @@ -33,7 +32,7 @@ import java.util.stream.Collectors; * * @since 2.0.0 */ -public abstract class AbstractNettyHandlerManager implements HandlerManager { +public abstract class AbstractHandlerManager implements HandlerManager { protected final List> handlerEntities; @@ -41,19 +40,18 @@ public abstract class AbstractNettyHandlerManager implements HandlerManager handlerEntities) { - Assert.notNull(handlerEntities); + protected AbstractHandlerManager(List handlerEntities) { this.handlerEntities = handlerEntities.stream() .filter(Objects::nonNull) .map(c -> getHandlerEntity(lastIndex.getAndIncrement(), c, null)) .collect(Collectors.toList()); } - protected AbstractNettyHandlerManager(ChannelHandler... handlerEntities) { + protected AbstractHandlerManager(ChannelHandler... handlerEntities) { this(handlerEntities != null ? Arrays.asList(handlerEntities) : Collections.emptyList()); } - protected AbstractNettyHandlerManager() { + protected AbstractHandlerManager() { this.handlerEntities = new LinkedList<>(); } @@ -69,8 +67,7 @@ public abstract class AbstractNettyHandlerManager implements HandlerManager { - throw new ConnectionException(cause); + if (log.isWarnEnabled()) { + log.warn(cause.getMessage()); + } }); } @@ -59,8 +61,8 @@ public abstract class AbstractNettyTakeHandler extends ChannelInboundHandlerAdap */ @Override public void handler(Response response) { - ResultHolder.put(response.getKey(), response); - ResultHolder.wake(response.getKey()); + ResultHolder.put(response.getRID(), response); + ResultHolder.wake(response.getRID()); } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientPoolHandler.java similarity index 83% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientPoolHandler.java index 26a195d9..5a61c8da 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientPoolHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientPoolHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.rpc.coder.NettyEncoder; +import cn.hippo4j.rpc.coder.ObjectEncoder; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; @@ -36,28 +36,28 @@ import java.util.List; * @since 2.0.0 */ @Slf4j -public class NettyClientPoolHandler extends AbstractNettyHandlerManager implements ChannelPoolHandler { +public class ClientPoolHandler extends AbstractHandlerManager implements ChannelPoolHandler { - public NettyClientPoolHandler(List handlers) { + public ClientPoolHandler(List handlers) { super(handlers); } - public NettyClientPoolHandler(ChannelHandler... handlers) { + public ClientPoolHandler(ChannelHandler... handlers) { super(handlers); } - public NettyClientPoolHandler() { + public ClientPoolHandler() { super(); } @Override - public NettyClientPoolHandler addLast(String name, ChannelHandler handler) { + public ClientPoolHandler addLast(String name, ChannelHandler handler) { super.addLast(name, handler); return this; } @Override - public NettyClientPoolHandler addFirst(String name, ChannelHandler handler) { + public ClientPoolHandler addFirst(String name, ChannelHandler handler) { super.addFirst(name, handler); return this; } @@ -81,7 +81,7 @@ public class NettyClientPoolHandler extends AbstractNettyHandlerManager implemen channel.config() .setTcpNoDelay(false); ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast(new NettyEncoder()); + pipeline.addLast(new ObjectEncoder()); pipeline.addLast(new ObjectDecoder(Integer.MAX_VALUE, ClassResolvers.cacheDisabled(null))); this.handlerEntities.stream() .sorted() diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientTakeHandler.java similarity index 74% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientTakeHandler.java index 02d7c00d..3266bcc2 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyClientTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ClientTakeHandler.java @@ -17,6 +17,7 @@ package cn.hippo4j.rpc.handler; +import cn.hippo4j.rpc.exception.ConnectionException; import cn.hippo4j.rpc.model.Response; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; @@ -27,17 +28,20 @@ import io.netty.channel.ChannelHandlerContext; * @since 2.0.0 */ @ChannelHandler.Sharable -public class NettyClientTakeHandler extends AbstractNettyTakeHandler implements ConnectHandler { +public class ClientTakeHandler extends AbstractTakeHandler implements ConnectHandler { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { try { - Response response = (Response) msg; - handler(response); - ctx.flush(); + if (msg instanceof Response) { + Response response = (Response) msg; + handler(response); + ctx.flush(); + } else { + ctx.fireChannelRead(msg); + } } catch (Exception e) { - ctx.close(); - throw e; + throw new ConnectionException(e); } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorClientHandler.java similarity index 56% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorClientHandler.java index 324c0705..7eef3402 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/discovery/SpringContextInstance.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorClientHandler.java @@ -15,25 +15,29 @@ * limitations under the License. */ -package cn.hippo4j.rpc.discovery; +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.exception.HandlerNotFoundException; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; /** - * Adapter Spring, The requested object is managed by spring + * The final handler, which returned an exception because no usable handler could be found * * @since 2.0.0 */ -public class SpringContextInstance implements Instance { +@ChannelHandler.Sharable +public class ErrorClientHandler extends AbstractTakeHandler implements ConnectHandler { - @Override - public Object getInstance(Class cls) { - // return ApplicationContextHolder.getBean(cls); - return null; - } + private static final String ERR_MSG = "no handler found that matches the request"; @Override - public Object getInstance(String name) { - // return ApplicationContextHolder.getInstance().getBean(name); - return null; + public void channelRead(ChannelHandlerContext ctx, Object msg) { + try { + throw new HandlerNotFoundException(ERR_MSG); + } finally { + ctx.close(); + } } -} +} \ No newline at end of file diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorServerHandler.java similarity index 50% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorServerHandler.java index c83846c7..d3d4828d 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/NettyServerTakeHandler.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ErrorServerHandler.java @@ -17,56 +17,33 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.common.toolkit.Assert; -import cn.hippo4j.common.toolkit.ReflectUtil; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.Instance; +import cn.hippo4j.rpc.exception.HandlerNotFoundException; +import cn.hippo4j.rpc.model.DefaultRequest; import cn.hippo4j.rpc.model.DefaultResponse; import cn.hippo4j.rpc.model.Request; import cn.hippo4j.rpc.model.Response; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; -import java.lang.reflect.Method; - /** - * netty adaptation layer + * The final handler, which returned an exception because no usable handler could be found * * @since 2.0.0 */ @ChannelHandler.Sharable -public class NettyServerTakeHandler extends AbstractNettyTakeHandler implements ConnectHandler { - - Instance instance; +public class ErrorServerHandler extends AbstractTakeHandler { - public NettyServerTakeHandler(Instance instance) { - this.instance = instance; - } + private static final String ERR_MSG = "no handler found that matches the request"; @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { - if (!(msg instanceof Request)) { - return; + HandlerNotFoundException exception = new HandlerNotFoundException(ERR_MSG); + if (!(msg instanceof DefaultRequest)) { + ctx.close(); + throw exception; } Request request = (Request) msg; - Response response = sendHandler(request); + Response response = new DefaultResponse(request.getRID(), ERR_MSG); ctx.writeAndFlush(response); } - - @Override - public Response sendHandler(Request request) { - Response response; - try { - Class cls = ClassRegistry.get(request.getClassName()); - Method method = ReflectUtil.getMethodByName(cls, request.getMethodName(), request.getParameterTypes()); - Assert.notNull(method); - Object invoke = ReflectUtil.invoke(instance.getInstance(cls), method, request.getParameters()); - response = new DefaultResponse(request.getKey(), invoke.getClass(), invoke); - return response; - } catch (Exception e) { - response = new DefaultResponse(request.getKey(), e, e.getMessage()); - return response; - } - } - } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java index 0fe0cc38..49b722c5 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/HandlerManager.java @@ -17,6 +17,7 @@ package cn.hippo4j.rpc.handler; +import cn.hippo4j.rpc.exception.OperationException; import io.netty.channel.ChannelHandler; import lombok.AllArgsConstructor; import lombok.Getter; @@ -65,7 +66,7 @@ public interface HandlerManager { boolean b = cls.isAnnotationPresent(ChannelHandler.Sharable.class) || HandlerManager.class.isAssignableFrom(cls); if (!b) { - throw new RuntimeException("Join the execution of the handler must add io.netty.channel.ChannelHandler." + throw new OperationException("Join the execution of the handler must add io.netty.channel.ChannelHandler." + "Sharable annotations, Please for the handler class " + cls.getName() + " add io.netty.channel." + "ChannelHandler.Sharable annotation"); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBareTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBareTakeHandler.java new file mode 100644 index 00000000..39939cee --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBareTakeHandler.java @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.exception.HandlerNotFoundException; +import cn.hippo4j.rpc.model.DefaultResponse; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; +import io.netty.channel.ChannelHandler; +import lombok.RequiredArgsConstructor; + +import java.util.function.Supplier; + +/** + * This is a processor that does not support parameters but can get the return value.
+ * Even if the parameters passed by the user will not be recognized, it will even become an error + * + * @since 2.0.0 + */ +@RequiredArgsConstructor +@ChannelHandler.Sharable +public class ServerBareTakeHandler extends ServerHandler { + + final String name; + final Supplier fun; + + @Override + String getName() { + return name; + } + + @Override + public Response sendHandler(Request request) { + try { + Object[] parameters = request.getParameters(); + if (parameters.length != 0) { + throw new HandlerNotFoundException("no handler found that matches the pair " + name + " and function"); + } + T t = fun.get(); + return new DefaultResponse(request.getRID(), t); + } catch (Exception e) { + return new DefaultResponse(request.getRID(), e.getMessage()); + } + } + +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBiTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBiTakeHandler.java new file mode 100644 index 00000000..8bae327c --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerBiTakeHandler.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.exception.HandlerNotFoundException; +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.DefaultResponse; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; +import io.netty.channel.ChannelHandler; +import lombok.RequiredArgsConstructor; + +import java.util.function.BiFunction; + +/** + * netty adaptation layer about {@link DefaultRequest}

+ * Parse the parameters in the request to execute the corresponding method.
+ * This is a relatively flexible processor at present, but there are still great defects.
+ *
For example:
+ *

    + *
  • This handler only supports requests with two parameters, it will not work if the number of parameters does not match
  • + *
  • If you want to pass multiple parameters please wrap them, or customize the processor
  • + *
  • This processor does not consider whether the types match when parsing parameters, and an error occurs if the conversion fails
  • + *
+ * + * @since 2.0.0 + */ +@ChannelHandler.Sharable +@RequiredArgsConstructor +public class ServerBiTakeHandler extends ServerHandler { + + final String name; + + final BiFunction fun; + + @Override + String getName() { + return name; + } + + @Override + @SuppressWarnings("unchecked") + public Response sendHandler(Request request) { + try { + Object[] parameters = request.getParameters(); + if (parameters.length != 2) { + throw new HandlerNotFoundException("no handler found that matches the pair " + name + " and function"); + } + T t = (T) parameters[0]; + P p = (P) parameters[1]; + K r = fun.apply(t, p); + return new DefaultResponse(request.getRID(), r); + } catch (Exception e) { + return new DefaultResponse(request.getRID(), e.getMessage()); + } + } + +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerHandler.java new file mode 100644 index 00000000..f0372c90 --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerHandler.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; +import io.netty.channel.ChannelHandlerContext; + +import java.util.Objects; + +/** + * The handler located on the server side provides unified operations for the server side + * + * @since 2.0.0 + */ +abstract class ServerHandler extends AbstractTakeHandler { + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) { + if (!(msg instanceof DefaultRequest)) { + ctx.fireChannelRead(msg); + return; + } + Request request = (Request) msg; + if (!Objects.equals(request.getKey(), getName())) { + ctx.fireChannelRead(msg); + return; + } + Response response = sendHandler(request); + ctx.writeAndFlush(response); + } + + /** + * Get the name of the current handler + * + * @return name + */ + abstract String getName(); +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerTakeHandler.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerTakeHandler.java new file mode 100644 index 00000000..9aaa60e0 --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/handler/ServerTakeHandler.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.exception.HandlerNotFoundException; +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.DefaultResponse; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; +import io.netty.channel.ChannelHandler; +import lombok.RequiredArgsConstructor; + +import java.util.function.Function; + +/** + * netty adaptation layer about {@link DefaultRequest}

+ * Parse the parameters in the request to execute the corresponding method.
+ * This is a relatively flexible processor at present, but there are still great defects.
+ *
For example:
+ *
    + *
  • This handler only supports requests with one parameters, it will not work if the number of parameters does not match
  • + *
  • If you want to pass multiple parameters please wrap them, or customize the processor
  • + *
  • This processor does not consider whether the types match when parsing parameters, and an error occurs if the conversion fails
  • + *
+ * + * @since 2.0.0 + */ +@ChannelHandler.Sharable +@RequiredArgsConstructor +public class ServerTakeHandler extends ServerHandler { + + final String name; + final Function fun; + + @Override + String getName() { + return name; + } + + @Override + @SuppressWarnings("unchecked") + public Response sendHandler(Request request) { + try { + Object[] parameters = request.getParameters(); + if (parameters.length != 1) { + throw new HandlerNotFoundException("no handler found that matches the pair " + name + " and function"); + } + T t = (T) parameters[0]; + R r = fun.apply(t); + return new DefaultResponse(request.getRID(), r); + } catch (Exception e) { + return new DefaultResponse(request.getRID(), e.getMessage()); + } + } + +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java index d615e2ea..5dff2ea1 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultRequest.java @@ -30,38 +30,30 @@ import java.util.Objects; */ public final class DefaultRequest implements Request { + String RID; String key; - String className; - String methodName; - Class[] parameterTypes; + int length; transient Object[] parameters; - public DefaultRequest(String key, String className, String methodName, Class[] parameterTypes, Object[] parameters) { + public DefaultRequest(String RID, String key, Object[] parameters) { + this.RID = RID; this.key = key; - this.className = className; - this.methodName = methodName; - this.parameterTypes = parameterTypes; this.parameters = parameters; + this.length = parameters.length; } - @Override - public String getKey() { - return key; - } - - @Override - public String getClassName() { - return className; + public DefaultRequest(String RID, String key) { + this(RID, key, new Object[]{}); } @Override - public String getMethodName() { - return methodName; + public String getRID() { + return RID; } @Override - public Class[] getParameterTypes() { - return parameterTypes; + public String getKey() { + return key; } @Override @@ -78,14 +70,12 @@ public final class DefaultRequest implements Request { return false; } DefaultRequest that = (DefaultRequest) o; - return Objects.equals(key, that.key) - && Objects.equals(className, that.className) - && Objects.equals(methodName, that.methodName); + return Objects.equals(key, that.key) && Objects.equals(RID, that.RID); } @Override public int hashCode() { - return Objects.hash(key, className, methodName); + return Objects.hash(key, RID); } /** @@ -111,11 +101,7 @@ public final class DefaultRequest implements Request { */ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); - if (parameterTypes == null) { - return; - } // Deserialization parameters - int length = parameterTypes.length; Object[] a = new Object[length]; for (int i = 0; i < length; i++) { a[i] = s.readObject(); diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java index 0ba5e799..995db662 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/DefaultResponse.java @@ -30,36 +30,27 @@ import java.util.Objects; */ public class DefaultResponse implements Response { - String key; - Class cls; + String RID; transient Object obj; - Throwable throwable; String errMsg; - public DefaultResponse(String key, Class cls, Object obj, Throwable throwable, String errMsg) { - this.key = key; - this.cls = cls; + public DefaultResponse(String RID, Object obj, String errMsg) { + this.RID = RID; this.obj = obj; - this.throwable = throwable; this.errMsg = errMsg; } - public DefaultResponse(String key, Throwable throwable, String errMsg) { - this(key, null, null, throwable, errMsg); + public DefaultResponse(String RID, String errMsg) { + this(RID, null, errMsg); } - public DefaultResponse(String key, Class cls, Object obj) { - this(key, cls, obj, null, null); + public DefaultResponse(String RID, Object obj) { + this(RID, obj, null); } @Override - public String getKey() { - return key; - } - - @Override - public Class getCls() { - return cls; + public String getRID() { + return RID; } @Override @@ -67,11 +58,6 @@ public class DefaultResponse implements Response { return obj; } - @Override - public Throwable getThrowable() { - return throwable; - } - @Override public String getErrMsg() { return errMsg; @@ -79,7 +65,7 @@ public class DefaultResponse implements Response { @Override public boolean isErr() { - return throwable != null || errMsg != null; + return errMsg != null; } @Override @@ -91,12 +77,12 @@ public class DefaultResponse implements Response { return false; } DefaultResponse that = (DefaultResponse) o; - return Objects.equals(key, that.key) && Objects.equals(cls, that.cls); + return Objects.equals(RID, that.RID); } @Override public int hashCode() { - return Objects.hash(key, cls); + return Objects.hash(RID); } /** diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java index 83d4feae..ee972c74 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Request.java @@ -27,24 +27,14 @@ import java.io.Serializable; public interface Request extends Serializable { /** - * The unique identity of the current request - */ - String getKey(); - - /** - * The Class name of the current request + * the request id, Used to specify an executable handler */ - String getClassName(); + String getRID(); /** - * The Method name of the current request - */ - String getMethodName(); - - /** - * The parameter type of the current request + * The unique identity of the current request */ - Class[] getParameterTypes(); + String getKey(); /** * The parameters of the current request diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java index cd7ada9c..aa7a5e33 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/model/Response.java @@ -29,23 +29,13 @@ public interface Response extends Serializable { /** * The unique identity of the current Response */ - String getKey(); - - /** - * The class of the current Response, The target of deserialization - */ - Class getCls(); + String getRID(); /** * The results of this request can be obtained, The source of deserialization */ Object getObj(); - /** - * The Throwable of the current Response - */ - Throwable getThrowable(); - /** * the error message */ diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java index 1136937e..888fede1 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/RPCServer.java @@ -17,7 +17,7 @@ package cn.hippo4j.rpc.server; -import cn.hippo4j.common.toolkit.ThreadUtil; +import cn.hippo4j.rpc.connection.ServerConnection; import cn.hippo4j.rpc.discovery.ServerPort; import java.io.IOException; @@ -36,10 +36,7 @@ public class RPCServer implements Server { public RPCServer(ServerConnection serverConnection, ServerPort port) { this.port = port; this.serverConnection = serverConnection; - this.thread = ThreadUtil.newThread( - () -> serverConnection.bind(port), - "hippo4j-rpc-" + port.getPort(), - false); + this.thread = new Thread(() -> serverConnection.bind(port), "hippo4j-rpc-" + port.getPort()); } /** @@ -61,7 +58,7 @@ public class RPCServer implements Server { */ @Override public void close() throws IOException { - thread = null; + thread.interrupt(); serverConnection.close(); } } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerSupport.java similarity index 55% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java rename to threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerSupport.java index c09f25f2..ba0c0c14 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyServerSupport.java +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerSupport.java @@ -15,22 +15,17 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.server; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; +import cn.hippo4j.rpc.client.ClientSupport; import cn.hippo4j.rpc.discovery.ServerPort; +import cn.hippo4j.rpc.handler.ErrorServerHandler; import cn.hippo4j.rpc.handler.HandlerManager; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import cn.hippo4j.rpc.server.Server; +import cn.hippo4j.rpc.connection.ServerConnection; +import cn.hippo4j.rpc.connection.SimpleServerConnection; import io.netty.channel.ChannelHandler; import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; /** * This is a server-side build class that allows you to quickly prepare data on the server side and start the server side.
@@ -38,17 +33,11 @@ import java.util.List; * The composite pattern is adopted, which means that it is itself a server-side implementation, so it is stateless. * * @see RPCServer - * @see NettyServerConnection - * @see NettyClientSupport + * @see ServerConnection + * @see ClientSupport * @since 2.0.0 */ -public class NettyServerSupport implements Server { - - /** - * The interface that the server side can call, - * All the methods in the interface are brokered during initialization - */ - protected List> classes; +public class ServerSupport implements Server { /** * Extract the port number of the web container, @@ -63,20 +52,11 @@ public class NettyServerSupport implements Server { protected Server server; - public NettyServerSupport(ServerPort serverPort, Class... classes) { - this(serverPort, new NettyServerConnection(), classes); - } - - public NettyServerSupport(ServerPort serverPort, List> classes) { - this(serverPort, new NettyServerConnection(), classes); - } - - public NettyServerSupport(ServerPort serverPort, HandlerManager handlerManager, Class... classes) { - this(serverPort, handlerManager, classes != null ? Arrays.asList(classes) : Collections.emptyList()); + public ServerSupport(ServerPort serverPort) { + this(serverPort, new SimpleServerConnection()); } - public NettyServerSupport(ServerPort serverPort, HandlerManager handlerManager, List> classes) { - this.classes = classes; + public ServerSupport(ServerPort serverPort, HandlerManager handlerManager) { this.serverPort = serverPort; this.handlerManager = handlerManager; initServer(); @@ -88,16 +68,11 @@ public class NettyServerSupport implements Server { * If no processor is available, a default processor is provided */ protected void initServer() { - // Register the interface that can be invoked - classes.stream().filter(Class::isInterface) - .forEach(cls -> ClassRegistry.put(cls.getName(), cls)); - NettyServerConnection connection = (handlerManager instanceof NettyServerConnection) - ? (NettyServerConnection) handlerManager - : new NettyServerConnection(); + SimpleServerConnection connection = (handlerManager instanceof SimpleServerConnection) + ? (SimpleServerConnection) handlerManager + : new SimpleServerConnection(); // Assign a default handler if no handler exists - if (connection.isEmpty()) { - connection.addFirst(null, new NettyServerTakeHandler(new DefaultInstance())); - } + connection.addLast(null, new ErrorServerHandler()); server = new RPCServer(connection, serverPort); } diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/AddressUtil.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/AddressUtil.java new file mode 100644 index 00000000..90fda034 --- /dev/null +++ b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/AddressUtil.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.support; + +import cn.hippo4j.rpc.exception.ConnectionException; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import java.net.InetSocketAddress; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class AddressUtil { + + private static final String HTTP = "http://"; + private static final String HTTPS = "https://"; + + /** + * parsing hostname + * + * @param address address + * @return InetAddress + */ + public static InetSocketAddress getInetAddress(String address) { + if (address.startsWith(HTTP)) { + address = address.replaceFirst(HTTP, ""); + } + + if (address.startsWith(HTTPS)) { + address = address.replaceFirst(HTTPS, ""); + } + + String[] addressStr = address.split(":"); + if (addressStr.length < 2) { + throw new ConnectionException("Failed to connect to the server because the IP address is invalid. Procedure"); + } + return InetSocketAddress.createUnresolved(addressStr[0], Integer.parseInt(addressStr[1])); + } + +} diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java b/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java deleted file mode 100644 index 93214662..00000000 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/support/NettyProxyCenter.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.IdUtil; -import cn.hippo4j.rpc.client.Client; -import cn.hippo4j.rpc.exception.ConnectionException; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.model.DefaultRequest; -import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Proxy; -import java.net.InetSocketAddress; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Add a proxy for the request, {@link Proxy} and {@link InvocationHandler} - * - * @since 2.0.0 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class NettyProxyCenter { - - // cache - static Map map = new ConcurrentHashMap<>(); - - /** - * A proxy object for PRC is obtained through an interface - * - * @param cls The interface type - * @param address address - * @param Object type - * @param handler the pool handler for netty - * @return Proxy objects - */ - @SuppressWarnings("unchecked") - public static T getProxy(Class cls, InetSocketAddress address, NettyClientPoolHandler handler) { - Client client = NettyClientSupport.getClient(address, handler); - String s = address + cls.getName(); - Object o = map.get(s); - if (o != null) { - return (T) o; - } - return createProxy(client, cls, address); - } - - /** - * A proxy object for PRC is obtained through an interface - * - * @param cls The interface type - * @param address address String - * @param Object type - * @return Proxy objects - */ - @SuppressWarnings("unchecked") - public static T getProxy(Class cls, String address) { - String[] addressStr = address.split(":"); - if (addressStr.length < 2) { - throw new ConnectionException("Failed to connect to the server because the IP address is invalid. Procedure"); - } - InetSocketAddress socketAddress = InetSocketAddress.createUnresolved(addressStr[0], Integer.parseInt(addressStr[1])); - String s = socketAddress + cls.getName(); - Object o = map.get(s); - if (o != null) { - return (T) o; - } - Client client = NettyClientSupport.getClient(socketAddress); - return createProxy(client, cls, socketAddress); - } - - /** - * remove proxy object - * - * @param cls the class - * @param address address String - */ - public static void removeProxy(Class cls, String address) { - String[] addressStr = address.split(":"); - if (addressStr.length < 2) { - throw new ConnectionException("Failed to connect to the server because the IP address is invalid. Procedure"); - } - InetSocketAddress socketAddress = InetSocketAddress.createUnresolved(addressStr[0], Integer.parseInt(addressStr[1])); - String s = socketAddress + cls.getName(); - NettyClientSupport.closeClient(socketAddress); - map.remove(s); - } - - @SuppressWarnings("unchecked") - public static T createProxy(Client client, Class cls, InetSocketAddress address) { - boolean b = cls.isInterface(); - if (!b) { - throw new RuntimeException(cls.getName() + "is not a Interface"); - } - String s = address.toString() + cls.getName(); - Object o = map.get(s); - if (o != null) { - return (T) o; - } - T obj = (T) Proxy.newProxyInstance( - cls.getClassLoader(), - new Class[]{cls}, - (proxy, method, args) -> { - String clsName = cls.getName(); - String methodName = method.getName(); - String key = address + clsName + methodName + IdUtil.simpleUUID(); - Class[] parameterTypes = method.getParameterTypes(); - Request request = new DefaultRequest(key, clsName, methodName, parameterTypes, args); - Response response = client.connection(request); - if (response == null) { - return null; - } - if (response.isErr()) { - throw new RuntimeException(response.getErrMsg(), response.getThrowable()); - } - return response.getObj(); - }); - map.put(s, obj); - return obj; - } -} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/CallManager.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/CallManager.java index 23367936..ac535f4c 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/CallManager.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/CallManager.java @@ -17,7 +17,8 @@ package cn.hippo4j.rpc.client; -import cn.hippo4j.common.toolkit.ThreadUtil; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; public class CallManager { @@ -25,13 +26,17 @@ public class CallManager { return 1; } - public int callTest(Integer a, Integer b) { + public int call(Integer a) { + return a; + } + + public int call(Integer a, Integer b) { return a + b; } public int callTestTimeout() { // thread sleep for 10 seconds - ThreadUtil.sleep(10000); + LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(10L)); return 1; } diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/ClientSupportTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/ClientSupportTest.java new file mode 100644 index 00000000..afa523c5 --- /dev/null +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/ClientSupportTest.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.client; + +import cn.hippo4j.rpc.connection.ClientConnection; +import cn.hippo4j.rpc.connection.ServerConnection; +import cn.hippo4j.rpc.connection.SimpleClientConnection; +import cn.hippo4j.rpc.connection.SimpleServerConnection; +import cn.hippo4j.rpc.handler.ServerBareTakeHandler; +import cn.hippo4j.rpc.handler.ServerBiTakeHandler; +import cn.hippo4j.rpc.discovery.ServerPort; +import cn.hippo4j.rpc.handler.ClientPoolHandler; +import cn.hippo4j.rpc.handler.ClientTakeHandler; +import cn.hippo4j.rpc.handler.ServerTakeHandler; +import cn.hippo4j.rpc.server.RPCServer; +import io.netty.channel.pool.ChannelPoolHandler; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; + +public class ClientSupportTest { + + static ServerPort port = new TestServerPort(); + static final String addressStr = "localhost"; + + static final String take = "serverTake"; + static final String biTake = "biTake"; + static final String bareTake = "bareTake"; + static final String timeout = "timeout"; + static RPCServer rpcServer; + + @BeforeClass + public static void startServer() { + CallManager manager = new CallManager(); + ServerTakeHandler takeHandler = new ServerTakeHandler<>(biTake, manager::call); + ServerBiTakeHandler biTakeHandler = new ServerBiTakeHandler<>(take, manager::call); + ServerBareTakeHandler bareTakeHandler = new ServerBareTakeHandler<>(bareTake, manager::call); + ServerBareTakeHandler timeoutHandler = new ServerBareTakeHandler<>(timeout, manager::callTestTimeout); + ServerConnection connection = new SimpleServerConnection(takeHandler, bareTakeHandler, biTakeHandler, timeoutHandler); + rpcServer = new RPCServer(connection, port); + rpcServer.bind(); + while (!rpcServer.isActive()) { + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); + } + } + + @AfterClass + public static void stopServer() throws IOException { + if (rpcServer.isActive()) { + rpcServer.close(); + } + } + + @Test + public void closeTest() throws IOException { + InetSocketAddress address = InetSocketAddress.createUnresolved(addressStr, port.getPort()); + ChannelPoolHandler channelPoolHandler = new ClientPoolHandler(new ClientTakeHandler()); + ClientConnection clientConnection = new SimpleClientConnection(address, channelPoolHandler); + RPCClient rpcClient = new RPCClient(clientConnection); + + ClientSupport.closeClient(new InetSocketAddress(addressStr, port.getPort())); + rpcClient.close(); + } + + static class TestServerPort implements ServerPort { + + int port = RandomPort.getSafeRandomPort(); + + @Override + public int getPort() { + return port; + } + } + +} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java deleted file mode 100644 index f10cb0eb..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.client; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.model.DefaultRequest; -import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import cn.hippo4j.rpc.server.ServerConnection; -import io.netty.channel.pool.ChannelPoolHandler; -import org.junit.Assert; -import org.junit.Test; - -import java.io.IOException; -import java.net.InetSocketAddress; - -public class RPCClientTest { - - String host = "localhost"; - ServerPort port = new TestServerPort(); - ServerPort portTest = new TestPortServerPort(); - - /** - * This test case can be overridden under the handler and coder packages - */ - @Test - public void connection() throws IOException { - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, portTest); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, portTest.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - Class[] classes = new Class[2]; - classes[0] = Integer.class; - classes[1] = Integer.class; - Object[] objects = new Object[2]; - objects[0] = 1; - objects[1] = 2; - Request request = new DefaultRequest("127.0.0.18889", className, "callTest", classes, objects); - Response response = rpcClient.connection(request); - boolean active = rpcClient.isActive(); - Assert.assertTrue(active); - Assert.assertEquals(response.getObj(), 3); - rpcClient.close(); - rpcServer.close(); - } - - @Test - public void connectionTest() throws IOException { - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - Request request = new DefaultRequest("127.0.0.18888", className, "call", null, null); - for (int i = 0; i < 50; i++) { - Response response = rpcClient.connection(request); - boolean active = rpcClient.isActive(); - Assert.assertTrue(active); - Assert.assertEquals(response.getObj(), 1); - } - rpcClient.close(); - rpcServer.close(); - } - - @Test(expected = Exception.class) - public void responseNullExceptionTest() throws IOException { - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - clientConnection.setTimeout(300L); - try (RPCClient rpcClient = new RPCClient(clientConnection)) { - Request request = new DefaultRequest("127.0.0.18888", className, "callTestTimeout", null, null); - Response response = rpcClient.connection(request); - Assert.assertNotNull(response.getErrMsg()); - Assert.assertNotNull(response.getThrowable()); - } catch (IOException e) { - // no something - } finally { - rpcServer.close(); - } - } - - static class TestServerPort implements ServerPort { - - int port = RandomPort.getSafeRandomPort(); - - @Override - public int getPort() { - return port; - } - } - - static class TestPortServerPort implements ServerPort { - - int port = RandomPort.getSafeRandomPort(); - - @Override - public int getPort() { - return port; - } - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java deleted file mode 100644 index e55c1a22..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import org.junit.Assert; -import org.junit.Test; - -public class ClassRegistryTest { - - @Test - public void get() { - String getStr = "GetModel"; - Class cls = ClassRegistry.get(getStr); - Assert.assertNull(cls); - ClassRegistry.put(getStr, GetModel.class); - Class aClass = ClassRegistry.get(getStr); - Assert.assertNotNull(aClass); - ClassRegistry.clear(); - } - - @Test - public void set() { - String getStr = "GetModel"; - ClassRegistry.set(getStr, GetModel.class); - Class aClass = ClassRegistry.get(getStr); - Assert.assertEquals(aClass, GetModel.class); - ClassRegistry.set(getStr, SetModel.class); - Class aClass1 = ClassRegistry.get(getStr); - Assert.assertEquals(aClass1, GetModel.class); - ClassRegistry.clear(); - } - - @Test - public void put() { - String getStr = "GetModel"; - ClassRegistry.put(getStr, GetModel.class); - Class aClass = ClassRegistry.get(getStr); - Assert.assertEquals(aClass, GetModel.class); - ClassRegistry.put(getStr, SetModel.class); - Class aClass1 = ClassRegistry.get(getStr); - Assert.assertEquals(aClass1, SetModel.class); - ClassRegistry.clear(); - } - - public static class GetModel { - - } - - public static class SetModel { - - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java deleted file mode 100644 index eeff9ee3..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import org.junit.Assert; -import org.junit.Test; - -public class DefaultInstanceTest { - - Instance instance = new DefaultInstance(); - - @Test - public void getInstance() { - Class cls = InstanceModel.class; - Object instanceInstance = instance.getInstance(cls); - Assert.assertNotNull(instanceInstance); - Assert.assertEquals(cls, instanceInstance.getClass()); - } - - @Test - public void testGetInstance() { - String className = "cn.hippo4j.rpc.discovery.InstanceModel"; - Object instanceInstance = instance.getInstance(className); - Assert.assertNotNull(instanceInstance); - Assert.assertEquals(className, instanceInstance.getClass().getName()); - } - - @Test(expected = RuntimeException.class) - public void testGetInstanceTest() { - String className = "cn.hippo4j.rpc.discovery.InstanceModelTest"; - Object instanceInstance = instance.getInstance(className); - Assert.assertNotNull(instanceInstance); - Assert.assertEquals(className, instanceInstance.getClass().getName()); - } - - @Test - public void getInstanceTest() { - Class cls = InstanceServerLoader.class; - Object instanceInstance = instance.getInstance(cls); - Assert.assertNotNull(instanceInstance); - Assert.assertEquals(InstanceServerLoaderImpl.class, instanceInstance.getClass()); - } - -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java deleted file mode 100644 index dbe520eb..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.springframework.boot.test.context.TestComponent; - -@Setter -@Getter -@AllArgsConstructor -@NoArgsConstructor -@TestComponent -public class InstanceModel { - - String name; -} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java deleted file mode 100644 index fd279786..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -public interface InstanceServerLoader { - - String getName(); - -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java deleted file mode 100644 index 6328e3f4..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class InstanceServerLoaderImpl implements InstanceServerLoader { - - String name = "name"; - -} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java deleted file mode 100644 index 5bce1cff..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.discovery; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -/** - * TODO Common module removes spring dependency leftovers - */ -// @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {InstanceModel.class}) -// @RunWith(SpringJUnit4ClassRunner.class) -public class SpringContextInstanceTest { - - Instance instance = new SpringContextInstance(); - - // @Test - public void getInstance() { - Object obj = instance.getInstance(InstanceModel.class); - Assert.assertNotNull(obj); - Assert.assertEquals(obj.getClass(), InstanceModel.class); - } - - // @Test - public void testGetInstance() { - Object obj = instance.getInstance("instanceModel"); - Assert.assertNotNull(obj); - Assert.assertEquals(obj.getClass(), InstanceModel.class); - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ClientPoolHandlerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ClientPoolHandlerTest.java new file mode 100644 index 00000000..90fe4c2c --- /dev/null +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ClientPoolHandlerTest.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.exception.OperationException; +import io.netty.channel.ChannelHandler; +import org.junit.Assert; +import org.junit.Test; + +public class ClientPoolHandlerTest { + + static final String test = "Test"; + static final String test1 = "Test1"; + + @Test + public void testGetHandlerEntity() { + TestHandler handler = new TestHandler(); + long order = 0; + String name = test; + ClientPoolHandler poolHandler = new ClientPoolHandler(); + HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, name); + Assert.assertEquals(entity.getName(), name); + Assert.assertEquals(entity.getOrder(), order); + Assert.assertEquals(entity.getHandler(), handler); + } + + @Test + public void testCompareTo() { + TestHandler handler = new TestHandler(); + long order = 0; + TestHandler handler1 = new TestHandler(); + long order1 = 1; + ClientPoolHandler poolHandler = new ClientPoolHandler(); + HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, test); + HandlerManager.HandlerEntity entity1 = poolHandler.getHandlerEntity(order1, handler1, test1); + int compare = entity.compareTo(entity1); + Assert.assertTrue(compare < 0); + } + + @Test + public void addLast() { + ClientPoolHandler handler = new ClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addLast(null, new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void addFirst() { + ClientPoolHandler handler = new ClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addFirst(null, new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void testAddLast() { + ClientPoolHandler handler = new ClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addLast(test, new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void testAddFirst() { + ClientPoolHandler handler = new ClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addFirst(test, new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test(expected = OperationException.class) + public void testGetHandlerEntityFalse() { + TestFalseHandler handler = new TestFalseHandler(); + long order = 0; + ClientPoolHandler poolHandler = new ClientPoolHandler(); + poolHandler.getHandlerEntity(order, handler, test); + } + +} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectHandlerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectHandlerTest.java index 6351364e..59bfe5f1 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectHandlerTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectHandlerTest.java @@ -17,73 +17,70 @@ package cn.hippo4j.rpc.handler; -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; +import cn.hippo4j.rpc.client.CallManager; +import cn.hippo4j.rpc.connection.ServerConnection; import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.InstanceServerLoader; import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.model.DefaultRequest; import cn.hippo4j.rpc.model.DefaultResponse; import cn.hippo4j.rpc.model.Request; import cn.hippo4j.rpc.model.Response; -import cn.hippo4j.rpc.server.NettyServerConnection; +import cn.hippo4j.rpc.connection.SimpleServerConnection; import cn.hippo4j.rpc.server.RPCServer; -import cn.hippo4j.rpc.support.NettyProxyCenter; -import io.netty.channel.pool.ChannelPoolHandler; +import org.junit.AfterClass; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; -import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; public class ConnectHandlerTest { - @Test - public void handlerTest() throws IOException { - // server - Class cls = InstanceServerLoader.class; - ClassRegistry.put(cls.getName(), cls); - ServerPort port = new TestServerPort(); - Instance instance = new DefaultInstance(); - NettyServerTakeHandler serverHandler = new NettyServerTakeHandler(instance); - NettyServerConnection connection = new NettyServerConnection(serverHandler); - RPCServer rpcServer = new RPCServer(connection, port); + static final String take = "serverTake"; + static final String biTake = "biTake"; + static final String bareTake = "bareTake"; + static final String timeout = "timeout"; + static final String key = "key"; + static final String test = "test"; + static RPCServer rpcServer; + static ServerPort port = new TestServerPort(); + + @BeforeClass + public static void startServer() { + CallManager manager = new CallManager(); + ServerTakeHandler takeHandler = new ServerTakeHandler<>(biTake, manager::call); + ServerBiTakeHandler biTakeHandler = new ServerBiTakeHandler<>(take, manager::call); + ServerBareTakeHandler bareTakeHandler = new ServerBareTakeHandler<>(bareTake, manager::call); + ServerBareTakeHandler timeoutHandler = new ServerBareTakeHandler<>(timeout, manager::callTestTimeout); + ServerConnection connection = new SimpleServerConnection(takeHandler, bareTakeHandler, biTakeHandler, timeoutHandler); + rpcServer = new RPCServer(connection, port); rpcServer.bind(); while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); } - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); + } - InstanceServerLoader loader = NettyProxyCenter.createProxy(rpcClient, cls, address); - String name = loader.getName(); - Assert.assertEquals("name", name); - rpcClient.close(); - rpcServer.close(); + @AfterClass + public static void stopServer() throws IOException { + if (rpcServer.isActive()) { + rpcServer.close(); + } } @Test public void testConnectHandlerDefault() { ConnectHandler handler = new TestConnectHandler(); - - Request request = new DefaultRequest("key", "className", "methodName", new Class[0], new Object[0]); + Request request = new DefaultRequest(key, take, new Object[0]); Response response = handler.sendHandler(request); Assert.assertNull(response); - Response response1 = new DefaultResponse("key", this.getClass(), handler); - String key = response1.getKey(); - Class cls = response1.getCls(); + Response response1 = new DefaultResponse(key, test); + String key = response1.getRID(); Object obj = response1.getObj(); handler.handler(response1); - Assert.assertEquals(key, response1.getKey()); - Assert.assertEquals(cls, response1.getCls()); + Assert.assertEquals(key, response1.getRID()); Assert.assertEquals(obj, response1.getObj()); - } static class TestConnectHandler implements ConnectHandler { diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectPoolHolderTest.java similarity index 61% rename from threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java rename to threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectPoolHolderTest.java index a08b3adb..6924a423 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ConnectPoolHolderTest.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.handler; import cn.hippo4j.rpc.client.RandomPort; +import cn.hippo4j.rpc.connection.ConnectPoolHolder; +import cn.hippo4j.rpc.connection.SimpleConnectPool; import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; import io.netty.channel.Channel; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; @@ -30,7 +30,7 @@ import org.junit.Test; import java.net.InetSocketAddress; -public class NettyConnectPoolHolderTest { +public class ConnectPoolHolderTest { String host = "127.0.0.1"; ServerPort port = new TestServerPort(); @@ -41,37 +41,37 @@ public class NettyConnectPoolHolderTest { @Test public void createPool() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); + ClientPoolHandler handler = new ClientPoolHandler(new ClientTakeHandler()); InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyConnectPool pool = new NettyConnectPool(address, maxCount, timeout, group, cls, handler); - NettyConnectPool connectPool = NettyConnectPoolHolder.getPool(address); + SimpleConnectPool pool = new SimpleConnectPool(address, maxCount, timeout, group, cls, handler); + SimpleConnectPool connectPool = ConnectPoolHolder.getPool(address); Assert.assertEquals(pool, connectPool); - NettyConnectPoolHolder.clear(); - NettyConnectPool connectPool1 = NettyConnectPoolHolder.getPool(address); + ConnectPoolHolder.clear(); + SimpleConnectPool connectPool1 = ConnectPoolHolder.getPool(address); Assert.assertNull(connectPool1); } @Test public void testGetPool() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); + ClientPoolHandler handler = new ClientPoolHandler(new ClientTakeHandler()); InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyConnectPool connectPool = NettyConnectPoolHolder.getPool(address, timeout, group, handler); - NettyConnectPool connectPool1 = NettyConnectPoolHolder.getPool(address); + SimpleConnectPool connectPool = ConnectPoolHolder.getPool(address, timeout, group, handler); + SimpleConnectPool connectPool1 = ConnectPoolHolder.getPool(address); Assert.assertEquals(connectPool1, connectPool); - NettyConnectPoolHolder.clear(); - NettyConnectPool connectPool2 = NettyConnectPoolHolder.getPool(address); + ConnectPoolHolder.clear(); + SimpleConnectPool connectPool2 = ConnectPoolHolder.getPool(address); Assert.assertNull(connectPool2); } @Test public void remove() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); + ClientPoolHandler handler = new ClientPoolHandler(new ClientTakeHandler()); InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyConnectPool connectPool = NettyConnectPoolHolder.getPool(address, timeout, group, handler); - NettyConnectPool connectPool1 = NettyConnectPoolHolder.getPool(address); + SimpleConnectPool connectPool = ConnectPoolHolder.getPool(address, timeout, group, handler); + SimpleConnectPool connectPool1 = ConnectPoolHolder.getPool(address); Assert.assertEquals(connectPool1, connectPool); - NettyConnectPoolHolder.remove(address); - NettyConnectPool connectPool2 = NettyConnectPoolHolder.getPool(address); + ConnectPoolHolder.remove(address); + SimpleConnectPool connectPool2 = ConnectPoolHolder.getPool(address); Assert.assertNull(connectPool2); } diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java deleted file mode 100644 index e6f07600..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.handler; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.CallManager; -import cn.hippo4j.rpc.client.ClientConnection; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; -import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.model.DefaultRequest; -import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import cn.hippo4j.rpc.server.ServerConnection; -import io.netty.channel.ChannelHandler; -import org.junit.Assert; -import org.junit.Test; - -import java.io.IOException; -import java.net.InetSocketAddress; -import java.util.ArrayList; -import java.util.List; - -public class NettyClientPoolHandlerTest { - - @Test - public void testGetHandlerEntity() { - TestHandler handler = new TestHandler(); - long order = 0; - String name = "Test"; - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(); - HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, name); - Assert.assertEquals(entity.getName(), name); - Assert.assertEquals(entity.getOrder(), order); - Assert.assertEquals(entity.getHandler(), handler); - } - - @Test - public void testCompareTo() { - TestHandler handler = new TestHandler(); - long order = 0; - String name = "Test"; - TestHandler handler1 = new TestHandler(); - long order1 = 1; - String name1 = "Test1"; - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(); - HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, name); - HandlerManager.HandlerEntity entity1 = poolHandler.getHandlerEntity(order1, handler1, name1); - int compare = entity.compareTo(entity1); - Assert.assertTrue(compare < 0); - } - - @Test - public void addLast() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(); - Assert.assertTrue(handler.isEmpty()); - handler.addLast(null, new TestHandler()); - Assert.assertFalse(handler.isEmpty()); - } - - @Test - public void addFirst() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(); - Assert.assertTrue(handler.isEmpty()); - handler.addFirst(null, new TestHandler()); - Assert.assertFalse(handler.isEmpty()); - } - - @Test - public void testAddLast() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(); - Assert.assertTrue(handler.isEmpty()); - handler.addLast("Test", new TestHandler()); - Assert.assertFalse(handler.isEmpty()); - } - - @Test - public void testAddFirst() { - NettyClientPoolHandler handler = new NettyClientPoolHandler(); - Assert.assertTrue(handler.isEmpty()); - handler.addFirst("Test", new TestHandler()); - Assert.assertFalse(handler.isEmpty()); - } - - @Test(expected = RuntimeException.class) - public void testGetHandlerEntityFalse() { - TestFalseHandler handler = new TestFalseHandler(); - long order = 0; - String name = "Test"; - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(); - poolHandler.getHandlerEntity(order, handler, name); - } - - @Test - public void connectionTest() throws IOException { - ServerPort port = new ServerPort() { - - final int a = RandomPort.getSafeRandomPort(); - - @Override - public int getPort() { - return a; - } - }; - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); - List handlers = new ArrayList<>(); - handlers.add(new NettyClientTakeHandler()); - NettyClientPoolHandler channelPoolHandler = new NettyClientPoolHandler(handlers); - channelPoolHandler.addLast("test", new TestHandler()); - ClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - Request request = new DefaultRequest("127.0.0.18888", className, "call", null, null); - for (int i = 0; i < 50; i++) { - Response response = rpcClient.connection(request); - boolean active = rpcClient.isActive(); - Assert.assertTrue(active); - Assert.assertEquals(response.getObj(), 1); - } - rpcClient.close(); - rpcServer.close(); - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ServerHandlerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ServerHandlerTest.java new file mode 100644 index 00000000..6f5a54bc --- /dev/null +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/ServerHandlerTest.java @@ -0,0 +1,141 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.client.CallManager; +import cn.hippo4j.rpc.client.ClientSupport; +import cn.hippo4j.rpc.client.RPCClient; +import cn.hippo4j.rpc.client.RandomPort; +import cn.hippo4j.rpc.connection.ServerConnection; +import cn.hippo4j.rpc.connection.SimpleClientConnection; +import cn.hippo4j.rpc.connection.SimpleServerConnection; +import cn.hippo4j.rpc.discovery.ServerPort; +import cn.hippo4j.rpc.exception.ConnectionException; +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.server.RPCServer; +import cn.hippo4j.rpc.support.AddressUtil; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; + +public class ServerHandlerTest { + + static final String host = "localhost"; + static ServerPort port = new TestServerPort(); + + static final String take = "serverTakeServer"; + static final String biTake = "biTakeServer"; + static final String bareTake = "bareTakeServer"; + static final String timeout = "timeoutServer"; + static final String error = "errorServer"; + static RPCServer rpcServer; + + @BeforeClass + public static void startServer() { + CallManager manager = new CallManager(); + ServerTakeHandler takeHandler = new ServerTakeHandler<>(take, manager::call); + ServerBiTakeHandler biTakeHandler = new ServerBiTakeHandler<>(biTake, manager::call); + ServerBareTakeHandler bareTakeHandler = new ServerBareTakeHandler<>(bareTake, manager::call); + ServerBareTakeHandler timeoutHandler = new ServerBareTakeHandler<>(timeout, manager::callTestTimeout); + ErrorServerHandler error = new ErrorServerHandler(); + ServerConnection connection = new SimpleServerConnection(takeHandler, bareTakeHandler, biTakeHandler, timeoutHandler, error); + rpcServer = new RPCServer(connection, port); + rpcServer.bind(); + while (!rpcServer.isActive()) { + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); + } + } + + @AfterClass + public static void stopServer() throws IOException { + if (rpcServer.isActive()) { + rpcServer.close(); + } + } + + /** + * This test case can be overridden under the handler and coder packages + */ + @Test + public void connection() { + String s = host + ":" + port.getPort(); + int send = ClientSupport.clientSend(s, take, 1); + Assert.assertEquals(send, 1); + InetSocketAddress socketAddress = AddressUtil.getInetAddress(s); + ClientSupport.closeClient(socketAddress); + } + + @Test(expected = ConnectionException.class) + public void connectionError() { + String s = host + ":" + port.getPort(); + int send = ClientSupport.clientSend(s, error, 1); + Assert.assertEquals(1, send); + InetSocketAddress socketAddress = AddressUtil.getInetAddress(s); + ClientSupport.closeClient(socketAddress); + } + + @Test + public void connectionTest() { + Integer[] params = {1, 6}; + String s = host + ":" + port.getPort(); + int send = ClientSupport.clientSend(s, biTake, params); + Assert.assertEquals(7, send); + InetSocketAddress socketAddress = AddressUtil.getInetAddress(s); + ClientSupport.closeClient(socketAddress); + } + + @Test + public void connectionTestBare() { + String s = host + ":" + port.getPort(); + int send = ClientSupport.clientSend(s, bareTake); + Assert.assertEquals(1, send); + InetSocketAddress socketAddress = AddressUtil.getInetAddress(s); + ClientSupport.closeClient(socketAddress); + } + + @Test(expected = Exception.class) + public void responseNullExceptionTest() { + String s = host + ":" + port.getPort(); + ClientPoolHandler handler = new ClientPoolHandler(new ClientTakeHandler()); + InetSocketAddress socketAddress = AddressUtil.getInetAddress(s); + SimpleClientConnection connection = new SimpleClientConnection(socketAddress, handler); + connection.setTimeout(1L); + RPCClient client = new RPCClient(connection); + Request request = new DefaultRequest(UUID.randomUUID().toString(), timeout); + client.connect(request); + } + + static class TestServerPort implements ServerPort { + + int port = RandomPort.getSafeRandomPort(); + + @Override + public int getPort() { + return port; + } + } + +} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/SimpleConnectPoolTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/SimpleConnectPoolTest.java new file mode 100644 index 00000000..e2fde929 --- /dev/null +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/handler/SimpleConnectPoolTest.java @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.handler; + +import cn.hippo4j.rpc.client.CallManager; +import cn.hippo4j.rpc.client.RandomPort; +import cn.hippo4j.rpc.connection.SimpleConnectPool; +import cn.hippo4j.rpc.discovery.ServerPort; +import cn.hippo4j.rpc.connection.SimpleServerConnection; +import cn.hippo4j.rpc.server.RPCServer; +import cn.hippo4j.rpc.connection.ServerConnection; +import io.netty.channel.Channel; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.util.concurrent.Future; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; + +public class SimpleConnectPoolTest { + + String host = "127.0.0.1"; + int maxCount = 64; + int timeout = 5000; + EventLoopGroup group = new NioEventLoopGroup(); + Class cls = NioSocketChannel.class; + + static ServerPort port = new TestServerPort(); + + static final String take = "serverTake"; + static final String biTake = "biTake"; + static final String bareTake = "bareTake"; + static final String timeoutTake = "timeout"; + static RPCServer rpcServer; + + @BeforeClass + public static void startServer() { + CallManager manager = new CallManager(); + ServerTakeHandler takeHandler = new ServerTakeHandler<>(biTake, manager::call); + ServerBiTakeHandler biTakeHandler = new ServerBiTakeHandler<>(take, manager::call); + ServerBareTakeHandler bareTakeHandler = new ServerBareTakeHandler<>(bareTake, manager::call); + ServerBareTakeHandler timeoutHandler = new ServerBareTakeHandler<>(timeoutTake, manager::callTestTimeout); + ServerConnection connection = new SimpleServerConnection(takeHandler, bareTakeHandler, biTakeHandler, timeoutHandler); + rpcServer = new RPCServer(connection, port); + rpcServer.bind(); + while (!rpcServer.isActive()) { + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); + } + } + + @AfterClass + public static void stopServer() throws IOException { + if (rpcServer.isActive()) { + rpcServer.close(); + } + } + + @Test + public void acquire() { + InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); + ClientPoolHandler poolHandler = new ClientPoolHandler(new ClientTakeHandler()); + SimpleConnectPool pool = new SimpleConnectPool(address, maxCount, timeout, group, cls, poolHandler); + Channel acquire = pool.acquire(timeout); + Assert.assertNotNull(acquire); + pool.release(acquire); + } + + @Test + public void testAcquire() { + InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); + ClientPoolHandler poolHandler = new ClientPoolHandler(new ClientTakeHandler()); + SimpleConnectPool pool = new SimpleConnectPool(address, maxCount, timeout, group, cls, poolHandler); + Future acquire = pool.acquire(); + Assert.assertNotNull(acquire); + } + + @Test + public void close() { + InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); + ClientPoolHandler poolHandler = new ClientPoolHandler(new ClientTakeHandler()); + SimpleConnectPool pool = new SimpleConnectPool(address, maxCount, timeout, group, cls, poolHandler); + Channel acquire = pool.acquire(timeout); + Assert.assertNotNull(acquire); + pool.release(acquire); + pool.close(); + } + + static class TestServerPort implements ServerPort { + + int port = RandomPort.getSafeRandomPort(); + + @Override + public int getPort() { + return port; + } + } +} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultRequestTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultRequestTest.java index ada1121f..073b6602 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultRequestTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultRequestTest.java @@ -17,7 +17,6 @@ package cn.hippo4j.rpc.model; -import cn.hippo4j.rpc.discovery.InstanceServerLoaderImpl; import org.junit.Assert; import org.junit.Test; @@ -26,20 +25,18 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import java.lang.reflect.Method; public class DefaultRequestTest { + static final String name = "name"; + static final String rid = "rid"; + static final String hippo4j = "hippo4j"; + @Test - public void testReadObject() throws IOException, ClassNotFoundException, NoSuchMethodException { - String key = "name"; - String clsName = InstanceServerLoaderImpl.class.getName(); - Method method = InstanceServerLoaderImpl.class.getMethod("setName", String.class); - String methodName = method.getName(); - Class[] parameterTypes = method.getParameterTypes(); + public void testReadObject() throws IOException, ClassNotFoundException { Object[] parameters = new Object[1]; - parameters[0] = "hippo4j"; - Request request = new DefaultRequest(key, clsName, methodName, parameterTypes, parameters); + parameters[0] = hippo4j; + Request request = new DefaultRequest(rid, name, parameters); byte[] bytes; try ( ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); @@ -55,26 +52,17 @@ public class DefaultRequestTest { request1 = (Request) objectInputStream.readObject(); } Assert.assertEquals(request1.hashCode(), request1.hashCode()); - Assert.assertEquals(key, request1.getKey()); - Assert.assertEquals(clsName, request1.getClassName()); - Assert.assertEquals(methodName, request1.getMethodName()); - Assert.assertArrayEquals(parameterTypes, request1.getParameterTypes()); + Assert.assertEquals(name, request1.getKey()); + Assert.assertEquals(rid, request1.getRID()); Assert.assertArrayEquals(parameters, request1.getParameters()); Assert.assertEquals(request1, request); } @Test - public void testEquals() throws NoSuchMethodException { - String key = "name"; - String clsName = InstanceServerLoaderImpl.class.getName(); - Method method = InstanceServerLoaderImpl.class.getMethod("setName", String.class); - String methodName = method.getName(); - Class[] parameterTypes = method.getParameterTypes(); - Object[] parameters = new Object[1]; - parameters[0] = "hippo4j"; - Request request = new DefaultRequest(key, clsName, methodName, parameterTypes, parameters); + public void testEquals() { + Request request = new DefaultRequest(rid, name); Assert.assertTrue(request.equals(request)); - Assert.assertFalse(request.equals(null)); + Assert.assertFalse(request == null); } } \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java index c3e4d209..8752cf84 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/model/DefaultResponseTest.java @@ -28,12 +28,13 @@ import java.io.ObjectOutputStream; public class DefaultResponseTest { + static final String rid = "name"; + static final Object o = "obj"; + static final String errMsg = "test throwable"; + @Test public void testReadObject() throws IOException, ClassNotFoundException { - String key = "name"; - Object o = "obj"; - Class cls = String.class; - Response response = new DefaultResponse(key, cls, o); + Response response = new DefaultResponse(rid, o); byte[] bytes; try ( ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); @@ -49,19 +50,15 @@ public class DefaultResponseTest { response1 = (Response) objectInputStream.readObject(); } Assert.assertEquals(response1.hashCode(), response.hashCode()); - Assert.assertEquals(key, response1.getKey()); + Assert.assertEquals(rid, response1.getRID()); Assert.assertEquals(o, response1.getObj()); - Assert.assertEquals(cls, response1.getCls()); Assert.assertEquals(response1, response); Assert.assertFalse(response1.isErr()); } @Test public void testWriteObject() throws IOException, ClassNotFoundException { - String key = "name"; - Throwable throwable = new RuntimeException("test throwable"); - String errMsg = "test throwable"; - Response response = new DefaultResponse(key, throwable, errMsg); + Response response = new DefaultResponse(rid, errMsg); byte[] bytes; try ( ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); @@ -76,10 +73,7 @@ public class DefaultResponseTest { ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream)) { response1 = (Response) objectInputStream.readObject(); } - Assert.assertEquals(key, response1.getKey()); - Assert.assertThrows(RuntimeException.class, () -> { - throw response1.getThrowable(); - }); + Assert.assertEquals(rid, response1.getRID()); Assert.assertEquals(response1.hashCode(), response.hashCode()); Assert.assertEquals(errMsg, response1.getErrMsg()); Assert.assertEquals(response1, response); @@ -87,11 +81,8 @@ public class DefaultResponseTest { } @Test - public void testEquals() throws NoSuchMethodException { - String key = "name"; - Object o = "obj"; - Class cls = String.class; - Response response = new DefaultResponse(key, cls, o); + public void testEquals() { + Response response = new DefaultResponse(rid, o); Assert.assertTrue(response.equals(response)); Assert.assertFalse(response.equals(null)); } diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java index 250429a8..b6e05848 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java @@ -17,41 +17,48 @@ package cn.hippo4j.rpc.server; +import cn.hippo4j.rpc.connection.SimpleServerConnection; import cn.hippo4j.rpc.handler.TestHandler; import org.junit.Assert; import org.junit.Test; public class NettyServerConnectionTest { + static final String test = "Test"; + @Test public void addLast() { - NettyServerConnection connection = new NettyServerConnection(); - Assert.assertTrue(connection.isEmpty()); - connection.addLast(null, new TestHandler()); - Assert.assertFalse(connection.isEmpty()); + try (SimpleServerConnection connection = new SimpleServerConnection()) { + Assert.assertTrue(connection.isEmpty()); + connection.addLast(null, new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } } @Test public void addFirst() { - NettyServerConnection connection = new NettyServerConnection(); - Assert.assertTrue(connection.isEmpty()); - connection.addFirst(null, new TestHandler()); - Assert.assertFalse(connection.isEmpty()); + try (SimpleServerConnection connection = new SimpleServerConnection()) { + Assert.assertTrue(connection.isEmpty()); + connection.addFirst(null, new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } } @Test public void testAddLast() { - NettyServerConnection connection = new NettyServerConnection(); - Assert.assertTrue(connection.isEmpty()); - connection.addLast("Test", new TestHandler()); - Assert.assertFalse(connection.isEmpty()); + try (SimpleServerConnection connection = new SimpleServerConnection()) { + Assert.assertTrue(connection.isEmpty()); + connection.addLast(test, new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } } @Test public void testAddFirst() { - NettyServerConnection connection = new NettyServerConnection(); - Assert.assertTrue(connection.isEmpty()); - connection.addFirst("Test", new TestHandler()); - Assert.assertFalse(connection.isEmpty()); + try (SimpleServerConnection connection = new SimpleServerConnection()) { + Assert.assertTrue(connection.isEmpty()); + connection.addFirst(test, new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } } } \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java index ac6f2637..b53fd4fb 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java @@ -17,43 +17,31 @@ package cn.hippo4j.rpc.server; -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.CallManager; -import cn.hippo4j.rpc.client.ClientConnection; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.handler.TestHandler; -import cn.hippo4j.rpc.model.DefaultRequest; -import cn.hippo4j.rpc.model.Request; -import cn.hippo4j.rpc.model.Response; +import cn.hippo4j.rpc.connection.ServerConnection; +import cn.hippo4j.rpc.connection.SimpleServerConnection; +import cn.hippo4j.rpc.handler.ServerTakeHandler; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.pool.ChannelPoolHandler; import org.junit.Assert; import org.junit.Test; import java.io.IOException; -import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; public class RPCServerTest { + static final String instance = "instance"; + @Test public void bind() throws IOException { - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); + ServerTakeHandler handler = new ServerTakeHandler(instance, o -> 1); + ServerConnection connection = new SimpleServerConnection(handler); RPCServer rpcServer = new RPCServer(connection, RandomPort::getSafeRandomPort); rpcServer.bind(); while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); } boolean active = rpcServer.isActive(); Assert.assertTrue(active); @@ -62,71 +50,18 @@ public class RPCServerTest { @Test public void bindTest() throws IOException { - Instance instance = new DefaultInstance(); EventLoopGroup leader = new NioEventLoopGroup(); EventLoopGroup worker = new NioEventLoopGroup(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(leader, worker, handler); + ServerTakeHandler handler = new ServerTakeHandler(instance, o -> 1); + ServerConnection connection = new SimpleServerConnection(leader, worker, handler); RPCServer rpcServer = new RPCServer(connection, RandomPort::getSafeRandomPort); rpcServer.bind(); while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1L)); } boolean active = rpcServer.isActive(); Assert.assertTrue(active); rpcServer.close(); } - @Test - public void bindPipelineTest() throws IOException { - ServerPort serverPort = new ServerPort() { - - final int port = RandomPort.getSafeRandomPort(); - - @Override - public int getPort() { - return port; - } - }; - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - NettyServerConnection connection = new NettyServerConnection(handler); - connection.addLast("Test", new TestHandler()); - RPCServer rpcServer = new RPCServer(connection, serverPort); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", serverPort.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - Request request = new DefaultRequest("127.0.0.18888", className, "call", null, null); - for (int i = 0; i < 50; i++) { - Response response = rpcClient.connection(request); - boolean active = rpcClient.isActive(); - Assert.assertTrue(active); - Assert.assertEquals(response.getObj(), 1); - } - rpcClient.close(); - rpcServer.close(); - } - - @Test - public void bindNegativeTest() { - ServerPort serverPort = () -> -1; - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - NettyServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, serverPort); - rpcServer.bind(); - } } \ No newline at end of file diff --git a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/ServerSupportTest.java similarity index 58% rename from threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java rename to threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/ServerSupportTest.java index a72d2318..036e0a79 100644 --- a/threadpool/rpc/src/main/java/cn/hippo4j/rpc/server/ServerConnection.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/server/ServerSupportTest.java @@ -17,19 +17,25 @@ package cn.hippo4j.rpc.server; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.Connection; +import cn.hippo4j.rpc.client.RandomPort; +import org.junit.Assert; +import org.junit.Test; -/** - * This applies to server-side connections - * - * @since 2.0.0 - */ -public interface ServerConnection extends Connection { +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; + +public class ServerSupportTest { - /** - * Bind ports and process them - */ - void bind(ServerPort port); + @Test + public void bind() throws IOException { + ServerSupport support = new ServerSupport(RandomPort::getSafeRandomPort); + support.bind(); + while (!support.isActive()) { + LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(100L)); + } + Assert.assertTrue(support.isActive()); + support.close(); + } -} +} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/AddressUtilTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/AddressUtilTest.java new file mode 100644 index 00000000..e8b857a5 --- /dev/null +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/AddressUtilTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.rpc.support; + +import cn.hippo4j.rpc.exception.ConnectionException; +import org.junit.Assert; +import org.junit.Test; + +import java.net.InetSocketAddress; + +public class AddressUtilTest { + + String address1 = "http://hippo4j.cn/login:8080"; + String address2 = "https://hippo4j.cn/login:8080"; + String address3 = "https://hippo4j.cn/login"; + String addressHostName = "hippo4j.cn/login"; + int addressPort = 8080; + + @Test + public void test() { + InetSocketAddress address = AddressUtil.getInetAddress(address1); + Assert.assertEquals(addressHostName, address.getHostName()); + Assert.assertEquals(addressPort, address.getPort()); + } + + @Test + public void testAddress2() { + InetSocketAddress address = AddressUtil.getInetAddress(address2); + Assert.assertEquals(addressHostName, address.getHostName()); + Assert.assertEquals(addressPort, address.getPort()); + } + + @Test(expected = ConnectionException.class) + public void testAddress3() { + AddressUtil.getInetAddress(address3); + } +} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyClientSupportTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyClientSupportTest.java deleted file mode 100644 index f1d5e09f..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyClientSupportTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.CallManager; -import cn.hippo4j.rpc.client.ClientConnection; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; -import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.handler.TestHandler; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import io.netty.channel.pool.ChannelPoolHandler; -import org.junit.Test; - -import java.io.IOException; -import java.net.InetSocketAddress; - -public class NettyClientSupportTest { - - @Test - public void closeTest() throws IOException { - int port = RandomPort.getSafeRandomPort(); - ServerPort serverPort = () -> port; - Class cls = CallManager.class; - String className = cls.getName(); - ClassRegistry.put(className, cls); - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - NettyServerConnection connection = new NettyServerConnection(handler); - connection.addLast("Test", new TestHandler()); - RPCServer rpcServer = new RPCServer(connection, serverPort); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - - NettyClientSupport.closeClient(new InetSocketAddress("localhost", port)); - - rpcClient.close(); - rpcServer.close(); - } - -} diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java deleted file mode 100644 index bdc45d42..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import cn.hippo4j.rpc.server.ServerConnection; -import io.netty.channel.Channel; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.util.concurrent.Future; -import org.junit.Assert; -import org.junit.Test; - -import java.io.IOException; -import java.net.InetSocketAddress; - -public class NettyConnectPoolTest { - - String host = "127.0.0.1"; - ServerPort port = new TestServerPort(); - int maxCount = 64; - int timeout = 5000; - EventLoopGroup group = new NioEventLoopGroup(); - Class cls = NioSocketChannel.class; - - @Test - public void acquire() throws IOException { - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - // Given the delay in starting the server, wait here - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyConnectPool pool = new NettyConnectPool(address, maxCount, timeout, group, cls, poolHandler); - Channel acquire = pool.acquire(timeout); - Assert.assertNotNull(acquire); - pool.release(acquire); - rpcServer.close(); - } - - @Test - public void testAcquire() throws IOException { - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - // Given the delay in starting the server, wait here - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyConnectPool pool = new NettyConnectPool(address, maxCount, timeout, group, cls, poolHandler); - Future acquire = pool.acquire(); - Assert.assertNotNull(acquire); - rpcServer.close(); - } - - @Test - public void close() throws IOException { - // The mode connection was denied when the server was started on the specified port - Instance instance = new DefaultInstance(); - NettyServerTakeHandler handler = new NettyServerTakeHandler(instance); - ServerConnection connection = new NettyServerConnection(handler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - // Given the delay in starting the server, wait here - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved(host, port.getPort()); - NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyConnectPool pool = new NettyConnectPool(address, maxCount, timeout, group, cls, poolHandler); - Channel acquire = pool.acquire(timeout); - Assert.assertNotNull(acquire); - pool.release(acquire); - pool.close(); - rpcServer.close(); - } - - static class TestServerPort implements ServerPort { - - int port = RandomPort.getSafeRandomPort(); - @Override - public int getPort() { - return port; - } - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java deleted file mode 100644 index c807c514..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.Client; -import cn.hippo4j.rpc.client.NettyClientConnection; -import cn.hippo4j.rpc.client.RPCClient; -import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.ClassRegistry; -import cn.hippo4j.rpc.discovery.DefaultInstance; -import cn.hippo4j.rpc.discovery.Instance; -import cn.hippo4j.rpc.discovery.InstanceServerLoader; -import cn.hippo4j.rpc.discovery.ServerPort; -import cn.hippo4j.rpc.exception.ConnectionException; -import cn.hippo4j.rpc.handler.NettyClientPoolHandler; -import cn.hippo4j.rpc.handler.NettyClientTakeHandler; -import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.server.NettyServerConnection; -import cn.hippo4j.rpc.server.RPCServer; -import io.netty.channel.pool.ChannelPoolHandler; -import org.junit.Assert; -import org.junit.Test; - -import java.io.IOException; -import java.net.InetSocketAddress; - -public class NettyProxyCenterTest { - - ServerPort port = new TestServerPort(); - - @Test - public void getProxy() { - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); - NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, address, handler); - Assert.assertNotNull(localhost); - } - - @Test - public void createProxy() { - ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, "localhost:8894"); - Assert.assertNotNull(localhost); - NettyProxyCenter.getProxy(ProxyInterface.class, "localhost:8894"); - InetSocketAddress socketAddress = InetSocketAddress.createUnresolved("localhost", 8894); - Client client = NettyClientSupport.getClient(socketAddress); - ProxyInterface proxy = NettyProxyCenter.createProxy(client, ProxyInterface.class, socketAddress); - Assert.assertNotNull(proxy); - } - - @Test(expected = ConnectionException.class) - public void createProxyException() { - NettyProxyCenter.getProxy(ProxyInterface.class, "localhost8894"); - } - - @Test - public void removeProxy() { - NettyProxyCenter.getProxy(ProxyInterface.class, "localhost:8894"); - NettyProxyCenter.removeProxy(ProxyInterface.class, "localhost:8894"); - } - - @Test(expected = ConnectionException.class) - public void removeProxyException() { - NettyProxyCenter.removeProxy(ProxyInterface.class, "localhost8894"); - } - - @Test(expected = RuntimeException.class) - public void getProxyTest() { - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); - NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ProxyClass localhost = NettyProxyCenter.getProxy(ProxyClass.class, address, handler); - Assert.assertNotNull(localhost); - } - - @Test - public void bindPipelineTest() throws IOException { - // server - Class cls = InstanceServerLoader.class; - ClassRegistry.put(cls.getName(), cls); - ServerPort port = new TestServerPort(); - Instance instance = new DefaultInstance(); - NettyServerTakeHandler serverHandler = new NettyServerTakeHandler(instance); - NettyServerConnection connection = new NettyServerConnection(serverHandler); - RPCServer rpcServer = new RPCServer(connection, port); - rpcServer.bind(); - while (!rpcServer.isActive()) { - ThreadUtil.sleep(100L); - } - InetSocketAddress address = InetSocketAddress.createUnresolved("localhost", port.getPort()); - ChannelPoolHandler channelPoolHandler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - NettyClientConnection clientConnection = new NettyClientConnection(address, channelPoolHandler); - RPCClient rpcClient = new RPCClient(clientConnection); - - InstanceServerLoader loader = NettyProxyCenter.createProxy(rpcClient, cls, address); - String name = loader.getName(); - Assert.assertEquals("name", name); - rpcClient.close(); - rpcServer.close(); - } - - interface ProxyInterface { - - void hello(); - } - - static class ProxyClass { - - } - - static class TestServerPort implements ServerPort { - - int port = RandomPort.getSafeRandomPort(); - - @Override - public int getPort() { - return port; - } - } -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyServerSupportTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyServerSupportTest.java deleted file mode 100644 index bb9a9be0..00000000 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/NettyServerSupportTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.rpc.support; - -import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.rpc.client.RandomPort; -import cn.hippo4j.rpc.discovery.InstanceServerLoader; -import org.junit.Assert; -import org.junit.Test; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class NettyServerSupportTest { - - @Test - public void bind() throws IOException { - NettyServerSupport support = new NettyServerSupport(RandomPort::getSafeRandomPort, InstanceServerLoader.class); - support.bind(); - while (!support.isActive()) { - ThreadUtil.sleep(100L); - } - Assert.assertTrue(support.isActive()); - support.close(); - } - - @Test - public void bindTest() throws IOException { - List> classes = new ArrayList<>(); - classes.add(InstanceServerLoader.class); - NettyServerSupport support = new NettyServerSupport(RandomPort::getSafeRandomPort, classes); - support.bind(); - while (!support.isActive()) { - ThreadUtil.sleep(100L); - } - Assert.assertTrue(support.isActive()); - support.close(); - } - -} \ No newline at end of file diff --git a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/ResultHolderTest.java b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/ResultHolderTest.java index 4302a335..7f2f01ef 100644 --- a/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/ResultHolderTest.java +++ b/threadpool/rpc/src/test/java/cn/hippo4j/rpc/support/ResultHolderTest.java @@ -17,10 +17,10 @@ package cn.hippo4j.rpc.support; -import cn.hippo4j.common.toolkit.IdUtil; import org.junit.Assert; import org.junit.Test; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -28,12 +28,15 @@ import java.util.concurrent.locks.LockSupport; public class ResultHolderTest { + static final String str1 = "1"; + static final String str2 = "2"; + @Test public void test() { - String s1 = IdUtil.simpleUUID(); - String o1 = s1 + "1"; - String s2 = IdUtil.simpleUUID(); - String o2 = s2 + "2"; + String s1 = UUID.randomUUID().toString(); + String o1 = s1 + str1; + String s2 = UUID.randomUUID().toString(); + String o2 = s2 + str2; ResultHolder.put(s1, o1); ResultHolder.put(s2, o2); @@ -48,8 +51,8 @@ public class ResultHolderTest { @Test public void testThread() throws InterruptedException { AtomicInteger a = new AtomicInteger(); - String s1 = IdUtil.simpleUUID(); - String o1 = s1 + "1"; + String s1 = UUID.randomUUID().toString(); + String o1 = s1 + str1; CompletableFuture.runAsync(() -> { ResultHolder.putThread(o1, Thread.currentThread()); LockSupport.park(); diff --git a/threadpool/rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader b/threadpool/rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader deleted file mode 100644 index 3014d7e6..00000000 --- a/threadpool/rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader +++ /dev/null @@ -1,18 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -cn.hippo4j.rpc.discovery.InstanceServerLoaderImpl \ No newline at end of file From 8b877607d2846428d03efc41250cfaa1caaf6da2 Mon Sep 17 00:00:00 2001 From: magestack Date: Sat, 20 May 2023 20:02:50 +0800 Subject: [PATCH 23/58] Registered company (#1311) --- docs/i18n/zh/docusaurus-plugin-content-pages/users.md | 3 ++- docs/src/pages/users.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md index f667e7e7..c780d5e1 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md +++ b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md @@ -5,7 +5,7 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 37+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 38+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) @@ -44,6 +44,7 @@ title: 采用公司 - [网易有道信息技术(北京)有限公司](https://www.youdao.com) - [神州数码(西安)](https://www.digitalchina.com) - [广联达科技股份有限公司](https://www.glodon.com) +- [天健联创控股集团有限公司](https://www.tjlc.com.cn) ## 登记 diff --git a/docs/src/pages/users.md b/docs/src/pages/users.md index f667e7e7..c780d5e1 100644 --- a/docs/src/pages/users.md +++ b/docs/src/pages/users.md @@ -5,7 +5,7 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 37+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 38+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) @@ -44,6 +44,7 @@ title: 采用公司 - [网易有道信息技术(北京)有限公司](https://www.youdao.com) - [神州数码(西安)](https://www.digitalchina.com) - [广联达科技股份有限公司](https://www.glodon.com) +- [天健联创控股集团有限公司](https://www.tjlc.com.cn) ## 登记 From f041a780ef7518c48205d217445e02cf226fde13 Mon Sep 17 00:00:00 2001 From: lucca suen <72333564+lucca-suen@users.noreply.github.com> Date: Sat, 20 May 2023 20:04:35 +0800 Subject: [PATCH 24/58] fix: HttpUtilsTest generate the additional directory (#1310) Co-authored-by: lucca --- .../common/toolkit/http/HttpUtilsTest.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java index a4e500b7..73e5c282 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/http/HttpUtilsTest.java @@ -50,28 +50,33 @@ public class HttpUtilsTest { static final String LOGIN_URL = "/login"; static final String LOGIN_NAME = "loginServlet"; static final String CONTEXT_PATH = "/"; - static final String PATH_NAME = "."; static final String USER_DIR = "user.dir"; - static final String PREFIX = File.separator + "tomcat."; + static final String BASE_DIR = System.getProperty(USER_DIR) + "/target/tomcat"; @BeforeClass public static void startWeb() throws IOException, LifecycleException { tomcat = new Tomcat(); + // clear historical files that may be left behind + deleteBaseDir(); + // set base dir + tomcat.setBaseDir(BASE_DIR); // get a random port ServerSocket socket = new ServerSocket(0); PORT = socket.getLocalPort(); socket.close(); tomcat.setPort(PORT); + // set a connector Connector connector = new Connector(PROTOCOL); connector.setThrowOnFailure(true); connector.setPort(PORT); tomcat.setConnector(connector); - String absolutePath = new File(PATH_NAME).getAbsolutePath(); - Context context = tomcat.addContext(CONTEXT_PATH, absolutePath); + // set a context + Context context = tomcat.addContext(CONTEXT_PATH, BASE_DIR); Tomcat.addServlet(context, HOME_PAGE_NAME, new HomeServlet()).setAsyncSupported(true); context.addServletMappingDecoded(HOME_PAGE_URL, HOME_PAGE_NAME); Tomcat.addServlet(context, LOGIN_NAME, new LoginServlet()).setAsyncSupported(true); context.addServletMappingDecoded(LOGIN_URL, LOGIN_NAME); + // start tomcat tomcat.start(); } @@ -80,8 +85,15 @@ public class HttpUtilsTest { // stop tomcat tomcat.stop(); // del dir - String userUrl = System.getProperty(USER_DIR); - File file = new File(userUrl + PREFIX + PORT); + deleteBaseDir(); + } + + /** + * forcibly delete the tomcat's base dir and its sub files + */ + private static void deleteBaseDir() throws IOException { + File file = new File(BASE_DIR); + // fail fast if (!file.exists()) { return; } @@ -98,7 +110,6 @@ public class HttpUtilsTest { Files.delete(dir); return FileVisitResult.CONTINUE; } - }); } From ca256373c547122ef22388553af7500b4fc71b41 Mon Sep 17 00:00:00 2001 From: BigXin0109 <1064730540@qq.com> Date: Sun, 21 May 2023 16:25:00 +0800 Subject: [PATCH 25/58] Remove the threadpool directory under docker #1303 (#1315) --- .gitignore | 4 ++-- docker/{threadpool => }/Dockerfile | 0 docker/{threadpool => }/docker-startup.sh | 0 docs/docs/user_docs/ops/server-docker.md | 4 ++-- .../current/user_docs/ops/server-docker.md | 4 ++-- threadpool/server/bootstrap/pom.xml | 6 +++--- 6 files changed, 9 insertions(+), 9 deletions(-) rename docker/{threadpool => }/Dockerfile (100%) rename docker/{threadpool => }/docker-startup.sh (100%) diff --git a/.gitignore b/.gitignore index b43da0e6..86147440 100644 --- a/.gitignore +++ b/.gitignore @@ -49,5 +49,5 @@ docs/.docusaurus ### Docker ### -docker/threadpool/conf -docker/threadpool/target \ No newline at end of file +docker/conf +docker/target \ No newline at end of file diff --git a/docker/threadpool/Dockerfile b/docker/Dockerfile similarity index 100% rename from docker/threadpool/Dockerfile rename to docker/Dockerfile diff --git a/docker/threadpool/docker-startup.sh b/docker/docker-startup.sh similarity index 100% rename from docker/threadpool/docker-startup.sh rename to docker/docker-startup.sh diff --git a/docs/docs/user_docs/ops/server-docker.md b/docs/docs/user_docs/ops/server-docker.md index 2f81a57e..7b106a2c 100644 --- a/docs/docs/user_docs/ops/server-docker.md +++ b/docs/docs/user_docs/ops/server-docker.md @@ -36,9 +36,9 @@ hippo4j/hippo4j-server ```shell # 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -Dskip.spotless.apply=true -# 进入到 docker/threadpool 工程路径下 +# 进入到 docker 工程路径下 # 默认打包是打包的 tag 是 latest -docker build -t hippo4j/hippo4j-server ../threadpool +docker build -t hippo4j/hippo4j-server ../docker ``` 方式二: diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md index 2f81a57e..7b106a2c 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md @@ -36,9 +36,9 @@ hippo4j/hippo4j-server ```shell # 进入到 threadpool/server/bootstrap 工程路径下 mvn clean package -Dskip.spotless.apply=true -# 进入到 docker/threadpool 工程路径下 +# 进入到 docker 工程路径下 # 默认打包是打包的 tag 是 latest -docker build -t hippo4j/hippo4j-server ../threadpool +docker build -t hippo4j/hippo4j-server ../docker ``` 方式二: diff --git a/threadpool/server/bootstrap/pom.xml b/threadpool/server/bootstrap/pom.xml index 2fd29939..071f18a3 100644 --- a/threadpool/server/bootstrap/pom.xml +++ b/threadpool/server/bootstrap/pom.xml @@ -11,7 +11,7 @@ true - ${project.parent.parent.parent.basedir}/docker/threadpool + ${project.parent.parent.parent.basedir}/docker @@ -70,7 +70,7 @@ UTF-8 - ../../../docker/threadpool/conf/ + ../../../docker/conf/ conf @@ -91,7 +91,7 @@ UTF-8 - ../../../docker/threadpool/target + ../../../docker/target target From dd2c27ba3c08b875bc8324c6513e786730d1d467 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 May 2023 19:53:16 +0800 Subject: [PATCH 26/58] Bump junit from 4.12 to 4.13.1 in /agent (#1307) Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1) --- updated-dependencies: - dependency-name: junit:junit dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- agent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/pom.xml b/agent/pom.xml index 93c5776c..d0a8b793 100644 --- a/agent/pom.xml +++ b/agent/pom.xml @@ -20,7 +20,7 @@ cn.hippo4j.agent.dependencies 1.8 - 4.12 + 4.13.1 2.0.7 3.5.13 1.18.20 From a9ca0a7b84bc9add2c9af5d07c185480a6626482 Mon Sep 17 00:00:00 2001 From: Serenity <1360359624@qq.com> Date: Mon, 22 May 2023 15:46:22 +0800 Subject: [PATCH 27/58] Encrypted transmission of login password (#1316) * feat(login): #1300 Encrypted transmission of login password * feat(login): #1300 Modify the comments to English * ref(login): #1300 Restore static resources --------- Co-authored-by: limingwei Co-authored-by: Serenity --- threadpool/console/package.json | 2 + threadpool/console/src/store/modules/user.js | 255 ++++++++++-------- threadpool/console/src/views/login/index.vue | 4 +- .../auth/filter/JWTAuthenticationFilter.java | 10 + .../auth/model/biz/user/LoginUser.java | 4 + .../java/cn/hippo4j/auth/toolkit/AESUtil.java | 92 +++++++ 6 files changed, 252 insertions(+), 115 deletions(-) create mode 100644 threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java diff --git a/threadpool/console/package.json b/threadpool/console/package.json index aa4202ab..505a900b 100755 --- a/threadpool/console/package.json +++ b/threadpool/console/package.json @@ -44,9 +44,11 @@ }, "dependencies": { "axios": ">=0.18.1", + "buffer": "^6.0.3", "clipboard": "2.0.4", "codemirror": "5.45.0", "core-js": "^3.26.0", + "crypto": "^1.0.1", "echarts": "^5.2.2", "element-ui": "^2.15.7", "fuse.js": "3.4.4", diff --git a/threadpool/console/src/store/modules/user.js b/threadpool/console/src/store/modules/user.js index bae7a0c1..59bd3d28 100755 --- a/threadpool/console/src/store/modules/user.js +++ b/threadpool/console/src/store/modules/user.js @@ -1,126 +1,155 @@ -import { login } from '@/api/user'; -import { getToken, setToken, removeToken } from '@/utils/auth'; -import router, { resetRouter } from '@/router'; +import {login} from '@/api/user'; +import {getToken, removeToken, setToken} from '@/utils/auth'; +import router, {resetRouter} from '@/router'; +import {Buffer} from 'buffer' +import crypto from 'crypto' const state = { - token: getToken(), - name: '', - avatar: '', - introduction: '', - roles: [], + token: getToken(), + name: '', + avatar: '', + introduction: '', + roles: [], }; const mutations = { - SET_TOKEN: (state, token) => { - state.token = token; - }, - SET_INTRODUCTION: (state, introduction) => { - state.introduction = introduction; - }, - SET_NAME: (state, name) => { - state.name = name; - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar; - }, - SET_ROLES: (state, roles) => { - state.roles = roles; - }, + SET_TOKEN: (state, token) => { + state.token = token; + }, + SET_INTRODUCTION: (state, introduction) => { + state.introduction = introduction; + }, + SET_NAME: (state, name) => { + state.name = name; + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar; + }, + SET_ROLES: (state, roles) => { + state.roles = roles; + }, }; const actions = { - // user login - login({ commit }, userInfo) { - const { username, password } = userInfo; - return new Promise((resolve, reject) => { - login({ username: username.trim(), password: password, rememberMe: 1 }) - .then((response) => { - const { data } = response; - const { roles } = response; - commit('SET_TOKEN', data); - localStorage.setItem('roles', JSON.stringify(roles)); - localStorage.setItem('USER_ROLE', roles[0]); - setToken(data); - resolve(); - }) - .catch((error) => { - alert('登录失败'); - reject(error); + // user login + login({commit}, userInfo) { + const {username, password} = userInfo; + return new Promise((resolve, reject) => { + let key = actions.genKey(); + let encodePassword = actions.encrypt(password, key) + key = key.split("").reverse().join("") + login({username: username.trim(), password: encodePassword, tag: key, rememberMe: 1}) + .then((response) => { + const {data} = response; + const {roles} = response; + commit('SET_TOKEN', data); + localStorage.setItem('roles', JSON.stringify(roles)); + localStorage.setItem('USER_ROLE', roles[0]); + setToken(data); + resolve(); + }) + .catch((error) => { + // alert('登录失败'); + reject(error); + }); }); - }); - }, - - // get user info - getInfo({ commit, state }) { - return new Promise((resolve, reject) => { - const data = {}; - data.roles = JSON.parse(localStorage.getItem('roles')); - commit('SET_ROLES', data.roles); - resolve(data); - }); - }, - - // user logout - logout({ commit, state }) { - // return new Promise((resolve, reject) => { - // logout(state.token).then(() => { - // commit('SET_TOKEN', '') - // commit('SET_ROLES', []) - // removeToken() - // resetRouter() - // resolve() - // }).catch(error => { - // reject(error) - // }) - // }) - return new Promise((resolve) => { - commit('SET_TOKEN', ''); - commit('SET_ROLES', []); - removeToken(); - resetRouter(); - resolve(); - }); - }, - - // remove token - resetToken({ commit }) { - return new Promise((resolve) => { - commit('SET_TOKEN', ''); - commit('SET_ROLES', []); - removeToken(); - resolve(); - }); - }, - - // dynamically modify permissions - changeRoles({ commit, dispatch }, role) { - return new Promise(async (resolve) => { - const token = role + '-token'; - - commit('SET_TOKEN', token); - setToken(token); - - const { roles } = await dispatch('getInfo'); - - resetRouter(); - - // generate accessible routes map based on roles - const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true }); - - // dynamically add accessible routes - router.addRoutes(accessRoutes); - - // reset visited views and cached views - dispatch('tagsView/delAllViews', null, { root: true }); - - resolve(); - }); - }, + }, + + + // get user info + getInfo({commit, state}) { + return new Promise((resolve, reject) => { + const data = {}; + data.roles = JSON.parse(localStorage.getItem('roles')); + commit('SET_ROLES', data.roles); + resolve(data); + }); + }, + + // user logout + logout({commit, state}) { + // return new Promise((resolve, reject) => { + // logout(state.token).then(() => { + // commit('SET_TOKEN', '') + // commit('SET_ROLES', []) + // removeToken() + // resetRouter() + // resolve() + // }).catch(error => { + // reject(error) + // }) + // }) + return new Promise((resolve) => { + commit('SET_TOKEN', ''); + commit('SET_ROLES', []); + removeToken(); + resetRouter(); + resolve(); + }); + }, + + // remove token + resetToken({commit}) { + return new Promise((resolve) => { + commit('SET_TOKEN', ''); + commit('SET_ROLES', []); + removeToken(); + resolve(); + }); + }, + + // dynamically modify permissions + changeRoles({commit, dispatch}, role) { + return new Promise(async (resolve) => { + const token = role + '-token'; + + commit('SET_TOKEN', token); + setToken(token); + + const {roles} = await dispatch('getInfo'); + + resetRouter(); + + // generate accessible routes map based on roles + const accessRoutes = await dispatch('permission/generateRoutes', roles, {root: true}); + + // dynamically add accessible routes + router.addRoutes(accessRoutes); + + // reset visited views and cached views + dispatch('tagsView/delAllViews', null, {root: true}); + + resolve(); + }); + }, + genKey() { + let chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" + let result = ''; + for (let i = 16; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; + return result; + }, + encrypt(msg, key) { + try { + let pwd = Buffer.from(key) + let iv = crypto.randomBytes(12) + let cipher = crypto.createCipheriv('aes-128-gcm', pwd, iv) + let enc = cipher.update(msg, 'utf8', 'base64') + enc += cipher.final('base64') + let tags = cipher.getAuthTag() + enc = Buffer.from(enc, 'base64') + let totalLength = iv.length + enc.length + tags.length + let bufferMsg = Buffer.concat([iv, enc, tags], totalLength) + return bufferMsg.toString('base64') + } catch (e) { + console.log("Encrypt is error", e) + return null + } + }, }; export default { - namespaced: true, - state, - mutations, - actions, + namespaced: true, + state, + mutations, + actions, }; diff --git a/threadpool/console/src/views/login/index.vue b/threadpool/console/src/views/login/index.vue index 086359a3..66ce2387 100755 --- a/threadpool/console/src/views/login/index.vue +++ b/threadpool/console/src/views/login/index.vue @@ -170,8 +170,8 @@ export default { this.$router.push({ path: this.redirect || '/', query: this.otherQuery }); this.loading = false; }) - .catch(() => { - console.log('error catch.'); + .catch((e) => { + console.log('error catch.',e); this.loading = false; }); } else { diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java index e64ab45c..408aa3d4 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/filter/JWTAuthenticationFilter.java @@ -19,12 +19,14 @@ package cn.hippo4j.auth.filter; import cn.hippo4j.auth.model.biz.user.JwtUser; import cn.hippo4j.auth.model.biz.user.LoginUser; +import cn.hippo4j.auth.toolkit.AESUtil; import cn.hippo4j.auth.toolkit.JwtTokenUtil; import cn.hippo4j.auth.toolkit.ReturnT; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.server.common.base.Results; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.core.codec.DecodingException; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -38,6 +40,7 @@ import javax.servlet.FilterChain; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -69,10 +72,17 @@ public class JWTAuthenticationFilter extends UsernamePasswordAuthenticationFilte Authentication authenticate = null; try { LoginUser loginUser = new ObjectMapper().readValue(request.getInputStream(), LoginUser.class); + String key = new StringBuffer(loginUser.getTag()).reverse().toString(); + String password = AESUtil.decrypt(loginUser.getPassword(), key); + loginUser.setPassword(password); + request.setAttribute("loginUser", loginUser); rememberMe.set(loginUser.getRememberMe()); authenticate = authenticationManager.authenticate( new UsernamePasswordAuthenticationToken(loginUser.getUsername(), loginUser.getPassword(), new ArrayList())); + } catch (GeneralSecurityException e) { + log.warn("Password decode exception: {}", e.getMessage()); + throw new DecodingException(e.getMessage()); } catch (UsernameNotFoundException e) { log.warn("User {} not found", e.getMessage()); throw e; diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java index 0c15778c..b5cd71d3 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java @@ -24,6 +24,10 @@ import lombok.Data; */ @Data public class LoginUser { + /** + * encode key reverse + */ + private String tag; /** * username diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java new file mode 100644 index 00000000..5a1ed033 --- /dev/null +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java @@ -0,0 +1,92 @@ +package cn.hippo4j.auth.toolkit; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import lombok.experimental.UtilityClass; + +import javax.crypto.*; +import javax.crypto.spec.GCMParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; +import java.util.Base64; + +/** + * AES encryption and decryption algorithm tool class + * + * @author Serenity + * @date 2023/5/21 14:37 + * @since JDK1.8+ + */ +@UtilityClass +public class AESUtil { + + private static final String AES_GCM_CIPHER = "AES/GCM/PKCS5Padding"; + + /** + * encrypt + * + * @param data Content that needs to be encrypted + * @param key Encrypt the password + * @return byte[] + */ + public static byte[] encrypt(byte[] data, byte[] key) throws GeneralSecurityException { + SecretKeySpec sKeySpec = new SecretKeySpec(key, "AES"); + Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); + cipher.init(Cipher.ENCRYPT_MODE, sKeySpec); + byte[] iv = cipher.getIV(); + byte[] encryptData = cipher.doFinal(data); + byte[] message = new byte[12 + data.length + 16]; + System.arraycopy(iv, 0, message, 0, 12); + System.arraycopy(encryptData, 0, message, 12, encryptData.length); + return message; + } + + /** + * decrypt + * + * @param data The content to be decrypted + * @param key Decryption key + * @return byte[] + */ + public static byte[] decrypt(byte[] data, byte[] key) throws GeneralSecurityException{ + GCMParameterSpec iv = new GCMParameterSpec(128, data, 0, 12); + Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); + SecretKey key2 = new SecretKeySpec(key, "AES"); + cipher.init(Cipher.DECRYPT_MODE, key2, iv); + return cipher.doFinal(data, 12, data.length - 12); + } + + /** + * encrypt + * + * @param data Content that needs to be encrypted + * @param key Encrypt the password + * @return String + */ + public static String encrypt(String data, String key) throws GeneralSecurityException { + byte[] valueByte = encrypt(data.getBytes(StandardCharsets.UTF_8), key.getBytes(StandardCharsets.UTF_8)); + return Base64.getEncoder().encodeToString(valueByte); + } + + /** + * decrypt + * + * @param data The content to be decrypted is a base64 string + * @param key Decryption key + * @return String + */ + public static String decrypt(String data, String key) throws GeneralSecurityException { + byte[] originalData = Base64.getDecoder().decode(data.getBytes()); + byte[] valueByte = decrypt(originalData, key.getBytes(StandardCharsets.UTF_8)); + return new String(valueByte); + } + + /** + * Generate a random string key + * + * @return The string key + */ + public static String generateRandomKey() { + return IdWorker.get32UUID().substring(0, 16); + } +} From fa122e42678e66f68dcae06dcb8e59fc383b9cf0 Mon Sep 17 00:00:00 2001 From: guanam <33339146+guanam@users.noreply.github.com> Date: Mon, 22 May 2023 15:58:58 +0800 Subject: [PATCH 28/58] add ClassUtilTest (#1318) --- .../hippo4j/common/toolkit/ClassUtilTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java new file mode 100644 index 00000000..548ff0b3 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java @@ -0,0 +1,27 @@ +package cn.hippo4j.common.toolkit; + + +import org.junit.Assert; +import org.junit.Test; + +/** + * test for {@link ClassUtil} + */ +public class ClassUtilTest { + + @Test + public void testGetClassLoader(){ + ClassLoader expectedClassLoader = Thread.currentThread().getContextClassLoader(); + ClassLoader actualClassLoader = ClassUtil.getClassLoader(ClassUtilTest.class); + Assert.assertEquals(expectedClassLoader, actualClassLoader); + + expectedClassLoader = ClassUtilTest.class.getClassLoader(); + actualClassLoader = ClassUtil.getClassLoader(null); + Assert.assertEquals(expectedClassLoader, actualClassLoader); + + expectedClassLoader = ClassLoader.getSystemClassLoader(); + actualClassLoader = ClassUtil.getClassLoader(String.class); + Assert.assertEquals(expectedClassLoader, actualClassLoader); + } + +} From bf9572f26152ef204488cd95d7dd182e3327c648 Mon Sep 17 00:00:00 2001 From: Serenity <1360359624@qq.com> Date: Mon, 22 May 2023 21:04:34 +0800 Subject: [PATCH 29/58] Extract the encryption section into a separate utility class (#1319) * feat(login): #1300 Encrypted transmission of login password * feat(login): #1300 Modify the comments to English * ref(login): #1300 Restore static resources * ref(console-login): Extract the encryption section into a separate utility class --------- Co-authored-by: limingwei Co-authored-by: Serenity --- threadpool/console/src/store/modules/user.js | 30 ++-------------- threadpool/console/src/utils/aes-util.js | 37 ++++++++++++++++++++ 2 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 threadpool/console/src/utils/aes-util.js diff --git a/threadpool/console/src/store/modules/user.js b/threadpool/console/src/store/modules/user.js index 59bd3d28..4b73f6b7 100755 --- a/threadpool/console/src/store/modules/user.js +++ b/threadpool/console/src/store/modules/user.js @@ -1,8 +1,7 @@ import {login} from '@/api/user'; import {getToken, removeToken, setToken} from '@/utils/auth'; import router, {resetRouter} from '@/router'; -import {Buffer} from 'buffer' -import crypto from 'crypto' +import {genKey, encrypt} from '@/utils/aes-util'; const state = { token: getToken(), @@ -35,8 +34,8 @@ const actions = { login({commit}, userInfo) { const {username, password} = userInfo; return new Promise((resolve, reject) => { - let key = actions.genKey(); - let encodePassword = actions.encrypt(password, key) + let key = genKey(); + let encodePassword = encrypt(password, key) key = key.split("").reverse().join("") login({username: username.trim(), password: encodePassword, tag: key, rememberMe: 1}) .then((response) => { @@ -122,29 +121,6 @@ const actions = { resolve(); }); }, - genKey() { - let chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" - let result = ''; - for (let i = 16; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - return result; - }, - encrypt(msg, key) { - try { - let pwd = Buffer.from(key) - let iv = crypto.randomBytes(12) - let cipher = crypto.createCipheriv('aes-128-gcm', pwd, iv) - let enc = cipher.update(msg, 'utf8', 'base64') - enc += cipher.final('base64') - let tags = cipher.getAuthTag() - enc = Buffer.from(enc, 'base64') - let totalLength = iv.length + enc.length + tags.length - let bufferMsg = Buffer.concat([iv, enc, tags], totalLength) - return bufferMsg.toString('base64') - } catch (e) { - console.log("Encrypt is error", e) - return null - } - }, }; export default { diff --git a/threadpool/console/src/utils/aes-util.js b/threadpool/console/src/utils/aes-util.js new file mode 100644 index 00000000..d4d78736 --- /dev/null +++ b/threadpool/console/src/utils/aes-util.js @@ -0,0 +1,37 @@ +import {Buffer} from 'buffer' +import crypto from 'crypto' + +/** + * generate key + * @returns {string} key(length 16) + */ +export function genKey() { + let chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" + let result = ''; + for (let i = 16; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; + return result; +} + +/** + * encode message + * @param msg message + * @param key key + * @returns {string} encoded message + */ +export function encrypt(msg, key) { + try { + let pwd = Buffer.from(key) + let iv = crypto.randomBytes(12) + let cipher = crypto.createCipheriv('aes-128-gcm', pwd, iv) + let enc = cipher.update(msg, 'utf8', 'base64') + enc += cipher.final('base64') + let tags = cipher.getAuthTag() + enc = Buffer.from(enc, 'base64') + let totalLength = iv.length + enc.length + tags.length + let bufferMsg = Buffer.concat([iv, enc, tags], totalLength) + return bufferMsg.toString('base64') + } catch (e) { + console.log("Encrypt is error", e) + return null + } +} \ No newline at end of file From d1362fab6ea9ba821daffa5e055eeff9759abf0e Mon Sep 17 00:00:00 2001 From: magestack Date: Mon, 22 May 2023 22:43:57 +0800 Subject: [PATCH 30/58] The abstract thread pool dynamically changes the kernel layer (#1320) --- ...ynamicThreadPoolChangeHandlerSpring2x.java | 1 - .../spring-plugin-common/pom.xml | 11 +- ...tDynamicThreadPoolChangeHandlerSpring.java | 102 +++++++----------- .../SpringThreadPoolRegisterSupport.java | 4 - .../hippo4j/common/toolkit/ClassUtilTest.java | 20 +++- .../api}/BootstrapPropertiesInterface.java | 2 +- .../dynamic/api/ThreadPoolDynamicRefresh.java | 19 ++++ kernel/dynamic/mode/config/pom.xml | 8 ++ .../config/parser/AbstractConfigParser.java | 29 +++++ .../config/parser/ConfigFileTypeEnum.java | 72 +++++++++++++ .../mode/config/parser/ConfigParser.java | 52 +++++++++ .../config/parser/ConfigParserHandler.java | 63 +++++++++++ .../config/parser/PropertiesConfigParser.java | 44 ++++++++ .../mode/config/parser/YamlConfigParser.java | 40 +++++++ ...bstractConfigThreadPoolDynamicRefresh.java | 52 +++++++++ ...ootstrapConfigPropertiesBinderAdapter.java | 8 +- .../ConfigHandlerAutoConfiguration.java | 4 +- ...xBootstrapConfigPropertiesBinderAdapt.java | 7 +- starters/threadpool/config/pom.xml | 5 + .../config/BootstrapConfigProperties.java | 2 +- .../config/ConfigHandlerConfiguration.java | 13 +-- ...bstractConfigThreadPoolDynamicRefresh.java | 26 +++-- .../refresher/ApolloRefresherHandler.java | 7 +- ...tBootstrapConfigPropertiesBinderAdapt.java | 6 +- .../refresher/EtcdRefresherHandler.java | 4 +- .../refresher/NacosCloudRefresherHandler.java | 4 +- .../refresher/NacosRefresherHandler.java | 5 +- .../refresher/ZookeeperRefresherHandler.java | 7 +- .../starter/config/BootstrapProperties.java | 2 +- threadpool/core/pom.xml | 5 + .../core/enable/BeforeCheckConfiguration.java | 3 +- .../DynamicThreadPoolBannerHandler.java | 2 +- .../auth/model/biz/user/LoginUser.java | 1 + .../java/cn/hippo4j/auth/toolkit/AESUtil.java | 47 +++++--- 34 files changed, 542 insertions(+), 135 deletions(-) rename {threadpool/core/src/main/java/cn/hippo4j/core/config => kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api}/BootstrapPropertiesInterface.java (97%) create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/AbstractConfigParser.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigFileTypeEnum.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParser.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParserHandler.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/PropertiesConfigParser.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/BootstrapConfigPropertiesBinderAdapter.java (76%) diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java index 6c8f96c2..019c3988 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java @@ -37,7 +37,6 @@ public class DynamicThreadPoolChangeHandlerSpring2x extends AbstractDynamicThrea super(context); } - @Override protected BootstrapConfigProperties bindProperties(Map configInfo, ApplicationContext applicationContext) { BootstrapConfigProperties bindableBootstrapConfigProperties = new BootstrapConfigProperties(); ConfigurationPropertySource sources = new MapConfigurationPropertySource(configInfo); diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml index bb61efbb..6d9de61c 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml @@ -37,14 +37,21 @@ cn.hippo4j - hippo4j-threadpool-config-spring-boot-starter + hippo4j-threadpool-dynamic-api ${project.version} provided cn.hippo4j - hippo4j-threadpool-dynamic-api + hippo4j-threadpool-core + ${project.version} + provided + + + + cn.hippo4j + hippo4j-threadpool-dynamic-mode-config ${project.version} provided diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java index 5107da56..6c77eee3 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java @@ -21,18 +21,16 @@ import cn.hippo4j.agent.core.registry.AgentThreadPoolExecutorHolder; import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; import cn.hippo4j.agent.core.util.ThreadPoolPropertyKey; import cn.hippo4j.agent.plugin.spring.common.conf.SpringBootConfig; -import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.config.springboot.starter.parser.ConfigFileTypeEnum; -import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigFileTypeEnum; +import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigParserHandler; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.ConfigFile; import com.ctrip.framework.apollo.ConfigService; @@ -43,19 +41,12 @@ import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Properties; +import java.util.*; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import static cn.hippo4j.agent.core.conf.Constants.SPRING_BOOT_CONFIG_PREFIX; -import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; -import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD_POOL_TEXT; /** * Abstract dynamic thread poo change handler spring @@ -93,8 +84,6 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th LOGGER.info("[Hippo4j-Agent] Dynamic thread pool refresher, add apollo listener success. namespace: {}", namespace); } - protected abstract BootstrapConfigProperties bindProperties(Map configInfo, ApplicationContext applicationContext); - private void dynamicRefresh(String configContent, Map newValueChangeMap, ApplicationContext context) { try { String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; @@ -104,34 +93,24 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th if (CollectionUtil.isNotEmpty(newValueChangeMap)) { Optional.ofNullable(afterConfigMap).ifPresent(each -> each.putAll(newValueChangeMap)); } - BootstrapConfigProperties afterConfigProperties = bindProperties(afterConfigMap, context); - - List executors = afterConfigProperties.getExecutors(); - for (ExecutorProperties afterProperties : executors) { - String threadPoolId = afterProperties.getThreadPoolId(); - AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); - if (holder.isEmpty() || holder.getExecutor() == null) { - continue; - } - ExecutorProperties beforeProperties = convert(holder.getProperties()); - - if (!checkConsistency(threadPoolId, beforeProperties, afterProperties)) { - continue; - } - - dynamicRefreshPool(beforeProperties, afterProperties); - holder.setProperties(failDefaultExecutorProperties(beforeProperties, afterProperties)); // do refresh. - ChangeParameterNotifyRequest changeRequest = buildChangeRequest(beforeProperties, afterProperties); - LOGGER.info(CHANGE_THREAD_POOL_TEXT, - threadPoolId, - String.format(CHANGE_DELIMITER, beforeProperties.getCorePoolSize(), changeRequest.getNowCorePoolSize()), - String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), changeRequest.getNowMaximumPoolSize()), - String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), changeRequest.getNowQueueCapacity()), - String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), changeRequest.getNowKeepAliveTime()), - String.format(CHANGE_DELIMITER, beforeProperties.getExecuteTimeOut(), changeRequest.getNowExecuteTimeOut()), - String.format(CHANGE_DELIMITER, beforeProperties.getRejectedHandler(), changeRequest.getNowRejectedName()), - String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), changeRequest.getNowAllowsCoreThreadTimeOut())); - } + // TODO + /* + * BootstrapConfigProperties afterConfigProperties = bindProperties(afterConfigMap, context); + * + * List executors = afterConfigProperties.getExecutors(); for (ExecutorProperties afterProperties : executors) { String threadPoolId = + * afterProperties.getThreadPoolId(); AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); if (holder.isEmpty() || + * holder.getExecutor() == null) { continue; } ExecutorProperties beforeProperties = convert(holder.getProperties()); + * + * if (!checkConsistency(threadPoolId, beforeProperties, afterProperties)) { continue; } + * + * dynamicRefreshPool(beforeProperties, afterProperties); holder.setProperties(failDefaultExecutorProperties(beforeProperties, afterProperties)); // do refresh. + * ChangeParameterNotifyRequest changeRequest = buildChangeRequest(beforeProperties, afterProperties); LOGGER.info(CHANGE_THREAD_POOL_TEXT, threadPoolId, String.format(CHANGE_DELIMITER, + * beforeProperties.getCorePoolSize(), changeRequest.getNowCorePoolSize()), String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), changeRequest.getNowMaximumPoolSize()), + * String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), changeRequest.getNowQueueCapacity()), String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), + * changeRequest.getNowKeepAliveTime()), String.format(CHANGE_DELIMITER, beforeProperties.getExecuteTimeOut(), changeRequest.getNowExecuteTimeOut()), String.format(CHANGE_DELIMITER, + * beforeProperties.getRejectedHandler(), changeRequest.getNowRejectedName()), String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), + * changeRequest.getNowAllowsCoreThreadTimeOut())); } + */ } catch (Exception ex) { LOGGER.error("[Hippo4j-Agent] config mode dynamic refresh failed.", ex); } @@ -183,7 +162,7 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th * Fail default executor properties. * * @param beforeProperties old properties - * @param afterProperties new properties + * @param afterProperties new properties * @return executor properties */ private Properties failDefaultExecutorProperties(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { @@ -236,27 +215,20 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th * @param afterProperties new properties * @return instance */ - private ChangeParameterNotifyRequest buildChangeRequest(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { - ChangeParameterNotifyRequest changeParameterNotifyRequest = ChangeParameterNotifyRequest.builder() - .beforeCorePoolSize(beforeProperties.getCorePoolSize()) - .beforeMaximumPoolSize(beforeProperties.getMaximumPoolSize()) - .beforeAllowsCoreThreadTimeOut(beforeProperties.getAllowCoreThreadTimeOut()) - .beforeKeepAliveTime(beforeProperties.getKeepAliveTime()) - .beforeQueueCapacity(beforeProperties.getQueueCapacity()) - .beforeRejectedName(beforeProperties.getRejectedHandler()) - .beforeExecuteTimeOut(beforeProperties.getExecuteTimeOut()) - .blockingQueueName(afterProperties.getBlockingQueue()) - .nowCorePoolSize(Optional.ofNullable(afterProperties.getCorePoolSize()).orElse(beforeProperties.getCorePoolSize())) - .nowMaximumPoolSize(Optional.ofNullable(afterProperties.getMaximumPoolSize()).orElse(beforeProperties.getMaximumPoolSize())) - .nowAllowsCoreThreadTimeOut(Optional.ofNullable(afterProperties.getAllowCoreThreadTimeOut()).orElse(beforeProperties.getAllowCoreThreadTimeOut())) - .nowKeepAliveTime(Optional.ofNullable(afterProperties.getKeepAliveTime()).orElse(beforeProperties.getKeepAliveTime())) - .nowQueueCapacity(Optional.ofNullable(afterProperties.getQueueCapacity()).orElse(beforeProperties.getQueueCapacity())) - .nowRejectedName(Optional.ofNullable(afterProperties.getRejectedHandler()).orElse(beforeProperties.getRejectedHandler())) - .nowExecuteTimeOut(Optional.ofNullable(afterProperties.getExecuteTimeOut()).orElse(beforeProperties.getExecuteTimeOut())) - .build(); - changeParameterNotifyRequest.setThreadPoolId(beforeProperties.getThreadPoolId()); - return changeParameterNotifyRequest; - } + /* + * private ChangeParameterNotifyRequest buildChangeRequest(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { ChangeParameterNotifyRequest changeParameterNotifyRequest = + * ChangeParameterNotifyRequest.builder() .beforeCorePoolSize(beforeProperties.getCorePoolSize()) .beforeMaximumPoolSize(beforeProperties.getMaximumPoolSize()) + * .beforeAllowsCoreThreadTimeOut(beforeProperties.getAllowCoreThreadTimeOut()) .beforeKeepAliveTime(beforeProperties.getKeepAliveTime()) .beforeQueueCapacity(beforeProperties.getQueueCapacity()) + * .beforeRejectedName(beforeProperties.getRejectedHandler()) .beforeExecuteTimeOut(beforeProperties.getExecuteTimeOut()) .blockingQueueName(afterProperties.getBlockingQueue()) + * .nowCorePoolSize(Optional.ofNullable(afterProperties.getCorePoolSize()).orElse(beforeProperties.getCorePoolSize())) + * .nowMaximumPoolSize(Optional.ofNullable(afterProperties.getMaximumPoolSize()).orElse(beforeProperties.getMaximumPoolSize())) + * .nowAllowsCoreThreadTimeOut(Optional.ofNullable(afterProperties.getAllowCoreThreadTimeOut()).orElse(beforeProperties.getAllowCoreThreadTimeOut())) + * .nowKeepAliveTime(Optional.ofNullable(afterProperties.getKeepAliveTime()).orElse(beforeProperties.getKeepAliveTime())) + * .nowQueueCapacity(Optional.ofNullable(afterProperties.getQueueCapacity()).orElse(beforeProperties.getQueueCapacity())) + * .nowRejectedName(Optional.ofNullable(afterProperties.getRejectedHandler()).orElse(beforeProperties.getRejectedHandler())) + * .nowExecuteTimeOut(Optional.ofNullable(afterProperties.getExecuteTimeOut()).orElse(beforeProperties.getExecuteTimeOut())) .build(); + * changeParameterNotifyRequest.setThreadPoolId(beforeProperties.getThreadPoolId()); return changeParameterNotifyRequest; } + */ /** * Check consistency. diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index 8a7da4c7..65f8601c 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -24,8 +24,6 @@ import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.toolkit.BooleanUtil; -import cn.hippo4j.core.executor.DynamicThreadPool; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapterChoose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,9 +99,7 @@ public class SpringThreadPoolRegisterSupport { properties.put(ThreadPoolPropertyKey.THREAD_NAME_PREFIX, threadPoolId); properties.put(ThreadPoolPropertyKey.REJECTED_HANDLER, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()); properties.put(ThreadPoolPropertyKey.EXECUTE_TIME_OUT, Constants.EXECUTE_TIME_OUT); - // register executor. AgentThreadPoolInstanceRegistry.getInstance().putHolder(threadPoolId, executor, properties); - } } diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java index 548ff0b3..ec6f25dc 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/ClassUtilTest.java @@ -1,5 +1,21 @@ -package cn.hippo4j.common.toolkit; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.hippo4j.common.toolkit; import org.junit.Assert; import org.junit.Test; @@ -10,7 +26,7 @@ import org.junit.Test; public class ClassUtilTest { @Test - public void testGetClassLoader(){ + public void testGetClassLoader() { ClassLoader expectedClassLoader = Thread.currentThread().getContextClassLoader(); ClassLoader actualClassLoader = ClassUtil.getClassLoader(ClassUtilTest.class); Assert.assertEquals(expectedClassLoader, actualClassLoader); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java rename to kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java index f297be67..2e709940 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/config/BootstrapPropertiesInterface.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.config; +package cn.hippo4j.threadpool.dynamic.api; /** * Bootstrap properties interface. diff --git a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java index 59f386b5..47f4ea05 100644 --- a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java @@ -38,6 +38,15 @@ public interface ThreadPoolDynamicRefresh { default void dynamicRefresh(String content) { } + /** + * Dynamic refresh of configuration center data changes. + * + * @param configFileType config file type + * @param content changed data + */ + default void dynamicRefresh(String configFileType, String content) { + } + /** * Dynamic refresh. * @@ -46,4 +55,14 @@ public interface ThreadPoolDynamicRefresh { */ default void dynamicRefresh(String content, Map newValueChangeMap) { } + + /** + * Dynamic refresh. + * + * @param configFileType config file type + * @param content changed data + * @param newValueChangeMap new value change map + */ + default void dynamicRefresh(String configFileType, String content, Map newValueChangeMap) { + } } diff --git a/kernel/dynamic/mode/config/pom.xml b/kernel/dynamic/mode/config/pom.xml index af4393c6..310507a0 100644 --- a/kernel/dynamic/mode/config/pom.xml +++ b/kernel/dynamic/mode/config/pom.xml @@ -10,4 +10,12 @@ hippo4j-threadpool-dynamic-mode-config + + + + cn.hippo4j + hippo4j-threadpool-dynamic-api + ${project.version} + + \ No newline at end of file diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/AbstractConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/AbstractConfigParser.java new file mode 100644 index 00000000..dd8c6b98 --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/AbstractConfigParser.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +/** + * Abstract config parser + */ +public abstract class AbstractConfigParser implements ConfigParser { + + @Override + public boolean supports(ConfigFileTypeEnum type) { + return getConfigFileTypes().contains(type); + } +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigFileTypeEnum.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigFileTypeEnum.java new file mode 100644 index 00000000..1bbe03c8 --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigFileTypeEnum.java @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +import lombok.Getter; + +/** + * Config file type enum + */ +@Getter +public enum ConfigFileTypeEnum { + + /** + * PROPERTIES + */ + PROPERTIES("properties"), + + /** + * XML + */ + XML("xml"), + + /** + * JSON + */ + JSON("json"), + + /** + * YML + */ + YML("yml"), + + /** + * YAML + */ + YAML("yaml"), + + /** + * TXT + */ + TXT("txt"); + + private final String value; + + ConfigFileTypeEnum(String value) { + this.value = value; + } + + public static ConfigFileTypeEnum of(String value) { + for (ConfigFileTypeEnum typeEnum : ConfigFileTypeEnum.values()) { + if (typeEnum.value.equals(value)) { + return typeEnum; + } + } + return PROPERTIES; + } +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParser.java new file mode 100644 index 00000000..35f373af --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParser.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * Config parser. + */ +public interface ConfigParser { + + /** + * Supports. + * + * @param type + * @return + */ + boolean supports(ConfigFileTypeEnum type); + + /** + * Do parse. + * + * @param content + * @return + * @throws IOException + */ + Map doParse(String content) throws IOException; + + /** + * Get config file types. + * + * @return + */ + List getConfigFileTypes(); +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParserHandler.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParserHandler.java new file mode 100644 index 00000000..ea61255a --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/ConfigParserHandler.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +import java.io.IOException; +import java.util.*; + +/** + * Config parser handler. + */ +public final class ConfigParserHandler { + + private static final List PARSERS = new ArrayList<>(); + + private ConfigParserHandler() { + ServiceLoader loader = ServiceLoader.load(ConfigParser.class); + for (ConfigParser configParser : loader) { + PARSERS.add(configParser); + } + PARSERS.add(new PropertiesConfigParser()); + PARSERS.add(new YamlConfigParser()); + } + + public Map parseConfig(String content, String type) throws IOException { + return parseConfig(content, ConfigFileTypeEnum.of(type)); + } + + public Map parseConfig(String content, ConfigFileTypeEnum type) throws IOException { + for (ConfigParser parser : PARSERS) { + if (parser.supports(type)) { + return parser.doParse(content); + } + } + return Collections.emptyMap(); + } + + public static ConfigParserHandler getInstance() { + return ConfigParserHandlerHolder.INSTANCE; + } + + /** + * Config Parser Handler Holder + */ + private static class ConfigParserHandlerHolder { + + private static final ConfigParserHandler INSTANCE = new ConfigParserHandler(); + } +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/PropertiesConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/PropertiesConfigParser.java new file mode 100644 index 00000000..4edf0ac5 --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/PropertiesConfigParser.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +import cn.hippo4j.common.toolkit.CollectionUtil; + +import java.io.IOException; +import java.io.StringReader; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + * Properties config parser. + */ +public class PropertiesConfigParser extends AbstractConfigParser { + + @Override + public Map doParse(String content) throws IOException { + Properties properties = new Properties(); + properties.load(new StringReader(content)); + return properties; + } + + @Override + public List getConfigFileTypes() { + return CollectionUtil.newArrayList(ConfigFileTypeEnum.PROPERTIES); + } +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java new file mode 100644 index 00000000..64aa93ee --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.parser; + +import cn.hippo4j.common.toolkit.CollectionUtil; + +import java.util.List; +import java.util.Map; + +/** + * Yaml config parser. + */ +public class YamlConfigParser extends AbstractConfigParser { + + @Override + public Map doParse(String content) { + // TODO + return null; + } + + @Override + public List getConfigFileTypes() { + return CollectionUtil.newArrayList(ConfigFileTypeEnum.YML, ConfigFileTypeEnum.YAML); + } +} diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java new file mode 100644 index 00000000..3eb49ce8 --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.refresher; + +import cn.hippo4j.common.toolkit.CollectionUtil; +import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigParserHandler; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; +import java.util.Optional; + +/** + * Abstract config thread-pool dynamic refresh. + */ +@Slf4j +public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh { + + @Override + public void dynamicRefresh(String configFileType, String configContent) { + dynamicRefresh(configFileType, configContent, null); + } + + @Override + public void dynamicRefresh(String configFileType, String configContent, Map newValueChangeMap) { + try { + Map configInfo = ConfigParserHandler.getInstance().parseConfig(configContent, configFileType); + if (CollectionUtil.isNotEmpty(newValueChangeMap)) { + Optional.ofNullable(configInfo).ifPresent(each -> each.putAll(newValueChangeMap)); + } + // BootstrapConfigProperties binderCoreProperties = bootstrapConfigPropertiesBinderAdapt.bootstrapCorePropertiesBinder(configInfo, bootstrapConfigProperties); + // publishDynamicThreadPoolEvent(binderCoreProperties); + } catch (Exception ex) { + log.error("Hippo4j config mode dynamic refresh failed.", ex); + } + } +} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/BootstrapConfigPropertiesBinderAdapter.java similarity index 76% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/BootstrapConfigPropertiesBinderAdapter.java index 1f8bf886..bca7f1b9 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/BootstrapConfigPropertiesBinderAdapter.java @@ -15,16 +15,16 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.refresher; +package cn.hippo4j.threadpool.dynamic.mode.config.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import java.util.Map; /** * Bootstrap config properties binder adapt. */ -public interface BootstrapConfigPropertiesBinderAdapt { +public interface BootstrapConfigPropertiesBinderAdapter { /** * Bootstrap core properties binder. @@ -33,5 +33,5 @@ public interface BootstrapConfigPropertiesBinderAdapt { * @param bootstrapConfigProperties bootstrap config properties * @return */ - BootstrapConfigProperties bootstrapCorePropertiesBinder(Map configInfo, BootstrapConfigProperties bootstrapConfigProperties); + BootstrapPropertiesInterface bootstrapCorePropertiesBinder(Map configInfo, BootstrapPropertiesInterface bootstrapConfigProperties); } diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java index 4a5b147a..db8eda87 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java @@ -17,8 +17,8 @@ package cn.hippo4j.config.springboot1x.starter.config; -import cn.hippo4j.config.springboot.starter.refresher.BootstrapConfigPropertiesBinderAdapt; import cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapt; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.bind.RelaxedDataBinder; import org.springframework.context.annotation.Bean; @@ -30,7 +30,7 @@ public class ConfigHandlerAutoConfiguration { @Bean @ConditionalOnClass(RelaxedDataBinder.class) - public BootstrapConfigPropertiesBinderAdapt bootstrapConfigPropertiesBinderAdapt() { + public BootstrapConfigPropertiesBinderAdapter bootstrapConfigPropertiesBinderAdapter() { return new SpringBoot1xBootstrapConfigPropertiesBinderAdapt(); } } diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java index 4e4cf009..f6015d22 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java @@ -18,7 +18,8 @@ package cn.hippo4j.config.springboot1x.starter.refresher; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.config.springboot.starter.refresher.BootstrapConfigPropertiesBinderAdapt; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; import org.springframework.beans.PropertyValues; @@ -40,7 +41,7 @@ import java.util.Set; /** * Bootstrap core properties binder adapt. */ -public class SpringBoot1xBootstrapConfigPropertiesBinderAdapt implements ApplicationContextAware, BootstrapConfigPropertiesBinderAdapt { +public class SpringBoot1xBootstrapConfigPropertiesBinderAdapt implements ApplicationContextAware, BootstrapConfigPropertiesBinderAdapter { private ApplicationContext applicationContext; @@ -52,7 +53,7 @@ public class SpringBoot1xBootstrapConfigPropertiesBinderAdapt implements Applica * @return */ @Override - public BootstrapConfigProperties bootstrapCorePropertiesBinder(Map configInfo, BootstrapConfigProperties bootstrapConfigProperties) { + public BootstrapPropertiesInterface bootstrapCorePropertiesBinder(Map configInfo, BootstrapPropertiesInterface bootstrapConfigProperties) { BootstrapConfigProperties bindableCoreProperties = new BootstrapConfigProperties(); RelaxedNames relaxedNames = new RelaxedNames(BootstrapConfigProperties.PREFIX); Set names = getNames(bindableCoreProperties, relaxedNames); diff --git a/starters/threadpool/config/pom.xml b/starters/threadpool/config/pom.xml index 004d604a..810d423a 100644 --- a/starters/threadpool/config/pom.xml +++ b/starters/threadpool/config/pom.xml @@ -133,5 +133,10 @@ hippo4j-threadpool-dynamic-api ${project.version} + + cn.hippo4j + hippo4j-threadpool-dynamic-mode-config + ${project.version} + diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java index 16ab7d7f..b00dbac0 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java @@ -19,7 +19,7 @@ package cn.hippo4j.config.springboot.starter.config; import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.parser.ConfigFileTypeEnum; -import cn.hippo4j.core.config.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java index b9e60ad1..2a426dde 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java @@ -17,15 +17,8 @@ package cn.hippo4j.config.springboot.starter.config; -import cn.hippo4j.config.springboot.starter.refresher.ApolloRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.BootstrapConfigPropertiesBinderAdapt; -import cn.hippo4j.config.springboot.starter.refresher.ConsulRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.DefaultBootstrapConfigPropertiesBinderAdapt; -import cn.hippo4j.config.springboot.starter.refresher.EtcdRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.NacosCloudRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.NacosRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.PolarisRefresherHandler; -import cn.hippo4j.config.springboot.starter.refresher.ZookeeperRefresherHandler; +import cn.hippo4j.config.springboot.starter.refresher.*; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import com.alibaba.cloud.nacos.NacosConfigProperties; import com.alibaba.nacos.api.config.ConfigService; import com.tencent.polaris.configuration.api.core.ConfigFileService; @@ -64,7 +57,7 @@ public class ConfigHandlerConfiguration { @Bean @ConditionalOnMissingBean - public BootstrapConfigPropertiesBinderAdapt bootstrapConfigPropertiesBinderAdapt() { + public BootstrapConfigPropertiesBinderAdapter bootstrapConfigPropertiesBinderAdapter() { return new DefaultBootstrapConfigPropertiesBinderAdapt(); } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index 3438e934..417a7a2a 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -17,52 +17,56 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; import cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEvent; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.support.ThreadPoolBuilder; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutorService; /** - * Abstract core thread-pool dynamic refresh. + * Abstract config thread-pool dynamic refresh. */ @Slf4j public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh, InitializingBean, ApplicationRunner { - private final BootstrapConfigPropertiesBinderAdapt bootstrapConfigPropertiesBinderAdapt; - protected BootstrapConfigProperties bootstrapConfigProperties; + private final BootstrapConfigPropertiesBinderAdapter bootstrapConfigPropertiesBinderAdapter; + protected BootstrapPropertiesInterface bootstrapConfigProperties; protected final ExecutorService dynamicRefreshExecutorService = ThreadPoolBuilder.builder().singlePool("client.dynamic.refresh").build(); public AbstractConfigThreadPoolDynamicRefresh() { - bootstrapConfigProperties = ApplicationContextHolder.getBean(BootstrapConfigProperties.class); - bootstrapConfigPropertiesBinderAdapt = ApplicationContextHolder.getBean(BootstrapConfigPropertiesBinderAdapt.class); + bootstrapConfigProperties = ApplicationContextHolder.getBean(BootstrapPropertiesInterface.class); + bootstrapConfigPropertiesBinderAdapter = ApplicationContextHolder.getBean(BootstrapConfigPropertiesBinderAdapter.class); } @Override public void dynamicRefresh(String configContent) { - dynamicRefresh(configContent, null); + dynamicRefresh(configContent, new HashMap<>()); } @Override public void dynamicRefresh(String configContent, Map newValueChangeMap) { try { - Map configInfo = ConfigParserHandler.getInstance().parseConfig(configContent, bootstrapConfigProperties.getConfigFileType()); + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Map configInfo = ConfigParserHandler.getInstance().parseConfig(configContent, actualBootstrapConfigProperties.getConfigFileType()); if (CollectionUtil.isNotEmpty(newValueChangeMap)) { Optional.ofNullable(configInfo).ifPresent(each -> each.putAll(newValueChangeMap)); } - BootstrapConfigProperties binderCoreProperties = bootstrapConfigPropertiesBinderAdapt.bootstrapCorePropertiesBinder(configInfo, bootstrapConfigProperties); - publishDynamicThreadPoolEvent(binderCoreProperties); + BootstrapPropertiesInterface binderCoreProperties = bootstrapConfigPropertiesBinderAdapter.bootstrapCorePropertiesBinder(configInfo, bootstrapConfigProperties); + publishDynamicThreadPoolEvent((BootstrapConfigProperties) binderCoreProperties); } catch (Exception ex) { log.error("Hippo4j config mode dynamic refresh failed.", ex); } @@ -84,7 +88,7 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo @Override public void run(ApplicationArguments args) { try { - publishDynamicThreadPoolEvent(bootstrapConfigProperties); + publishDynamicThreadPoolEvent((BootstrapConfigProperties) bootstrapConfigProperties); } catch (Exception ex) { log.error("Hippo4j failed to initialize update configuration.", ex); } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java index 78cf474b..ec1a7599 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java @@ -45,10 +45,11 @@ public class ApolloRefresherHandler extends AbstractConfigThreadPoolDynamicRefre public void registerListener() { String[] apolloNamespaces = this.namespace.split(","); this.namespace = apolloNamespaces[0]; - Config config = ConfigService.getConfig(String.format("%s.%s", namespace, bootstrapConfigProperties.getConfigFileType().getValue())); + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Config config = ConfigService.getConfig(String.format("%s.%s", namespace, actualBootstrapConfigProperties.getConfigFileType().getValue())); ConfigChangeListener configChangeListener = configChangeEvent -> { - String namespace = this.namespace.replaceAll("." + bootstrapConfigProperties.getConfigFileType().getValue(), ""); - ConfigFileFormat configFileFormat = ConfigFileFormat.fromString(bootstrapConfigProperties.getConfigFileType().getValue()); + String namespace = this.namespace.replaceAll("." + actualBootstrapConfigProperties.getConfigFileType().getValue(), ""); + ConfigFileFormat configFileFormat = ConfigFileFormat.fromString(actualBootstrapConfigProperties.getConfigFileType().getValue()); ConfigFile configFile = ConfigService.getConfigFile(namespace, configFileFormat); Map newChangeValueMap = new HashMap<>(); configChangeEvent.changedKeys().stream().filter(each -> each.contains(BootstrapConfigProperties.PREFIX)).forEach(each -> { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java index 684d6aad..4f84edd0 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java @@ -18,6 +18,8 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.boot.context.properties.bind.Bindable; import org.springframework.boot.context.properties.bind.Binder; import org.springframework.boot.context.properties.source.ConfigurationPropertySource; @@ -28,7 +30,7 @@ import java.util.Map; /** * Bootstrap core properties binder adapt. */ -public class DefaultBootstrapConfigPropertiesBinderAdapt implements BootstrapConfigPropertiesBinderAdapt { +public class DefaultBootstrapConfigPropertiesBinderAdapt implements BootstrapConfigPropertiesBinderAdapter { /** * Bootstrap core properties binder. @@ -38,7 +40,7 @@ public class DefaultBootstrapConfigPropertiesBinderAdapt implements BootstrapCon * @return */ @Override - public BootstrapConfigProperties bootstrapCorePropertiesBinder(Map configInfo, BootstrapConfigProperties bootstrapConfigProperties) { + public BootstrapPropertiesInterface bootstrapCorePropertiesBinder(Map configInfo, BootstrapPropertiesInterface bootstrapConfigProperties) { ConfigurationPropertySource sources = new MapConfigurationPropertySource(configInfo); Binder binder = new Binder(sources); return binder.bind(BootstrapConfigProperties.PREFIX, Bindable.ofInstance(bootstrapConfigProperties)).get(); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java index 45d98ce9..c4526ec0 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java @@ -19,6 +19,7 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; +import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import io.etcd.jetcd.ByteSequence; import io.etcd.jetcd.Client; import io.etcd.jetcd.ClientBuilder; @@ -59,7 +60,8 @@ public class EtcdRefresherHandler extends AbstractConfigThreadPoolDynamicRefresh @SneakyThrows(value = {InterruptedException.class, ExecutionException.class}) @Override public void registerListener() { - Map etcd = bootstrapConfigProperties.getEtcd(); + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Map etcd = actualBootstrapConfigProperties.getEtcd(); String key = etcd.get(KEY); Charset charset = StringUtil.isBlank(etcd.get(CHARSET)) ? StandardCharsets.UTF_8 : Charset.forName(etcd.get(CHARSET)); initClient(etcd, charset); diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java index 9e23e3b8..62dd2601 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java @@ -17,6 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; +import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.core.config.ApplicationContextHolder; import com.alibaba.cloud.nacos.NacosConfigProperties; import com.alibaba.nacos.api.config.ConfigService; @@ -47,7 +48,8 @@ public class NacosCloudRefresherHandler extends AbstractConfigThreadPoolDynamicR @SneakyThrows(NacosException.class) @Override public void registerListener() { - Map nacosConfig = bootstrapConfigProperties.getNacos(); + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Map nacosConfig = actualBootstrapConfigProperties.getNacos(); configService.addListener(nacosConfig.get(DATA_ID), nacosConfig.get(GROUP), new Listener() { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java index 6963ebca..2abaaef2 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java @@ -17,6 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; +import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.listener.Listener; @@ -47,8 +48,8 @@ public class NacosRefresherHandler extends AbstractConfigThreadPoolDynamicRefres @SneakyThrows(NacosException.class) @Override public void registerListener() { - Map nacosConfig = bootstrapConfigProperties.getNacos(); - + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Map nacosConfig = actualBootstrapConfigProperties.getNacos(); configService.addListener(nacosConfig.get(DATA_ID), nacosConfig.get(GROUP), new Listener() { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index 7a638430..87f61bfc 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -17,6 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; +import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.message.service.GlobalNotifyAlarmManage; import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; import lombok.extern.slf4j.Slf4j; @@ -57,7 +58,8 @@ public class ZookeeperRefresherHandler extends AbstractConfigThreadPoolDynamicRe @Override public void registerListener() { - Map zkConfigs = bootstrapConfigProperties.getZookeeper(); + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + Map zkConfigs = actualBootstrapConfigProperties.getZookeeper(); curatorFramework = CuratorFrameworkFactory.newClient(zkConfigs.get(ZK_CONNECT_STR), new ExponentialBackoffRetry(BASE_SLEEP_TIME_MS, MAX_RETRIES)); String nodePath = ZKPaths.makePath(ZKPaths.makePath(zkConfigs.get(ROOT_NODE), @@ -134,7 +136,8 @@ public class ZookeeperRefresherHandler extends AbstractConfigThreadPoolDynamicRe * Register notify alarm manage. */ public void registerNotifyAlarmManage() { - bootstrapConfigProperties.getExecutors().forEach(executorProperties -> { + BootstrapConfigProperties actualBootstrapConfigProperties = (BootstrapConfigProperties) bootstrapConfigProperties; + actualBootstrapConfigProperties.getExecutors().forEach(executorProperties -> { ThreadPoolNotifyAlarm threadPoolNotifyAlarm = new ThreadPoolNotifyAlarm( executorProperties.getAlarm(), executorProperties.getCapacityAlarm(), diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/BootstrapProperties.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/BootstrapProperties.java index ba348c75..0669aed1 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/BootstrapProperties.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/BootstrapProperties.java @@ -18,7 +18,7 @@ package cn.hippo4j.springboot.starter.config; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.core.config.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/core/pom.xml b/threadpool/core/pom.xml index 5002327f..c151fe60 100644 --- a/threadpool/core/pom.xml +++ b/threadpool/core/pom.xml @@ -19,6 +19,11 @@ org.springframework.boot spring-boot-starter + + cn.hippo4j + hippo4j-threadpool-dynamic-api + ${project.version} + org.springframework.boot spring-boot-starter-test diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java index 17baabd0..c6640d93 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java @@ -18,8 +18,8 @@ package cn.hippo4j.core.enable; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.config.BootstrapPropertiesInterface; import cn.hippo4j.core.config.ConfigEmptyException; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -40,6 +40,7 @@ public class BeforeCheckConfiguration { @Bean public BeforeCheckConfiguration.BeforeCheck dynamicThreadPoolBeforeCheckBean(@Autowired(required = false) BootstrapPropertiesInterface properties, ConfigurableEnvironment environment) { + // TODO test boolean checkFlag = properties != null && Objects.equals(bootstrapPropertiesClassName, properties.getClass().getName()) && properties.getEnable(); if (checkFlag) { String namespace = properties.getNamespace(); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java index 2b33a561..49b78178 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/handler/DynamicThreadPoolBannerHandler.java @@ -18,7 +18,7 @@ package cn.hippo4j.core.executor.handler; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.config.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.ansi.AnsiColor; diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java index b5cd71d3..26f0a1b3 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/model/biz/user/LoginUser.java @@ -24,6 +24,7 @@ import lombok.Data; */ @Data public class LoginUser { + /** * encode key reverse */ diff --git a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java index 5a1ed033..e0bc73d3 100644 --- a/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java +++ b/threadpool/server/auth/src/main/java/cn/hippo4j/auth/toolkit/AESUtil.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package cn.hippo4j.auth.toolkit; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -30,15 +47,15 @@ public class AESUtil { * @return byte[] */ public static byte[] encrypt(byte[] data, byte[] key) throws GeneralSecurityException { - SecretKeySpec sKeySpec = new SecretKeySpec(key, "AES"); - Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); - cipher.init(Cipher.ENCRYPT_MODE, sKeySpec); - byte[] iv = cipher.getIV(); - byte[] encryptData = cipher.doFinal(data); - byte[] message = new byte[12 + data.length + 16]; - System.arraycopy(iv, 0, message, 0, 12); - System.arraycopy(encryptData, 0, message, 12, encryptData.length); - return message; + SecretKeySpec sKeySpec = new SecretKeySpec(key, "AES"); + Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); + cipher.init(Cipher.ENCRYPT_MODE, sKeySpec); + byte[] iv = cipher.getIV(); + byte[] encryptData = cipher.doFinal(data); + byte[] message = new byte[12 + data.length + 16]; + System.arraycopy(iv, 0, message, 0, 12); + System.arraycopy(encryptData, 0, message, 12, encryptData.length); + return message; } /** @@ -48,12 +65,12 @@ public class AESUtil { * @param key Decryption key * @return byte[] */ - public static byte[] decrypt(byte[] data, byte[] key) throws GeneralSecurityException{ - GCMParameterSpec iv = new GCMParameterSpec(128, data, 0, 12); - Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); - SecretKey key2 = new SecretKeySpec(key, "AES"); - cipher.init(Cipher.DECRYPT_MODE, key2, iv); - return cipher.doFinal(data, 12, data.length - 12); + public static byte[] decrypt(byte[] data, byte[] key) throws GeneralSecurityException { + GCMParameterSpec iv = new GCMParameterSpec(128, data, 0, 12); + Cipher cipher = Cipher.getInstance(AES_GCM_CIPHER); + SecretKey key2 = new SecretKeySpec(key, "AES"); + cipher.init(Cipher.DECRYPT_MODE, key2, iv); + return cipher.doFinal(data, 12, data.length - 12); } /** From 4fae1003b213f2b383e1190cd6b9afb8a12eb809 Mon Sep 17 00:00:00 2001 From: Sakuragi27 <35170077+Sakuragi27@users.noreply.github.com> Date: Mon, 22 May 2023 22:44:47 +0800 Subject: [PATCH 31/58] test: add FastThreadPoolExecutorTest (#1317) * test: add FastThreadPoolExecutorTest * test: add FastThreadPoolExecutorTest --- .../support/FastThreadPoolExecutorTest.java | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java new file mode 100644 index 00000000..f48ff809 --- /dev/null +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.core.executor.support; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * test for {@link FastThreadPoolExecutor} + */ +public class FastThreadPoolExecutorTest { + + private final static int corePoolSize = 1; + + private final static int capacity = 1; + + private final TaskQueue taskQueue = new TaskQueue<>(capacity); + + private final FastThreadPoolExecutor fastThreadPoolExecutor = new FastThreadPoolExecutor(corePoolSize, + corePoolSize, + 10, + TimeUnit.SECONDS, + taskQueue, + Thread::new, + new ThreadPoolExecutor.AbortPolicy()); + + { + taskQueue.setExecutor(fastThreadPoolExecutor); + } + + @Test + void testSubmittedTaskCount() { + fastThreadPoolExecutor.execute(() -> { + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException ignored) { + } + }); + + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException ignored) { + } + Assertions.assertEquals(1, fastThreadPoolExecutor.getSubmittedTaskCount()); + + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException ignored) { + } + Assertions.assertEquals(0, fastThreadPoolExecutor.getSubmittedTaskCount()); + + // exception + int expected = 0; + for (int i = 0; i <= (corePoolSize + capacity); i++) { + expected++; + try { + fastThreadPoolExecutor.execute(() -> { + synchronized (fastThreadPoolExecutor) { + try { + fastThreadPoolExecutor.wait(); + } catch (InterruptedException ignored) { + } + } + }); + } catch (Exception e) { + expected--; + } + } + + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException ignored) { + } + Assertions.assertEquals(expected, fastThreadPoolExecutor.getSubmittedTaskCount()); + + synchronized (fastThreadPoolExecutor) { + fastThreadPoolExecutor.notifyAll(); + } + } +} From 5d79520c601d14f616505344c0bb60f8ff959185 Mon Sep 17 00:00:00 2001 From: yhc777 <71164753+yhc777@users.noreply.github.com> Date: Mon, 22 May 2023 22:45:50 +0800 Subject: [PATCH 32/58] check style (#1299) * style(hippo4j-threadpool-infra-common): checke style update * style(hippo4j-threadpool-infra-common): checke style update * style(hippo4j-threadpool-infra-common): check style log (info --> error) * style(hippo4j-threadpool-infra-common): @Slf4j * style(hippo4j-threadpool-infra-common): check style update --- checkstyle/hippo4j_checkstyle_suppression.xml | 8 ++++++- .../common/constant/HttpHeaderConstants.java | 24 +++++++++---------- .../common/constant/MagicNumberConstants.java | 9 +++++++ .../support/RejectedPolicyTypeEnum.java | 5 +++- .../extension/spi/ServiceLoaderRegistry.java | 2 +- .../cn/hippo4j/common/toolkit/BeanUtil.java | 2 +- .../common/toolkit/CollectionUtil.java | 4 +++- .../cn/hippo4j/common/toolkit/IoUtil.java | 4 +++- .../cn/hippo4j/common/toolkit/MapUtil.java | 6 +---- .../cn/hippo4j/common/toolkit/StringUtil.java | 6 +++-- .../hippo4j/common/toolkit/http/Header.java | 2 +- 11 files changed, 46 insertions(+), 26 deletions(-) diff --git a/checkstyle/hippo4j_checkstyle_suppression.xml b/checkstyle/hippo4j_checkstyle_suppression.xml index 1a328a45..59487b95 100644 --- a/checkstyle/hippo4j_checkstyle_suppression.xml +++ b/checkstyle/hippo4j_checkstyle_suppression.xml @@ -32,5 +32,11 @@ - + + + + + + + diff --git a/infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java index 90ccfa52..a0e61a2c 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java +++ b/infra/common/src/main/java/cn/hippo4j/common/constant/HttpHeaderConstants.java @@ -20,27 +20,27 @@ package cn.hippo4j.common.constant; /** * Http header constants. */ -public interface HttpHeaderConstants { +public class HttpHeaderConstants { - String CLIENT_VERSION_HEADER = "Client-Version"; + public static final String CLIENT_VERSION_HEADER = "Client-Version"; - String USER_AGENT_HEADER = "User-Agent"; + public static final String USER_AGENT_HEADER = "User-Agent"; - String REQUEST_SOURCE_HEADER = "Request-Source"; + public static final String REQUEST_SOURCE_HEADER = "Request-Source"; - String CONTENT_TYPE = "Content-Type"; + public static final String CONTENT_TYPE = "Content-Type"; - String CONTENT_LENGTH = "Content-Length"; + public static final String CONTENT_LENGTH = "Content-Length"; - String ACCEPT_CHARSET = "Accept-Charset"; + public static final String ACCEPT_CHARSET = "Accept-Charset"; - String ACCEPT_ENCODING = "Accept-Encoding"; + public static final String ACCEPT_ENCODING = "Accept-Encoding"; - String CONTENT_ENCODING = "Content-Encoding"; + public static final String CONTENT_ENCODING = "Content-Encoding"; - String CONNECTION = "Requester"; + public static final String CONNECTION = "Requester"; - String REQUEST_ID = "RequestId"; + public static final String REQUEST_ID = "RequestId"; - String REQUEST_MODULE = "Request-Module"; + public static final String REQUEST_MODULE = "Request-Module"; } diff --git a/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java b/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java index fd0b5d18..1893f172 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java +++ b/infra/common/src/main/java/cn/hippo4j/common/constant/MagicNumberConstants.java @@ -17,8 +17,13 @@ package cn.hippo4j.common.constant; +/** + * Magic Number Constants + */ public class MagicNumberConstants { + public static final int INDEX_NEGATIVE_1 = -1; + public static final int INDEX_0 = 0; public static final int INDEX_1 = 1; @@ -27,6 +32,10 @@ public class MagicNumberConstants { public static final int INDEX_3 = 3; + public static final int INDEX_10 = 10; + public static final int SIZE_4 = 4; + public static final long LONG_5 = 5L; + } diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java index 651530d0..c9d9b8fd 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java @@ -20,7 +20,10 @@ package cn.hippo4j.common.executor.support; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import lombok.Getter; -import java.util.*; + +import java.util.Collection; +import java.util.Objects; +import java.util.Optional; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.stream.Stream; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java index 5d6e7434..5a698ce6 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/spi/ServiceLoaderRegistry.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; /** * Dynamic thread-pool SPI service loader. */ -public class ServiceLoaderRegistry { +public final class ServiceLoaderRegistry { /** * safe container。 diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java index 4b971a6a..5fed71f2 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/BeanUtil.java @@ -39,7 +39,7 @@ import java.util.Set; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class BeanUtil { - protected static Mapper BEAN_MAPPER_BUILDER; + protected static final Mapper BEAN_MAPPER_BUILDER; static { BEAN_MAPPER_BUILDER = DozerBeanMapperBuilder.buildDefault(); diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java index 5a1fbbca..9e3c1792 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java @@ -17,6 +17,8 @@ package cn.hippo4j.common.toolkit; +import cn.hippo4j.common.constant.MagicNumberConstants; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -164,7 +166,7 @@ public class CollectionUtil { private static int computeArrayListCapacity(int arraySize) { checkNonnegative(arraySize); // TODO(kevinb): Figure out the right behavior, and document it - return saturatedCast(5L + arraySize + (arraySize / 10)); + return saturatedCast(MagicNumberConstants.LONG_5 + arraySize + (arraySize / MagicNumberConstants.INDEX_10)); } private static void checkNonnegative(int value) { diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java index 5c6b00fb..6f45c9a3 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/IoUtil.java @@ -19,6 +19,7 @@ package cn.hippo4j.common.toolkit; import cn.hippo4j.common.constant.Constants; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; import java.io.ByteArrayInputStream; @@ -47,6 +48,7 @@ import java.util.zip.GZIPOutputStream; * * @author nacos */ +@Slf4j public class IoUtil { /** @@ -98,7 +100,7 @@ public class IoUtil { try (GZIPOutputStream gzip = new GZIPOutputStream(out)) { gzip.write(str.getBytes(encoding)); } catch (Exception e) { - e.printStackTrace(); + log.error("gzip write is fail: {}", e.getMessage()); } return out.toByteArray(); } diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java index 6a15ca92..3d2c3fef 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MapUtil.java @@ -181,11 +181,7 @@ public class MapUtil { * @return */ private static boolean checkKey(String key, String filters) { - if (key.contains(filters)) { - return true; - } else { - return false; - } + return key.contains(filters); } /** diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java index d7f105a4..7c74e2cc 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java @@ -17,6 +17,8 @@ package cn.hippo4j.common.toolkit; +import cn.hippo4j.common.constant.MagicNumberConstants; + import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -354,10 +356,10 @@ public class StringUtil { return EMPTY; } int pos = str.indexOf(symbol); - if (-1 == pos) { + if (MagicNumberConstants.INDEX_NEGATIVE_1 == pos) { return str; } - if (0 == pos) { + if (MagicNumberConstants.INDEX_0 == pos) { return EMPTY; } return str.substring(0, pos); diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java index b59c509d..79d315d5 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/http/Header.java @@ -34,7 +34,7 @@ import java.util.TreeMap; * * @author liaochuntao */ -public class Header { +public final class Header { public static final Header EMPTY = Header.newInstance(); From 845c32fdca1c27ed3109b638cc1fd073f4ff2139 Mon Sep 17 00:00:00 2001 From: rnmb <19276209+rnmb@users.noreply.github.com> Date: Tue, 23 May 2023 15:32:58 +0800 Subject: [PATCH 33/58] fix(console): fix examples login failed (#1321) 1. fix examples console login failed, because login tag is miss 2. repackage vue-element-admin into console static --- .../src/main/resources/static/index.html | 2 +- ...ae0d9d.css => chunk-02066c0e.20d79963.css} | 2 +- ...4c2f94.css => chunk-0fde2e8e.09d1406a.css} | 2 +- ...982a1e.css => chunk-38e7e764.4353ab43.css} | 2 +- ...a52545.css => chunk-4413401e.65cac33b.css} | 2 +- ...17f654.css => chunk-eee8a83e.a09ed6a0.css} | 2 +- .../static/static/js/app.787fe2de.js | 1 - .../static/static/js/app.8390bfc0.js | 1 + .../static/js/chunk-02066c0e.02308258.js | 1 + ...d277a759.js => chunk-05d50b2c.8dc7ba93.js} | 0 .../static/js/chunk-078a7535.6236115b.js | 1 - .../static/js/chunk-078a7535.a98a294c.js | 1 + .../static/js/chunk-0fde2e8e.54375446.js | 1 + ...24c4f2f6.js => chunk-149a43cf.27d6833e.js} | 2 +- ...5f73d1c2.js => chunk-19132c4b.6d428bd6.js} | 2 +- ...75926587.js => chunk-1b3cdbc8.db7b4a48.js} | 2 +- .../static/js/chunk-1c21bf70.7d9ac84b.js | 1 - .../static/js/chunk-1f79669e.d87e1cd7.js | 1 - ...bf32e2f9.js => chunk-296c90bf.263ef01d.js} | 2 +- ...11f2dac5.js => chunk-2d230a36.809b58fd.js} | 0 ...d47fa6a4.js => chunk-2e217faa.3bce1ed7.js} | 2 +- ...8c75fa03.js => chunk-37b6768d.3218ba48.js} | 2 +- .../static/js/chunk-38e7e764.ef75f3d9.js | 1 + ...865748af.js => chunk-3a6f2dc9.35967fa8.js} | 2 +- ...1328c1b4.js => chunk-4413401e.02fe8705.js} | 2 +- .../static/js/chunk-4f40863a.4420a291.js | 1 + .../static/js/chunk-4f40863a.78f2ac6e.js | 1 - ...b3f7c763.js => chunk-5428753b.6a2720d5.js} | 2 +- ...9c455ad1.js => chunk-5911c282.7cc304c7.js} | 0 ...dd5eebf7.js => chunk-60c39f89.108958dc.js} | 2 +- .../static/js/chunk-66d45bb8.4f23529a.js | 1 - .../static/js/chunk-6a55e40a.04906197.js | 1 - ...1e5adc95.js => chunk-a89383d2.fa101b42.js} | 2 +- .../static/js/chunk-adca2a60.0f36d62e.js | 1 + .../static/js/chunk-adca2a60.7fb86596.js | 1 - ...97c51025.js => chunk-d6c1d344.3aa3f182.js} | 2 +- .../static/js/chunk-d9fc0e72.a4e8c629.js | 1 - .../static/js/chunk-d9fc0e72.dc851098.js | 1 + .../static/js/chunk-eee8a83e.05b46c5e.js | 1 + ...71be4592.js => chunk-ef888edc.08357eb6.js} | 0 .../static/static/js/chunk-libs.3b1b41b1.js | 91 ------------------ .../static/static/js/chunk-libs.4ce3f27c.js | 93 +++++++++++++++++++ 42 files changed, 120 insertions(+), 118 deletions(-) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-6a55e40a.95ae0d9d.css => chunk-02066c0e.20d79963.css} (82%) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-1c21bf70.2e4c2f94.css => chunk-0fde2e8e.09d1406a.css} (71%) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-1f79669e.db982a1e.css => chunk-38e7e764.4353ab43.css} (90%) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-0eddb806.9ba52545.css => chunk-4413401e.65cac33b.css} (85%) rename threadpool/server/console/src/main/resources/static/static/css/{chunk-66d45bb8.1117f654.css => chunk-eee8a83e.a09ed6a0.css} (62%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/app.8390bfc0.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-02066c0e.02308258.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-05d50b2c.d277a759.js => chunk-05d50b2c.8dc7ba93.js} (100%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.6236115b.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-078a7535.a98a294c.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-0fde2e8e.54375446.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-149a43cf.24c4f2f6.js => chunk-149a43cf.27d6833e.js} (55%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-19132c4b.5f73d1c2.js => chunk-19132c4b.6d428bd6.js} (76%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-1b3cdbc8.75926587.js => chunk-1b3cdbc8.db7b4a48.js} (71%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-1c21bf70.7d9ac84b.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-1f79669e.d87e1cd7.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-296c90bf.bf32e2f9.js => chunk-296c90bf.263ef01d.js} (99%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-2d230a36.11f2dac5.js => chunk-2d230a36.809b58fd.js} (100%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-2e217faa.d47fa6a4.js => chunk-2e217faa.3bce1ed7.js} (50%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-37b6768d.8c75fa03.js => chunk-37b6768d.3218ba48.js} (65%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-38e7e764.ef75f3d9.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-3a6f2dc9.865748af.js => chunk-3a6f2dc9.35967fa8.js} (55%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-0eddb806.1328c1b4.js => chunk-4413401e.02fe8705.js} (85%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-4f40863a.4420a291.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-4f40863a.78f2ac6e.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-5428753b.b3f7c763.js => chunk-5428753b.6a2720d5.js} (71%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-5911c282.9c455ad1.js => chunk-5911c282.7cc304c7.js} (100%) rename threadpool/server/console/src/main/resources/static/static/js/{chunk-60c39f89.dd5eebf7.js => chunk-60c39f89.108958dc.js} (74%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-66d45bb8.4f23529a.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-6a55e40a.04906197.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-a89383d2.1e5adc95.js => chunk-a89383d2.fa101b42.js} (71%) create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-adca2a60.0f36d62e.js delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-adca2a60.7fb86596.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-d6c1d344.97c51025.js => chunk-d6c1d344.3aa3f182.js} (66%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-d9fc0e72.a4e8c629.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-d9fc0e72.dc851098.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-eee8a83e.05b46c5e.js rename threadpool/server/console/src/main/resources/static/static/js/{chunk-ef888edc.71be4592.js => chunk-ef888edc.08357eb6.js} (100%) delete mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-libs.3b1b41b1.js create mode 100644 threadpool/server/console/src/main/resources/static/static/js/chunk-libs.4ce3f27c.js diff --git a/threadpool/server/console/src/main/resources/static/index.html b/threadpool/server/console/src/main/resources/static/index.html index cc65a848..960681cf 100644 --- a/threadpool/server/console/src/main/resources/static/index.html +++ b/threadpool/server/console/src/main/resources/static/index.html @@ -1 +1 @@ -Hippo4j Web
\ No newline at end of file +Hippo4j Web
\ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-6a55e40a.95ae0d9d.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-02066c0e.20d79963.css similarity index 82% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-6a55e40a.95ae0d9d.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-02066c0e.20d79963.css index 7132ae73..ef514d9f 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-6a55e40a.95ae0d9d.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-02066c0e.20d79963.css @@ -1 +1 @@ -.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none} \ No newline at end of file +.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none}.el-table--border th.el-table__cell{padding:0;height:40px}.el-table .cell{line-height:normal} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-1c21bf70.2e4c2f94.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-0fde2e8e.09d1406a.css similarity index 71% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-1c21bf70.2e4c2f94.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-0fde2e8e.09d1406a.css index afb0ac68..5c0b3b1a 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-1c21bf70.2e4c2f94.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-0fde2e8e.09d1406a.css @@ -1 +1 @@ -.social-signup-container[data-v-7309fbbb]{margin:20px 0}.social-signup-container .sign-btn[data-v-7309fbbb]{display:inline-block;cursor:pointer}.social-signup-container .icon[data-v-7309fbbb]{color:#fff;font-size:24px;margin-top:8px}.social-signup-container .qq-svg-container[data-v-7309fbbb],.social-signup-container .wx-svg-container[data-v-7309fbbb]{display:inline-block;width:40px;height:40px;line-height:40px;text-align:center;padding-top:1px;border-radius:4px;margin-bottom:20px;margin-right:5px}.social-signup-container .wx-svg-container[data-v-7309fbbb]{background-color:#24da70}.social-signup-container .qq-svg-container[data-v-7309fbbb]{background-color:#6ba2d6;margin-left:50px}@supports(-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input{color:#fff}}.login-container .el-input{display:inline-block;height:47px;width:85%}.login-container .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#fff;height:47px;caret-color:#fff}.login-container .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item{border:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.1);border-radius:5px;color:#454545}.login-container[data-v-7cb824ba]{min-height:100%;width:100%;background-color:#2d3a4b;overflow:hidden}.login-container .login-form[data-v-7cb824ba]{position:relative;width:520px;max-width:100%;padding:160px 35px 0;margin:0 auto;overflow:hidden}.login-container .tips[data-v-7cb824ba]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-7cb824ba]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-7cb824ba]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-7cb824ba]{position:relative}.login-container .title-container .title[data-v-7cb824ba]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-7cb824ba]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-7cb824ba]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-7cb824ba]{display:none}} \ No newline at end of file +.social-signup-container[data-v-7309fbbb]{margin:20px 0}.social-signup-container .sign-btn[data-v-7309fbbb]{display:inline-block;cursor:pointer}.social-signup-container .icon[data-v-7309fbbb]{color:#fff;font-size:24px;margin-top:8px}.social-signup-container .qq-svg-container[data-v-7309fbbb],.social-signup-container .wx-svg-container[data-v-7309fbbb]{display:inline-block;width:40px;height:40px;line-height:40px;text-align:center;padding-top:1px;border-radius:4px;margin-bottom:20px;margin-right:5px}.social-signup-container .wx-svg-container[data-v-7309fbbb]{background-color:#24da70}.social-signup-container .qq-svg-container[data-v-7309fbbb]{background-color:#6ba2d6;margin-left:50px}@supports(-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input{color:#fff}}.login-container .el-input{display:inline-block;height:47px;width:85%}.login-container .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#fff;height:47px;caret-color:#fff}.login-container .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item{border:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.1);border-radius:5px;color:#454545}.login-container[data-v-c62df1a8]{min-height:100%;width:100%;background-color:#2d3a4b;overflow:hidden}.login-container .login-form[data-v-c62df1a8]{position:relative;width:520px;max-width:100%;padding:160px 35px 0;margin:0 auto;overflow:hidden}.login-container .tips[data-v-c62df1a8]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-c62df1a8]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-c62df1a8]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-c62df1a8]{position:relative}.login-container .title-container .title[data-v-c62df1a8]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-c62df1a8]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-c62df1a8]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-c62df1a8]{display:none}} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-1f79669e.db982a1e.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-38e7e764.4353ab43.css similarity index 90% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-1f79669e.db982a1e.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-38e7e764.4353ab43.css index 17432456..2deccf26 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-1f79669e.db982a1e.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-38e7e764.4353ab43.css @@ -1 +1 @@ -.github-corner:hover .octo-arm[data-v-fedac698]{-webkit-animation:octocat-wave-data-v-fedac698 .56s ease-in-out;animation:octocat-wave-data-v-fedac698 .56s ease-in-out}@-webkit-keyframes octocat-wave-data-v-fedac698{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes octocat-wave-data-v-fedac698{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm[data-v-fedac698]{-webkit-animation:none;animation:none}.github-corner .octo-arm[data-v-fedac698]{-webkit-animation:octocat-wave-data-v-fedac698 .56s ease-in-out;animation:octocat-wave-data-v-fedac698 .56s ease-in-out}}.panel-group[data-v-b4165a68]{margin-top:18px}.panel-group .card-panel-col[data-v-b4165a68]{margin-bottom:32px}.panel-group .card-panel[data-v-b4165a68]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-b4165a68]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-b4165a68]{background:#dae8d6}.panel-group .card-panel:hover .icon-message[data-v-b4165a68]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-b4165a68]{background:#a0a6f4}.panel-group .card-panel:hover .icon-shopping[data-v-b4165a68]{background:#dae8d6}.panel-group .card-panel .icon-people[data-v-b4165a68]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-b4165a68]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-b4165a68]{color:#a0a6f4}.panel-group .card-panel .icon-shopping[data-v-b4165a68]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-b4165a68]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-b4165a68]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-b4165a68]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-b4165a68]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-b4165a68]{font-size:20px}@media(max-width:550px){.card-panel-description[data-v-b4165a68]{display:none}.card-panel-icon-wrapper[data-v-b4165a68]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-b4165a68]{display:block;margin:14px auto!important;float:none!important}}.dashboard-editor-container[data-v-6e862226]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-6e862226]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .el-form-item[data-v-6e862226]{margin-bottom:5px!important;padding-bottom:20px}.dashboard-editor-container .chart-wrapper[data-v-6e862226]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media(max-width:1024px){.chart-wrapper[data-v-6e862226]{padding:8px}} \ No newline at end of file +.github-corner:hover .octo-arm[data-v-fedac698]{-webkit-animation:octocat-wave-data-v-fedac698 .56s ease-in-out;animation:octocat-wave-data-v-fedac698 .56s ease-in-out}@-webkit-keyframes octocat-wave-data-v-fedac698{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes octocat-wave-data-v-fedac698{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm[data-v-fedac698]{-webkit-animation:none;animation:none}.github-corner .octo-arm[data-v-fedac698]{-webkit-animation:octocat-wave-data-v-fedac698 .56s ease-in-out;animation:octocat-wave-data-v-fedac698 .56s ease-in-out}}.panel-group[data-v-b4165a68]{margin-top:18px}.panel-group .card-panel-col[data-v-b4165a68]{margin-bottom:32px}.panel-group .card-panel[data-v-b4165a68]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-b4165a68]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-b4165a68]{background:#dae8d6}.panel-group .card-panel:hover .icon-message[data-v-b4165a68]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-b4165a68]{background:#a0a6f4}.panel-group .card-panel:hover .icon-shopping[data-v-b4165a68]{background:#dae8d6}.panel-group .card-panel .icon-people[data-v-b4165a68]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-b4165a68]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-b4165a68]{color:#a0a6f4}.panel-group .card-panel .icon-shopping[data-v-b4165a68]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-b4165a68]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-b4165a68]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-b4165a68]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-b4165a68]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-b4165a68]{font-size:20px}@media(max-width:550px){.card-panel-description[data-v-b4165a68]{display:none}.card-panel-icon-wrapper[data-v-b4165a68]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-b4165a68]{display:block;margin:14px auto!important;float:none!important}}.dashboard-editor-container[data-v-1cb2dce5]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-1cb2dce5]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .el-form-item[data-v-1cb2dce5]{margin-bottom:5px!important;padding-bottom:20px}.dashboard-editor-container .chart-wrapper[data-v-1cb2dce5]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media(max-width:1024px){.chart-wrapper[data-v-1cb2dce5]{padding:8px}} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-0eddb806.9ba52545.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-4413401e.65cac33b.css similarity index 85% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-0eddb806.9ba52545.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-4413401e.65cac33b.css index 6833cc80..90782915 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-0eddb806.9ba52545.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-4413401e.65cac33b.css @@ -1 +1 @@ -.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.dashboard-editor-container[data-v-69dc5993]{padding:32px;background-color:#f0f2f5;position:relative;min-height:100vh} \ No newline at end of file +.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.dashboard-editor-container[data-v-5ce168aa]{padding:32px;background-color:#f0f2f5;position:relative;min-height:100vh} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css b/threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css similarity index 62% rename from threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css rename to threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css index 0ea3eaa1..d7ce8eef 100644 --- a/threadpool/server/console/src/main/resources/static/static/css/chunk-66d45bb8.1117f654.css +++ b/threadpool/server/console/src/main/resources/static/static/css/chunk-eee8a83e.a09ed6a0.css @@ -1 +1 @@ -.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none}[data-v-41b2dc5c]::-webkit-scrollbar{width:8px;height:8px}[data-v-41b2dc5c]::-webkit-scrollbar-track{border-radius:5px;background:rgba(0,0,0,.06);-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.08)}[data-v-41b2dc5c]::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.12);-webkit-box-shadow:inset 0 0 10px rgba(0,0,0,.2)}.stack-info[data-v-41b2dc5c]{height:400px;overflow:auto}.stack-info>li[data-v-41b2dc5c]{margin-bottom:24px}.stack-info>li p[data-v-41b2dc5c]:first-child{color:#06f;font-weight:600;margin-top:10px}.stack-info>li ul[data-v-41b2dc5c]{margin-left:30px}.stack-info>li ul li[data-v-41b2dc5c]{color:#fc5531;text-align:justify;margin:10px auto} \ No newline at end of file +.waves-ripple{position:absolute;border-radius:100%;background-color:rgba(0,0,0,.15);background-clip:padding-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transform:scale(0);transform:scale(0);opacity:1}.waves-ripple.z-active{opacity:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,-webkit-transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out;transition:opacity 1.2s ease-out,transform .6s ease-out,-webkit-transform .6s ease-out}.pagination-container[data-v-df7d1fa0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-df7d1fa0]{display:none}[data-v-a1fe05c0]::-webkit-scrollbar{width:8px;height:8px}[data-v-a1fe05c0]::-webkit-scrollbar-track{border-radius:5px;background:rgba(0,0,0,.06);-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.08)}[data-v-a1fe05c0]::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.12);-webkit-box-shadow:inset 0 0 10px rgba(0,0,0,.2)}.stack-info[data-v-a1fe05c0]{height:400px;overflow:auto}.stack-info>li[data-v-a1fe05c0]{margin-bottom:24px}.stack-info>li p[data-v-a1fe05c0]:first-child{color:#06f;font-weight:600;margin-top:10px}.stack-info>li ul[data-v-a1fe05c0]{margin-left:30px}.stack-info>li ul li[data-v-a1fe05c0]{color:#fc5531;text-align:justify;margin:10px auto} \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js b/threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js deleted file mode 100644 index 307b3b3e..00000000 --- a/threadpool/server/console/src/main/resources/static/static/js/app.787fe2de.js +++ /dev/null @@ -1 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(e,t,n){e.exports=n("56d7")},"0781":function(e,t,n){"use strict";n.r(t);var a=n("24ab"),o=n.n(a),i=n("83d6"),r=n.n(i),c=r.a.showSettings,s=r.a.tagsView,l=r.a.fixedHeader,u=r.a.sidebarLogo,d={theme:o.a.theme,showSettings:c,tagsView:s,fixedHeader:l,sidebarLogo:u},m={CHANGE_SETTING:function(e,t){var n=t.key,a=t.value;e.hasOwnProperty(n)&&(e[n]=a)}},h={changeSetting:function(e,t){var n=e.commit;n("CHANGE_SETTING",t)}};t["default"]={namespaced:!0,state:d,mutations:m,actions:h}},"0d3d":function(e,t,n){"use strict";n("a4f4")},"0f9a":function(e,t,n){"use strict";n.r(t);var a=n("c7eb"),o=n("1da1"),i=(n("b0c0"),n("d3b7"),n("498a"),n("e9c4"),n("b775"));function r(e){return Object(i["a"])({url:"/hippo4j/v1/cs/auth/login",method:"post",data:e})}var c=n("5f87"),s=n("a18c"),l={token:Object(c["a"])(),name:"",avatar:"",introduction:"",roles:[]},u={SET_TOKEN:function(e,t){e.token=t},SET_INTRODUCTION:function(e,t){e.introduction=t},SET_NAME:function(e,t){e.name=t},SET_AVATAR:function(e,t){e.avatar=t},SET_ROLES:function(e,t){e.roles=t}},d={login:function(e,t){var n=e.commit,a=t.username,o=t.password;return new Promise((function(e,t){r({username:a.trim(),password:o,rememberMe:1}).then((function(t){var a=t.data,o=t.roles;n("SET_TOKEN",a),localStorage.setItem("roles",JSON.stringify(o)),localStorage.setItem("USER_ROLE",o[0]),Object(c["c"])(a),e()})).catch((function(e){alert("登录失败"),t(e)}))}))},getInfo:function(e){var t=e.commit;e.state;return new Promise((function(e,n){var a={};a.roles=JSON.parse(localStorage.getItem("roles")),t("SET_ROLES",a.roles),e(a)}))},logout:function(e){var t=e.commit;e.state;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),Object(s["d"])(),e()}))},resetToken:function(e){var t=e.commit;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),e()}))},changeRoles:function(e,t){var n=e.commit,i=e.dispatch;return new Promise(function(){var e=Object(o["a"])(Object(a["a"])().mark((function e(o){var r,l,u,d;return Object(a["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=t+"-token",n("SET_TOKEN",r),Object(c["c"])(r),e.next=5,i("getInfo");case 5:return l=e.sent,u=l.roles,Object(s["d"])(),e.next=10,i("permission/generateRoutes",u,{root:!0});case 10:d=e.sent,s["c"].addRoutes(d),i("tagsView/delAllViews",null,{root:!0}),o();case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}};t["default"]={namespaced:!0,state:l,mutations:u,actions:d}},1424:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-tenant_logo2",use:"icon-tenant_logo2-usage",viewBox:"0 0 1331 1024",content:''});r.a.add(c);t["default"]=c},"158d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item",use:"icon-item-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"187a":function(e,t,n){},"18f0":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"24ab":function(e,t,n){e.exports={theme:"#1890ff"}},2538:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-json",use:"icon-json-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},2580:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-language",use:"icon-language-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},2976:function(e,t,n){"use strict";n("3bfd")},"2a3d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},"2cf1":function(e,t,n){"use strict";n("680b")},3150:function(e,t,n){},"31c2":function(e,t,n){"use strict";n.r(t),n.d(t,"filterAsyncRoutes",(function(){return r}));var a=n("5530"),o=(n("d3b7"),n("caad"),n("2532"),n("159b"),n("14d9"),n("99af"),n("a18c"));function i(e,t){return!t.meta||!t.meta.roles||e.some((function(e){return t.meta.roles.includes(e)}))}function r(e,t){var n=[];return e.forEach((function(e){var o=Object(a["a"])({},e);i(t,o)&&(o.children&&(o.children=r(o.children,t)),n.push(o))})),n}var c={routes:[],addRoutes:[]},s={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=o["b"].concat(t)}},l={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){var a;a=t.includes("ROLE_ADMIN")?o["a"]||[]:r(o["a"],t),n("SET_ROUTES",a),e(a)}))}};t["default"]={namespaced:!0,state:c,mutations:s,actions:l}},"38e2":function(e,t,n){},"3bfd":function(e,t,n){},4093:function(e,t,n){},4360:function(e,t,n){"use strict";n("13d5"),n("d3b7"),n("ddb0"),n("ac1f"),n("5319");var a=n("2b0e"),o=n("2f62"),i=(n("b0c0"),{sidebar:function(e){return e.app.sidebar},size:function(e){return e.app.size},device:function(e){return e.app.device},visitedViews:function(e){return e.tagsView.visitedViews},cachedViews:function(e){return e.tagsView.cachedViews},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},name:function(e){return e.user.name},introduction:function(e){return e.user.introduction},roles:function(e){return e.user.roles},permission_routes:function(e){return e.permission.routes},errorLogs:function(e){return e.errorLog.logs}}),r=i;a["default"].use(o["a"]);var c=n("c653"),s=c.keys().reduce((function(e,t){var n=t.replace(/^\.\/(.*)\.\w+$/,"$1"),a=c(t);return e[n]=a.default,e}),{}),l=new o["a"].Store({modules:s,getters:r});t["a"]=l},4837:function(e,t,n){"use strict";n("38e2")},"4d49":function(e,t,n){"use strict";n.r(t);n("14d9"),n("a434");var a={logs:[]},o={ADD_ERROR_LOG:function(e,t){e.logs.push(t)},CLEAR_ERROR_LOG:function(e){e.logs.splice(0)}},i={addErrorLog:function(e,t){var n=e.commit;n("ADD_ERROR_LOG",t)},clearErrorLog:function(e){var t=e.commit;t("CLEAR_ERROR_LOG")}};t["default"]={namespaced:!0,state:a,mutations:o,actions:i}},"51ff":function(e,t,n){var a={"./404.svg":"a14a","./audit.svg":"d393","./dashboard2.svg":"ea93","./item.svg":"158d","./item_logo4.svg":"8811","./json.svg":"2538","./language.svg":"2580","./lessee.svg":"dbd7","./link.svg":"18f0","./log.svg":"fea0","./notify.svg":"5448","./other.svg":"5f34","./password.svg":"2a3d","./pool.svg":"e720","./tenant_logo2.svg":"1424","./threadPool_logo1.svg":"b6d1","./threadPool_logo2.svg":"9bc4","./user.svg":"b3b5","./vessel.svg":"c34e"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="51ff"},5448:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-notify",use:"icon-notify-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"55f1":function(e,t,n){},"56d7":function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"parseTime",(function(){return q["c"]})),n.d(a,"formatTime",(function(){return q["b"]})),n.d(a,"timeAgo",(function(){return U})),n.d(a,"numberFormatter",(function(){return Q})),n.d(a,"toThousandFilter",(function(){return G})),n.d(a,"uppercaseFirst",(function(){return W}));n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b64b"),n("4de4");var o=n("2b0e"),i=n("a78e"),r=n.n(i),c=(n("f5df1"),n("5c96")),s=n.n(c),l=(n("24ab"),n("b20f"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)}),u=[],d={name:"App"},m=d,h=n("2877"),f=Object(h["a"])(m,l,u,!1,null,null,null),p=f.exports,b=n("4360"),g=n("a18c"),v=(n("d81d"),n("ddb0"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal?n("div",e._g({staticClass:"svg-external-icon svg-icon",style:e.styleExternalIcon},e.$listeners)):n("svg",e._g({class:e.svgClass,attrs:{"aria-hidden":"true"}},e.$listeners),[n("use",{attrs:{"xlink:href":e.iconName}})])}),w=[],y=n("61f7"),x={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(y["a"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},_=x,k=(n("64df"),Object(h["a"])(_,v,w,!1,null,"f9f7fefc",null)),M=k.exports;o["default"].component("svg-icon",M);var T=n("51ff"),C=function(e){return e.keys().map(e)};C(T);var S=n("c7eb"),z=n("5530"),E=n("1da1"),O=n("323e"),L=n.n(O),P=(n("a5d8"),n("5f87")),A=(n("99af"),n("83d6")),j=n.n(A),I=j.a.title||"Vue Element Admin";function R(e){return e?"".concat(e," - ").concat(I):"".concat(I)}var D=n("a925"),B=n("d3f0");o["default"].use(D["a"]);var H=new D["a"](B["a"]),F=H;L.a.configure({showSpinner:!1});var V=["/login","/auth-redirect"];g["c"].beforeEach(function(){var e=Object(E["a"])(Object(S["a"])().mark((function e(t,n,a){var o,i,r,s,l;return Object(S["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(L.a.start(),document.title=R(F.t(t.meta.title)),o=Object(P["a"])(),!o){e.next=35;break}if("/login"!==t.path){e.next=9;break}a({path:"/"}),L.a.done(),e.next=33;break;case 9:if(i=b["a"].getters.roles&&b["a"].getters.roles.length>0,!i){e.next=14;break}a(),e.next=33;break;case 14:return e.prev=14,e.next=17,b["a"].dispatch("user/getInfo");case 17:return r=e.sent,s=r.roles,e.next=21,b["a"].dispatch("permission/generateRoutes",s);case 21:l=e.sent,g["c"].addRoutes(l),a(Object(z["a"])(Object(z["a"])({},t),{},{replace:!0})),e.next=33;break;case 26:return e.prev=26,e.t0=e["catch"](14),e.next=30,b["a"].dispatch("user/resetToken");case 30:c["Message"].error(e.t0||"Has Error"),a("/login?redirect=".concat(t.path)),L.a.done();case 33:e.next=36;break;case 35:-1!==V.indexOf(t.path)?a():(a("/login?redirect=".concat(t.path)),L.a.done());case 36:case"end":return e.stop()}}),e,null,[[14,26]])})));return function(t,n,a){return e.apply(this,arguments)}}()),g["c"].afterEach((function(){L.a.done()}));n("d9e2");function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if("[object Object]"!==Object.prototype.toString.call(e))throw Error("The first argument to the langMatch method must be the object type");var n=F.locale;return Object.prototype.hasOwnProperty.call(e,n)?e[n]:t}o["default"].prototype.$langMatch=$;n("a9e3"),n("ac1f"),n("5319"),n("b680"),n("25f0"),n("fb6a");var q=n("ed08");function N(e,t){return 1===e?e+t:e+t+"s"}function U(e){var t=Date.now()/1e3-Number(e);return t<3600?N(~~(t/60)," minute"):t<86400?N(~~(t/3600)," hour"):N(~~(t/86400)," day")}function Q(e,t){for(var n=[{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"G"},{value:1e6,symbol:"M"},{value:1e3,symbol:"k"}],a=0;a=n[a].value)return(e/n[a].value+.1).toFixed(t).replace(/\.0+$|(\.[0-9]*[1-9])0+$/,"$1")+n[a].symbol;return e.toString()}function G(e){return(+e||0).toString().replace(/^-?\d+/g,(function(e){return e.replace(/(?=(?!\b)(\d{3})+$)/g,",")}))}function W(e){return e.charAt(0).toUpperCase()+e.slice(1)}var K=n("313e"),J=n("00e7"),Y=n.n(J);o["default"].prototype.$echarts=K["default"],o["default"].prototype.$cookie=Y.a,o["default"].use(s.a,{size:r.a.get("size")||"medium",i18n:function(e,t){return F.t(e,t)}}),Object.keys(a).forEach((function(e){o["default"].filter(e,a[e])})),o["default"].config.productionTip=!1,new o["default"]({el:"#app",router:g["c"],store:b["a"],i18n:F,render:function(e){return e(p)}})},"5e10":function(e,t,n){"use strict";n("3150")},"5f34":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-other",use:"icon-other-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"5f87":function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n("a78e"),o=n.n(a),i="Admin-Token";function r(){return o.a.get(i)}function c(e){return o.a.set(i,e)}function s(){return o.a.remove(i)}},"61f7":function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));n("ac1f"),n("00b4"),n("498a"),n("d3b7");function a(e){return/^(https?:|mailto:|tel:)/.test(e)}},"64df":function(e,t,n){"use strict";n("78bf")},"680b":function(e,t,n){},6820:function(e,t,n){"use strict";n("4093")},"78bf":function(e,t,n){},"7ad2":function(e,t,n){"use strict";n("55f1")},8326:function(e,t,n){},"83d6":function(e,t){e.exports={title:"Hippo4j Web",showSettings:!0,tagsView:!0,fixedHeader:!1,sidebarLogo:!0,errorLog:"production"}},8811:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item_logo4",use:"icon-item_logo4-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"9bc4":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo2",use:"icon-threadPool_logo2-usage",viewBox:"0 0 1044 1024",content:''});r.a.add(c);t["default"]=c},a14a:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-404",use:"icon-404-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var a,o,i=n("2b0e"),r=n("8c4f"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-wrapper",class:e.classObj},["mobile"===e.device&&e.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e._v(" "),n("sidebar",{staticClass:"sidebar-container"}),e._v(" "),n("div",{staticClass:"main-container"},[n("div",{class:{"fixed-header":e.fixedHeader}},[n("navbar")],1),e._v(" "),n("app-main")],1)],1)},s=[],l=n("5530"),u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("router-view",{key:e.key})],1)],1)},d=[],m={name:"AppMain",computed:{cachedViews:function(){return this.$store.state.tagsView.cachedViews},key:function(){return this.$route.path}}},h=m,f=(n("5e10"),n("0d3d"),n("2877")),p=Object(f["a"])(h,u,d,!1,null,"5ad61798",null),b=p.exports,g=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{toggleClick:e.toggleSideBar}}),e._v(" "),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),e._v(" "),a("div",{staticClass:"right-menu"},["mobile"!==e.device?void 0:e._e(),e._v(" "),a("langChange"),e._v(" "),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:n("f561")}}),e._v(" "),a("i",{staticClass:"el-icon-caret-bottom"})]),e._v(" "),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(e._s(this.$t("menu.dashboard")))])],1),e._v(" "),a("el-dropdown-item",{attrs:{divided:""}},[a("span",{staticStyle:{display:"block"},on:{click:e.logout}},[e._v(e._s(e.$t("system.logOut")))])])],1)],1)],2)],1)},v=[],w=n("c7eb"),y=n("1da1"),x=(n("14d9"),n("2f62")),_=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.levelList,(function(t,a){return n("el-breadcrumb-item",{key:t.path},["noRedirect"===t.redirect||a==e.levelList.length-1?n("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t(t.meta.title)))]):n("a",{on:{click:function(n){return n.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t(t.meta.title)))])])})),1)],1)},k=[],M=(n("2ca0"),n("4de4"),n("99af"),n("b0c0"),n("498a"),n("bd11")),T=n.n(M),C={data:function(){return{levelList:null}},watch:{$route:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"Dashboard"}}].concat(e)),this.levelList=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))},isDashboard:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()},pathCompile:function(e){var t=this.$route.params,n=T.a.compile(e);return n(t)},handleLink:function(e){var t=e.redirect,n=e.path;t?this.$router.push(t):this.$router.push(this.pathCompile(n))}}},S=C,z=(n("2976"),Object(f["a"])(S,_,k,!1,null,"37189a8c",null)),E=z.exports,O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{padding:"0 15px"},on:{click:e.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":e.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},L=[],P={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},A=P,j=(n("d49d"),Object(f["a"])(A,O,L,!1,null,"49e15297",null)),I=j.exports,R=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.errorLogs.length>0?n("div",[n("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[n("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[n("svg-icon",{attrs:{"icon-class":"bug"}})],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[n("div",{attrs:{slot:"title"},slot:"title"},[n("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v("Clear All")])],1),e._v(" "),n("el-table",{attrs:{data:e.errorLogs,border:""}},[n("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[n("div",[n("span",{staticClass:"message-title"},[e._v("Msg:")]),e._v(" "),n("el-tag",{attrs:{type:"danger"}},[e._v("\n "+e._s(a.err.message)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),e._v(" "),n("el-tag",{attrs:{type:"warning"}},[e._v("\n "+e._s(a.vm.$vnode.tag)+" error in "+e._s(a.info)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),e._v(" "),n("el-tag",{attrs:{type:"success"}},[e._v("\n "+e._s(a.url)+"\n ")])],1)]}}],null,!1,3621415002)}),e._v(" "),n("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.err.stack)+"\n ")]}}],null,!1,1726869048)})],1)],1)],1):e._e()},D=[],B={name:"ErrorLog",data:function(){return{dialogTableVisible:!1}},computed:{errorLogs:function(){return this.$store.getters.errorLogs}},methods:{clearAll:function(){this.dialogTableVisible=!1,this.$store.dispatch("errorLog/clearErrorLog")}}},H=B,F=(n("b36c"),Object(f["a"])(H,R,D,!1,null,"be34583a",null)),V=F.exports,$=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"lang-drop-wrap"},[n("el-dropdown",{attrs:{trigger:"click"},on:{command:e.selectedLang}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n "+e._s(e.currentLangName)+"\n "),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.langSelectList,(function(t){return n("el-dropdown-item",{key:t.lang,attrs:{command:t.lang}},[n("span",{staticClass:"dropdown-item-text",attrs:{"data-active":t.lang===e.currentLang}},[e._v(e._s(t.name))])])})),1)],1)],1)},q=[],N=(n("7db0"),n("d3f0")),U={data:function(){return{langSelectList:Object(N["b"])(),currentLang:""}},mounted:function(){var e=this.$i18n.locale;this.currentLang=e||null},computed:{currentLangName:function(){var e=this,t=this.langSelectList.find((function(t){return t.lang===e.currentLang}));return(null===t||void 0===t?void 0:t.name)||"选择语言"}},methods:{selectedLang:function(e){this.currentLang=e,this.$i18n.locale=e,localStorage.setItem("locale_lang",e)}}},Q=U,G=(n("7ad2"),Object(f["a"])(Q,$,q,!1,null,"0d170d36",null)),W=G.exports,K={components:{Breadcrumb:E,Hamburger:I,ErrorLog:V,langChange:W},computed:Object(l["a"])({},Object(x["b"])(["sidebar","avatar","device"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var e=this;return Object(y["a"])(Object(w["a"])().mark((function t(){return Object(w["a"])().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$cookie.delete("userName"),t.next=3,e.$store.dispatch("user/logout");case 3:e.$router.push("/login?redirect=".concat(e.$route.fullPath));case 4:case"end":return t.stop()}}),t)})))()}}},J=K,Y=(n("4837"),Object(f["a"])(J,g,v,!1,null,"7ef8238c",null)),Z=Y.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"has-logo":e.showLogo}},[e.showLogo?n("logo",{attrs:{collapse:e.isCollapse}}):e._e(),e._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"unique-opened":!1,"active-text-color":e.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},e._l(e.permission_routes,(function(e){return n("sidebar-item",{key:e.path,attrs:{item:e,"base-path":e.path}})})),1)],1)],1)},ee=[],te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):e._e(),e._v(" "),n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])])],1)],1)},ne=[],ae={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{title:"Hippo4j 1.5.0",logo:""}}},oe=ae,ie=(n("2cf1"),Object(f["a"])(oe,te,ne,!1,null,"fdfb555e",null)),re=ie.exports,ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.item.hidden?e._e():n("div",{staticClass:"menu-wrapper"},[!e.hasOneShowingChild(e.item.children,e.item)||e.onlyOneChild.children&&!e.onlyOneChild.noShowingChildren||e.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[e.item.meta?n("item",{attrs:{icon:e.item.meta&&e.item.meta.icon,title:this.$t(e.item.meta.title)}}):e._e()],1),e._v(" "),e._l(e.item.children,(function(t){return n("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:t,"base-path":e.resolvePath(t.path)}})}))],2):[e.onlyOneChild.meta?n("app-link",{attrs:{to:e.resolvePath(e.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!e.isNest},attrs:{index:e.resolvePath(e.onlyOneChild.path)}},[n("item",{attrs:{icon:e.onlyOneChild.meta.icon||e.item.meta&&e.item.meta.icon,title:this.$t(e.onlyOneChild.meta.title)}})],1)],1):e._e()]],2)},se=[],le=n("df7c"),ue=n.n(le),de=n("61f7"),me={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(e,t){var n=t.props,a=n.icon,o=n.title,i=[];return a&&i.push(e("svg-icon",{attrs:{"icon-class":a}})),o&&i.push(e("span",{slot:"title"},[o])),i}},he=me,fe=Object(f["a"])(he,a,o,!1,null,null,null),pe=fe.exports,be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("component",e._b({},"component",e.linkProps(e.to),!1),[e._t("default")],2)},ge=[],ve={props:{to:{type:String,required:!0}},methods:{linkProps:function(e){return Object(de["a"])(e)?{is:"a",href:e,target:"_blank",rel:"noopener"}:{is:"router-link",to:e}}}},we=ve,ye=Object(f["a"])(we,be,ge,!1,null,null,null),xe=ye.exports,_e={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var e=this,t=this.$refs.subMenu;if(t){var n=t.handleMouseleave;t.handleMouseleave=function(t){"mobile"!==e.device&&n(t)}}}}},ke={name:"SidebarItem",components:{Item:pe,AppLink:xe},mixins:[_e],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,a=t.filter((function(t){return!t.hidden&&(e.onlyOneChild=t,!0)}));return 1===a.length||0===a.length&&(this.onlyOneChild=Object(l["a"])(Object(l["a"])({},n),{},{path:"",noShowingChildren:!0}),!0)},resolvePath:function(e){return Object(de["a"])(e)?e:Object(de["a"])(this.basePath)?this.basePath:ue.a.resolve(this.basePath,e)}}},Me=ke,Te=Object(f["a"])(Me,ce,se,!1,null,null,null),Ce=Te.exports,Se=n("cf1e"),ze=n.n(Se),Ee={components:{SidebarItem:Ce,Logo:re},computed:Object(l["a"])(Object(l["a"])({},Object(x["b"])(["permission_routes","sidebar"])),{},{activeMenu:function(){var e=this.$route,t=e.meta,n=e.path;return t.activeMenu?t.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return ze.a},isCollapse:function(){return!this.sidebar.opened}})},Oe=Ee,Le=Object(f["a"])(Oe,X,ee,!1,null,null,null),Pe=Le.exports,Ae=n("4360"),je=document,Ie=je.body,Re=992,De={watch:{$route:function(e){"mobile"===this.device&&this.sidebar.opened&&Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var e=this.$_isMobile();e&&(Ae["a"].dispatch("app/toggleDevice","mobile"),Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var e=Ie.getBoundingClientRect();return e.width-1'});r.a.add(c);t["default"]=c},b6d1:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo1",use:"icon-threadPool_logo1-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},b775:function(e,t,n){"use strict";n("d3b7"),n("d9e2");var a=n("cee4"),o=n("5c96"),i=n("4360"),r=n("5f87"),c=n("a18c"),s=a["a"].create({baseURL:"",timeout:2e4});s.interceptors.request.use((function(e){return i["a"].getters.token&&(e.headers["Authorization"]=Object(r["a"])()),e}),(function(e){return console.log(e),Promise.reject(e)})),s.interceptors.response.use((function(e){var t=e.data;if("A000004"!==t.code){if("20000"!==t.code&&"0"!==t.code&&"200"!==t.code)return Object(o["Message"])({message:t.message||"Error",type:"error",duration:5e3}),"50008"!==t.code&&"50012"!==t.code&&"50014"!==t.code||o["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then((function(){i["a"].dispatch("user/resetToken").then((function(){location.reload()}))})),Promise.reject(new Error(t.message||"Error"));var n=e.data,a=n.code;if("0"===a){var s=n.data;return s}return"200"===a?n:t}Object(r["b"])(),Object(c["d"])(),alert(t.message),document.location.href="index.html"}),(function(e){return console.log("err"+e),Object(o["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)})),t["a"]=s},c34e:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-vessel",use:"icon-vessel-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},c653:function(e,t,n){var a={"./app.js":"d9cd","./errorLog.js":"4d49","./permission.js":"31c2","./settings.js":"0781","./user.js":"0f9a"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="c653"},cf1e:function(e,t,n){e.exports={menuText:"#bfcbd9",menuActiveText:"#409eff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},d393:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-audit",use:"icon-audit-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},d3f0:function(e,t,n){"use strict";var a=n("5530"),o=n("f0d9"),i=n.n(o),r=n("b2d6"),c=n.n(r),s={system:{login:"登 录",username:"用户名",password:"密码",logOut:"注销"},message:{requiredError:"这是必填项",success:"成功",createdSuccess:"创建成功",updateSuccess:"更新成功",deleteSuccess:"删除成功",deleteMessage:"此操作将删除 {name}, 是否继续?",selectMessage:"请选择{target}",NoDeletionPermissionTip:"请联系管理员删除",emptyWarning:"{name}不允许为空",queryFailure:"查询失败,请尝试刷新页面",updateFailure:"修改线程池失败",auditApprovedMessage:"此操作将接受线程池变更申请, 是否继续?",auditRejectionMessage:"此操作将拒绝线程池变更申请, 是否继续?",inputMessage:"请输入{target}"},common:{query:"搜索",insert:"添加",operation:"操作",create:"创建",edit:"编辑",delete:"删除",detail:"查看",cancel:"取消",confirm:"确认",reset:"重置",close:"关闭",refresh:"刷新",ok:"确定",num:"序号",createTime:"创建时间",updateTime:"修改时间",hint:"提示",info:"详情",stack:"堆栈",audit:"审核",yes:"是",no:"否"},report:{poolInstance:"线程池实例",user:"登录用户",role:"用户角色",tenants:"所属租户",threadPoolId:"线程池",taskCount:"任务数",inst:"实例数"},tenantManage:{tenant:"租户",tenantRequired:"租户(必填)",tenantName:"租户名称",owner:"负责人",tenantIntro:"租户简介"},projectManage:{item:"项目",itemRequired:"项目(必填)",itemName:"项目名称",owner:"负责人",itemIntro:"项目简介"},threadPool:{threadPool:"线程池",threadPoolRequired:"线程池(必填)",coreSize:"核心线程",maximumSize:"最大线程",queueType:"队列类型",queueCapacity:"队列容量",rejectedHandler:"拒绝策略",executionTimeout:"执行超时",executionTimeoutUnit:"执行超时 (毫秒)",keepAliveTime:"空闲回收",keepAliveTimeUnit:"空闲回收(秒)",isTimeout:"是否超时",timeout:"超时",noTimeout:"不超时",isAlarm:"是否报警",alarm:"报警",noAlarm:"不报警",activeAlarm:"活跃报警",capacityAlarm:"容量报警",customRejectedHandler:"自定义拒绝策略",customRejectedHandlerTip:"请输入自定义 SPI 拒绝策略标识",threadsNumErrorTip:"最大线程必须大于等于核心线程"},threadPoolInstance:{instanceID:"实例标识",active:"Active",stack:"堆栈",basicInformation:"基础信息",runningState:"运行状态",activeID:"环境标识",instanceHost:"实例Host",threadPoolID:"线程池",LoadInformation:"负载信息",CurrentLoad:"当前负载",PeakLoad:"峰值负载",RemainingMemory:"剩余内存",MemoryRatio:"内存占比",threadInformation:"线程信息",currentSize:"当前线程",activeSize:"活跃线程",largestSize:"同存最大线程",queueInformation:"队列信息",queueCount:"队列元素",queueRemainingCapacity:"队列剩余容量",queueType:"阻塞队列",otherInformation:"其它信息",totalTask:"任务总量",totalRejection:"拒绝次数",lastUpdateTime:"最后更新时间",allowCoreThreadTimeOut:"线程超时",changeAll:"全部修改",stackRequestFail:"当前线程池暂无堆栈信息"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(必填)",noResultsYet:"暂无结果"},frameworkThreadPool:{threadPoolIDRequired:"线程池标识(必填)",threadPoolID:"线程池标识",threadPoolType:"线程池类型"},threadPoolAudit:{changeType:"变更类型",modifiedBy:"修改人",auditStatus:"审核状态",reviewer:"审核人",submissionTime:"提交时间",auditTime:"审核时间",unaudited:"待审核",expired:"失效",auditApproved:"审核通过",auditRejection:"审核拒绝",manage:"管理",instance:"实例",container:"容器",framework:"框架",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",containerThreadPool:"容器线程池",frameworkThreadPool:"框架线程池"},notifyAlarm:{platform:"通知平台",type:"通知类型",enabled:"是否启用",interval:"通知间隔",receiver:"接收者",enabling:"启用",disabling:"禁用",token:"Token",receiverTip:"多个接收者使用英文逗号 , 分割 (注意不要有空格)\n- 钉钉:填写手机号\n- 企微:填写user_id会以@的消息发给用户,否则填写姓名,如:小马哥\n- 飞书:填写ou_开头用户唯一标识会以@的消息发给用户,填写手机号则是普通的@"},userAuthority:{userName:"用户名",role:"角色",password:"密码"},logManage:{bizType:"业务类型",bizID:"业务标识",operator:"操作人",logContent:"日志内容"},menu:{dashboard:"运行报表",tenantManage:"租户管理",itemManage:"项目管理",dynamicThreadPool:"动态线程池",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",threadPoolMonitor:"线程池监控",containerThreadPool:"容器线程池",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"框架线程池",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"rabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"线程池审核",notifyAlarm:"通知报警",userAuthority:"用户权限",logManage:"日志管理",officialWebsite:"官网外链"}},l={system:{login:"Login Form",username:"Username",password:"Password",logOut:"Log Out"},message:{requiredError:"this is required",success:"Success",createdSuccess:"Created Successfully",updateSuccess:"Update Successfully",deleteSuccess:"Delete Successfully",deleteMessage:"This action will delete {name}, Do you want to continue?",selectMessage:"Please select a {target}",NoDeletionPermissionTip:"Contact the administrator to delete it",emptyWarning:"The '{name}' cannot be empty",queryFailure:"The query fails. Please refresh the page",updateFailure:"Failed to modify thread-pool",auditApprovedMessage:"This operation will accept thread-pool change requests. Do you want to continue?",auditRejectionMessage:"This operation will reject the thread-pool change request. Do you want to continue?",inputMessage:"Please input {target}"},common:{query:"Query",insert:"Insert",operation:"Operation",create:"Create",edit:"Edit",delete:"Delete",detail:"Detail",cancel:"Cancel",confirm:"Confirm",reset:"Reset",ok:"Ok",num:"Num",close:"Close",refresh:"Refresh",createTime:"Create Time",updateTime:"Update Time",hint:"Warning",info:"Info",stack:"Stack",audit:"audit",yes:"Yes",no:"No"},report:{poolInstance:"Pool Instance",user:"User",role:"Role",tenants:"Tenants",threadPoolId:"ThreadPool ID",taskCount:"Task Count",inst:"Instance"},tenantManage:{tenant:"Tenant",tenantRequired:"Tenant(Required)",tenantName:"Tenant Name",owner:"Owner",tenantIntro:"Tenant Intro"},projectManage:{item:"Item",itemRequired:"Item(Required)",itemName:"Item Name",owner:"Owner",itemIntro:"Item Intro"},threadPool:{threadPool:"ThreadPool",threadPoolRequired:"ThreadPool(Required)",coreSize:"Core Size",maximumSize:"Maximum Size",queueType:"Queue Type",queueCapacity:"Queue Capacity",rejectedHandler:"Rejected Handler",executionTimeout:"Execution Timeout",executionTimeoutUnit:"Execution Timeout (ms)",keepAliveTime:"Keep Alive Time",keepAliveTimeUnit:"Keep Alive Time(seconds)",isTimeout:"Is Timeout",timeout:"Timeout",noTimeout:"No Timeout",isAlarm:"Is Alarm",alarm:"Alarm",noAlarm:"No Alarm",activeAlarm:"Active Alarm",capacityAlarm:"Capacity Alarm",customRejectedHandler:"Custom Rejected Handler",customRejectedHandlerTip:"Please enter a custom SPI Deny Policy ID",threadsNumErrorTip:"The maximum thread must be greater than or equal to the core thread"},threadPoolInstance:{instanceID:"Instance ID",active:"Active",stack:"Stack",basicInformation:"Basic Information",runningState:"Running state",activeID:"Active",instanceHost:"Instance Host",threadPoolID:"ThreadPool ID",LoadInformation:"Load Information",CurrentLoad:"Current Load",PeakLoad:"Peak Load",RemainingMemory:"Remaining Memory",MemoryRatio:"Memory Ratio",threadInformation:"Thread Information",currentSize:"Current Size",activeSize:"Active Size",largestSize:"Largest Size",queueInformation:"Queue Information",queueCount:"Queue Count",queueRemainingCapacity:"Queue Remaining Capacity",queueType:"Queue Type",otherInformation:"Other Information",totalTask:"Total Task",totalRejection:"Total Rejection",lastUpdateTime:"Last update time",allowCoreThreadTimeOut:"Allow Core Thread Time Out",changeAll:"Change All",stackRequestFail:"The current thread-pool has no stack information"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(Required)",noResultsYet:"No results yet"},frameworkThreadPool:{threadPoolIDRequired:"ThreadPool ID(Required)",threadPoolID:"ThreadPool ID",threadPoolType:"ThreadPool Type"},threadPoolAudit:{changeType:"Change Type",modifiedBy:"Modified by",auditStatus:"Audit Status",reviewer:"Reviewer",submissionTime:"Submission Time",auditTime:"Audit Time",unaudited:"Unaudited",expired:"Expired",auditApproved:"Audit Approved",auditRejection:"Audit Rejection",manage:"Manage",instance:"Instance",container:"Container",framework:"Framework",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",containerThreadPool:"Container ThreadPool",frameworkThreadPool:"Framework ThreadPool"},notifyAlarm:{platform:"Platform",type:"Type",enabled:"Enabled",interval:"Interval",receiver:"Receiver",enabling:"Enabling",disabling:"Disabling",token:"Token",receiverTip:"Use English commas for multiple recipients and separate them (be careful not to have spaces)\n-Ding: Fill in the phone number\n-WeChat: Fill in 'userid' and it will be sent to the user as a @ message, otherwise fill in the name, such as: XiaomaGe\n-Lark: Fill in with 'ou_' the unique user ID at the beginning will be sent to the user as a @ message, and filling in the phone number is normal@"},userAuthority:{userName:"User Name",role:"Role",password:"Password"},logManage:{bizType:"Biz Type",bizID:"Biz ID",operator:"Operator",logContent:"Log Content"},menu:{dashboard:"Dashboard",tenantManage:"Tenant Manage",itemManage:"Item Manage",dynamicThreadPool:"Dynamic ThreadPool",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",threadPoolMonitor:"ThreadPool Monitor",containerThreadPool:"Container ThreadPool",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"Framework ThreadPool",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"RabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"ThreadPool Audit",notifyAlarm:"Notify Alarm",userAuthority:"User Authority",logManage:"Log Manage",officialWebsite:"Official Website"}};n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var u=localStorage.getItem("locale_lang"),d={locale:u||"en",messages:{zh:Object(a["a"])(Object(a["a"])({},s),i.a),en:Object(a["a"])(Object(a["a"])({},l),c.a)}},m=function(){return[{lang:"en",name:"English"},{lang:"zh",name:"简体中文"}]}},d49d:function(e,t,n){"use strict";n("8326")},d9cd:function(e,t,n){"use strict";n.r(t);var a=n("a78e"),o=n.n(a),i={sidebar:{opened:!o.a.get("sidebarStatus")||!!+o.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop",size:o.a.get("size")||"medium"},r={TOGGLE_SIDEBAR:function(e){e.sidebar.opened=!e.sidebar.opened,e.sidebar.withoutAnimation=!1,e.sidebar.opened?o.a.set("sidebarStatus",1):o.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(e,t){o.a.set("sidebarStatus",0),e.sidebar.opened=!1,e.sidebar.withoutAnimation=t},TOGGLE_DEVICE:function(e,t){e.device=t},SET_SIZE:function(e,t){e.size=t,o.a.set("size",t)}},c={toggleSideBar:function(e){var t=e.commit;t("TOGGLE_SIDEBAR")},closeSideBar:function(e,t){var n=e.commit,a=t.withoutAnimation;n("CLOSE_SIDEBAR",a)},toggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)},setSize:function(e,t){var n=e.commit;n("SET_SIZE",t)}};t["default"]={namespaced:!0,state:i,mutations:r,actions:c}},dbd7:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-lessee",use:"icon-lessee-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},e720:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-pool",use:"icon-pool-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ea93:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-dashboard2",use:"icon-dashboard2-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ed08:function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));var a=n("53ca");n("ac1f"),n("00b4"),n("d3b7"),n("25f0"),n("5319"),n("14d9"),n("a15b"),n("d81d"),n("b64b"),n("fb6a"),n("159b"),n("d9e2"),n("a630"),n("3ca3"),n("6062"),n("ddb0"),n("466d"),n("4d63"),n("c607"),n("2c3e");function o(e,t){if(0===arguments.length)return null;var n,o=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(a["a"])(e)?n=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),n=new Date(e));var i={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=o.replace(/{(y|m|d|h|i|s|a)+}/g,(function(e,t){var n=i[t];return"a"===t?["日","一","二","三","四","五","六"][n]:(e.length>0&&n<10&&(n="0"+n),n||0)}));return r}function i(e,t){e=10===(""+e).length?1e3*parseInt(e):+e;var n=new Date(e),a=Date.now(),i=(a-n)/1e3;return i<30?"刚刚":i<3600?Math.ceil(i/60)+"分钟前":i<86400?Math.ceil(i/3600)+"小时前":i<172800?"1天前":t?o(e,t):n.getMonth()+1+"月"+n.getDate()+"日"+n.getHours()+"时"+n.getMinutes()+"分"}function r(e,t,n){var a,o,i,r,c,s=function s(){var l=+new Date-r;l0?a=setTimeout(s,t-l):(a=null,n||(c=e.apply(i,o),a||(i=o=null)))};return function(){for(var o=arguments.length,l=new Array(o),u=0;u'});r.a.add(c);t["default"]=c}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/app.8390bfc0.js b/threadpool/server/console/src/main/resources/static/static/js/app.8390bfc0.js new file mode 100644 index 00000000..d4c4103a --- /dev/null +++ b/threadpool/server/console/src/main/resources/static/static/js/app.8390bfc0.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(e,t,n){e.exports=n("56d7")},"0781":function(e,t,n){"use strict";n.r(t);var a=n("24ab"),o=n.n(a),i=n("83d6"),r=n.n(i),c=r.a.showSettings,s=r.a.tagsView,l=r.a.fixedHeader,u=r.a.sidebarLogo,d={theme:o.a.theme,showSettings:c,tagsView:s,fixedHeader:l,sidebarLogo:u},m={CHANGE_SETTING:function(e,t){var n=t.key,a=t.value;e.hasOwnProperty(n)&&(e[n]=a)}},f={changeSetting:function(e,t){var n=e.commit;n("CHANGE_SETTING",t)}};t["default"]={namespaced:!0,state:d,mutations:m,actions:f}},"0d3d":function(e,t,n){"use strict";n("a4f4")},"0f9a":function(e,t,n){"use strict";n.r(t);var a=n("c7eb"),o=n("1da1"),i=(n("b0c0"),n("d3b7"),n("a15b"),n("498a"),n("e9c4"),n("b775"));function r(e){return Object(i["a"])({url:"/hippo4j/v1/cs/auth/login",method:"post",data:e})}var c=n("5f87"),s=n("a18c"),l=(n("99af"),n("25f0"),n("1c35")),u=n("1c46"),d=n.n(u);function m(){for(var e="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",t="",n=16;n>0;--n)t+=e[Math.floor(Math.random()*e.length)];return t}function f(e,t){try{var n=l["Buffer"].from(t),a=d.a.randomBytes(12),o=d.a.createCipheriv("aes-128-gcm",n,a),i=o.update(e,"utf8","base64");i+=o.final("base64");var r=o.getAuthTag();i=l["Buffer"].from(i,"base64");var c=a.length+i.length+r.length,s=l["Buffer"].concat([a,i,r],c);return s.toString("base64")}catch(u){return console.log("Encrypt is error",u),null}}var h={token:Object(c["a"])(),name:"",avatar:"",introduction:"",roles:[]},p={SET_TOKEN:function(e,t){e.token=t},SET_INTRODUCTION:function(e,t){e.introduction=t},SET_NAME:function(e,t){e.name=t},SET_AVATAR:function(e,t){e.avatar=t},SET_ROLES:function(e,t){e.roles=t}},b={login:function(e,t){var n=e.commit,a=t.username,o=t.password;return new Promise((function(e,t){var i=m(),s=f(o,i);i=i.split("").reverse().join(""),r({username:a.trim(),password:s,tag:i,rememberMe:1}).then((function(t){var a=t.data,o=t.roles;n("SET_TOKEN",a),localStorage.setItem("roles",JSON.stringify(o)),localStorage.setItem("USER_ROLE",o[0]),Object(c["c"])(a),e()})).catch((function(e){t(e)}))}))},getInfo:function(e){var t=e.commit;e.state;return new Promise((function(e,n){var a={};a.roles=JSON.parse(localStorage.getItem("roles")),t("SET_ROLES",a.roles),e(a)}))},logout:function(e){var t=e.commit;e.state;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),Object(s["d"])(),e()}))},resetToken:function(e){var t=e.commit;return new Promise((function(e){t("SET_TOKEN",""),t("SET_ROLES",[]),Object(c["b"])(),e()}))},changeRoles:function(e,t){var n=e.commit,i=e.dispatch;return new Promise(function(){var e=Object(o["a"])(Object(a["a"])().mark((function e(o){var r,l,u,d;return Object(a["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r=t+"-token",n("SET_TOKEN",r),Object(c["c"])(r),e.next=5,i("getInfo");case 5:return l=e.sent,u=l.roles,Object(s["d"])(),e.next=10,i("permission/generateRoutes",u,{root:!0});case 10:d=e.sent,s["c"].addRoutes(d),i("tagsView/delAllViews",null,{root:!0}),o();case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}};t["default"]={namespaced:!0,state:h,mutations:p,actions:b}},1:function(e,t){},10:function(e,t){},11:function(e,t){},12:function(e,t){},13:function(e,t){},14:function(e,t){},1424:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-tenant_logo2",use:"icon-tenant_logo2-usage",viewBox:"0 0 1331 1024",content:''});r.a.add(c);t["default"]=c},"158d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item",use:"icon-item-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"187a":function(e,t,n){},"18f0":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},2:function(e,t){},"24ab":function(e,t,n){e.exports={theme:"#1890ff"}},2538:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-json",use:"icon-json-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},2580:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-language",use:"icon-language-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},2976:function(e,t,n){"use strict";n("3bfd")},"2a3d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},"2cf1":function(e,t,n){"use strict";n("680b")},3:function(e,t){},3150:function(e,t,n){},"31c2":function(e,t,n){"use strict";n.r(t),n.d(t,"filterAsyncRoutes",(function(){return r}));var a=n("5530"),o=(n("d3b7"),n("caad"),n("2532"),n("159b"),n("14d9"),n("99af"),n("a18c"));function i(e,t){return!t.meta||!t.meta.roles||e.some((function(e){return t.meta.roles.includes(e)}))}function r(e,t){var n=[];return e.forEach((function(e){var o=Object(a["a"])({},e);i(t,o)&&(o.children&&(o.children=r(o.children,t)),n.push(o))})),n}var c={routes:[],addRoutes:[]},s={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=o["b"].concat(t)}},l={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){var a;a=t.includes("ROLE_ADMIN")?o["a"]||[]:r(o["a"],t),n("SET_ROUTES",a),e(a)}))}};t["default"]={namespaced:!0,state:c,mutations:s,actions:l}},"38e2":function(e,t,n){},"3bfd":function(e,t,n){},4:function(e,t){},4093:function(e,t,n){},4360:function(e,t,n){"use strict";n("13d5"),n("d3b7"),n("ddb0"),n("ac1f"),n("5319");var a=n("2b0e"),o=n("2f62"),i=(n("b0c0"),{sidebar:function(e){return e.app.sidebar},size:function(e){return e.app.size},device:function(e){return e.app.device},visitedViews:function(e){return e.tagsView.visitedViews},cachedViews:function(e){return e.tagsView.cachedViews},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},name:function(e){return e.user.name},introduction:function(e){return e.user.introduction},roles:function(e){return e.user.roles},permission_routes:function(e){return e.permission.routes},errorLogs:function(e){return e.errorLog.logs}}),r=i;a["default"].use(o["a"]);var c=n("c653"),s=c.keys().reduce((function(e,t){var n=t.replace(/^\.\/(.*)\.\w+$/,"$1"),a=c(t);return e[n]=a.default,e}),{}),l=new o["a"].Store({modules:s,getters:r});t["a"]=l},4837:function(e,t,n){"use strict";n("38e2")},"4d49":function(e,t,n){"use strict";n.r(t);n("14d9"),n("a434");var a={logs:[]},o={ADD_ERROR_LOG:function(e,t){e.logs.push(t)},CLEAR_ERROR_LOG:function(e){e.logs.splice(0)}},i={addErrorLog:function(e,t){var n=e.commit;n("ADD_ERROR_LOG",t)},clearErrorLog:function(e){var t=e.commit;t("CLEAR_ERROR_LOG")}};t["default"]={namespaced:!0,state:a,mutations:o,actions:i}},5:function(e,t){},"51ff":function(e,t,n){var a={"./404.svg":"a14a","./audit.svg":"d393","./dashboard2.svg":"ea93","./item.svg":"158d","./item_logo4.svg":"8811","./json.svg":"2538","./language.svg":"2580","./lessee.svg":"dbd7","./link.svg":"18f0","./log.svg":"fea0","./notify.svg":"5448","./other.svg":"5f34","./password.svg":"2a3d","./pool.svg":"e720","./tenant_logo2.svg":"1424","./threadPool_logo1.svg":"b6d1","./threadPool_logo2.svg":"9bc4","./user.svg":"b3b5","./vessel.svg":"c34e"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="51ff"},5448:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-notify",use:"icon-notify-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"55f1":function(e,t,n){},"56d7":function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"parseTime",(function(){return q["c"]})),n.d(a,"formatTime",(function(){return q["b"]})),n.d(a,"timeAgo",(function(){return U})),n.d(a,"numberFormatter",(function(){return Q})),n.d(a,"toThousandFilter",(function(){return G})),n.d(a,"uppercaseFirst",(function(){return W}));n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b64b"),n("4de4");var o=n("2b0e"),i=n("a78e"),r=n.n(i),c=(n("f5df1"),n("5c96")),s=n.n(c),l=(n("24ab"),n("b20f"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)}),u=[],d={name:"App"},m=d,f=n("2877"),h=Object(f["a"])(m,l,u,!1,null,null,null),p=h.exports,b=n("4360"),g=n("a18c"),v=(n("d81d"),n("ddb0"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal?n("div",e._g({staticClass:"svg-external-icon svg-icon",style:e.styleExternalIcon},e.$listeners)):n("svg",e._g({class:e.svgClass,attrs:{"aria-hidden":"true"}},e.$listeners),[n("use",{attrs:{"xlink:href":e.iconName}})])}),w=[],y=n("61f7"),x={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(y["a"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},_=x,k=(n("64df"),Object(f["a"])(_,v,w,!1,null,"f9f7fefc",null)),M=k.exports;o["default"].component("svg-icon",M);var T=n("51ff"),C=function(e){return e.keys().map(e)};C(T);var S=n("c7eb"),z=n("5530"),E=n("1da1"),O=n("323e"),L=n.n(O),P=(n("a5d8"),n("5f87")),A=(n("99af"),n("83d6")),j=n.n(A),I=j.a.title||"Vue Element Admin";function R(e){return e?"".concat(e," - ").concat(I):"".concat(I)}var B=n("a925"),D=n("d3f0");o["default"].use(B["a"]);var H=new B["a"](D["a"]),F=H;L.a.configure({showSpinner:!1});var V=["/login","/auth-redirect"];g["c"].beforeEach(function(){var e=Object(E["a"])(Object(S["a"])().mark((function e(t,n,a){var o,i,r,s,l;return Object(S["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(L.a.start(),document.title=R(F.t(t.meta.title)),o=Object(P["a"])(),!o){e.next=35;break}if("/login"!==t.path){e.next=9;break}a({path:"/"}),L.a.done(),e.next=33;break;case 9:if(i=b["a"].getters.roles&&b["a"].getters.roles.length>0,!i){e.next=14;break}a(),e.next=33;break;case 14:return e.prev=14,e.next=17,b["a"].dispatch("user/getInfo");case 17:return r=e.sent,s=r.roles,e.next=21,b["a"].dispatch("permission/generateRoutes",s);case 21:l=e.sent,g["c"].addRoutes(l),a(Object(z["a"])(Object(z["a"])({},t),{},{replace:!0})),e.next=33;break;case 26:return e.prev=26,e.t0=e["catch"](14),e.next=30,b["a"].dispatch("user/resetToken");case 30:c["Message"].error(e.t0||"Has Error"),a("/login?redirect=".concat(t.path)),L.a.done();case 33:e.next=36;break;case 35:-1!==V.indexOf(t.path)?a():(a("/login?redirect=".concat(t.path)),L.a.done());case 36:case"end":return e.stop()}}),e,null,[[14,26]])})));return function(t,n,a){return e.apply(this,arguments)}}()),g["c"].afterEach((function(){L.a.done()}));n("d9e2");function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if("[object Object]"!==Object.prototype.toString.call(e))throw Error("The first argument to the langMatch method must be the object type");var n=F.locale;return Object.prototype.hasOwnProperty.call(e,n)?e[n]:t}o["default"].prototype.$langMatch=$;n("a9e3"),n("ac1f"),n("5319"),n("b680"),n("25f0"),n("fb6a");var q=n("ed08");function N(e,t){return 1===e?e+t:e+t+"s"}function U(e){var t=Date.now()/1e3-Number(e);return t<3600?N(~~(t/60)," minute"):t<86400?N(~~(t/3600)," hour"):N(~~(t/86400)," day")}function Q(e,t){for(var n=[{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"G"},{value:1e6,symbol:"M"},{value:1e3,symbol:"k"}],a=0;a=n[a].value)return(e/n[a].value+.1).toFixed(t).replace(/\.0+$|(\.[0-9]*[1-9])0+$/,"$1")+n[a].symbol;return e.toString()}function G(e){return(+e||0).toString().replace(/^-?\d+/g,(function(e){return e.replace(/(?=(?!\b)(\d{3})+$)/g,",")}))}function W(e){return e.charAt(0).toUpperCase()+e.slice(1)}var K=n("313e"),J=n("00e7"),Y=n.n(J);o["default"].prototype.$echarts=K["default"],o["default"].prototype.$cookie=Y.a,o["default"].use(s.a,{size:r.a.get("size")||"medium",i18n:function(e,t){return F.t(e,t)}}),Object.keys(a).forEach((function(e){o["default"].filter(e,a[e])})),o["default"].config.productionTip=!1,new o["default"]({el:"#app",router:g["c"],store:b["a"],i18n:F,render:function(e){return e(p)}})},"5e10":function(e,t,n){"use strict";n("3150")},"5f34":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-other",use:"icon-other-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},"5f87":function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n("a78e"),o=n.n(a),i="Admin-Token";function r(){return o.a.get(i)}function c(e){return o.a.set(i,e)}function s(){return o.a.remove(i)}},6:function(e,t){},"61f7":function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));n("ac1f"),n("00b4"),n("498a"),n("d3b7");function a(e){return/^(https?:|mailto:|tel:)/.test(e)}},"64df":function(e,t,n){"use strict";n("78bf")},"680b":function(e,t,n){},6820:function(e,t,n){"use strict";n("4093")},7:function(e,t){},"78bf":function(e,t,n){},"7ad2":function(e,t,n){"use strict";n("55f1")},8:function(e,t){},8326:function(e,t,n){},"83d6":function(e,t){e.exports={title:"Hippo4j Web",showSettings:!0,tagsView:!0,fixedHeader:!1,sidebarLogo:!0,errorLog:"production"}},8811:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-item_logo4",use:"icon-item_logo4-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},9:function(e,t){},"9bc4":function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo2",use:"icon-threadPool_logo2-usage",viewBox:"0 0 1044 1024",content:''});r.a.add(c);t["default"]=c},a14a:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-404",use:"icon-404-usage",viewBox:"0 0 128 128",content:''});r.a.add(c);t["default"]=c},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var a,o,i=n("2b0e"),r=n("8c4f"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-wrapper",class:e.classObj},["mobile"===e.device&&e.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e._v(" "),n("sidebar",{staticClass:"sidebar-container"}),e._v(" "),n("div",{staticClass:"main-container"},[n("div",{class:{"fixed-header":e.fixedHeader}},[n("navbar")],1),e._v(" "),n("app-main")],1)],1)},s=[],l=n("5530"),u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("router-view",{key:e.key})],1)],1)},d=[],m={name:"AppMain",computed:{cachedViews:function(){return this.$store.state.tagsView.cachedViews},key:function(){return this.$route.path}}},f=m,h=(n("5e10"),n("0d3d"),n("2877")),p=Object(h["a"])(f,u,d,!1,null,"5ad61798",null),b=p.exports,g=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{toggleClick:e.toggleSideBar}}),e._v(" "),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),e._v(" "),a("div",{staticClass:"right-menu"},["mobile"!==e.device?void 0:e._e(),e._v(" "),a("langChange"),e._v(" "),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:n("f561")}}),e._v(" "),a("i",{staticClass:"el-icon-caret-bottom"})]),e._v(" "),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(e._s(this.$t("menu.dashboard")))])],1),e._v(" "),a("el-dropdown-item",{attrs:{divided:""}},[a("span",{staticStyle:{display:"block"},on:{click:e.logout}},[e._v(e._s(e.$t("system.logOut")))])])],1)],1)],2)],1)},v=[],w=n("c7eb"),y=n("1da1"),x=(n("14d9"),n("2f62")),_=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.levelList,(function(t,a){return n("el-breadcrumb-item",{key:t.path},["noRedirect"===t.redirect||a==e.levelList.length-1?n("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t(t.meta.title)))]):n("a",{on:{click:function(n){return n.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t(t.meta.title)))])])})),1)],1)},k=[],M=(n("2ca0"),n("4de4"),n("99af"),n("b0c0"),n("498a"),n("bd11")),T=n.n(M),C={data:function(){return{levelList:null}},watch:{$route:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"Dashboard"}}].concat(e)),this.levelList=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))},isDashboard:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()},pathCompile:function(e){var t=this.$route.params,n=T.a.compile(e);return n(t)},handleLink:function(e){var t=e.redirect,n=e.path;t?this.$router.push(t):this.$router.push(this.pathCompile(n))}}},S=C,z=(n("2976"),Object(h["a"])(S,_,k,!1,null,"37189a8c",null)),E=z.exports,O=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{padding:"0 15px"},on:{click:e.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":e.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},L=[],P={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},A=P,j=(n("d49d"),Object(h["a"])(A,O,L,!1,null,"49e15297",null)),I=j.exports,R=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.errorLogs.length>0?n("div",[n("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[n("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[n("svg-icon",{attrs:{"icon-class":"bug"}})],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[n("div",{attrs:{slot:"title"},slot:"title"},[n("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v("Clear All")])],1),e._v(" "),n("el-table",{attrs:{data:e.errorLogs,border:""}},[n("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[n("div",[n("span",{staticClass:"message-title"},[e._v("Msg:")]),e._v(" "),n("el-tag",{attrs:{type:"danger"}},[e._v("\n "+e._s(a.err.message)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),e._v(" "),n("el-tag",{attrs:{type:"warning"}},[e._v("\n "+e._s(a.vm.$vnode.tag)+" error in "+e._s(a.info)+"\n ")])],1),e._v(" "),n("br"),e._v(" "),n("div",[n("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),e._v(" "),n("el-tag",{attrs:{type:"success"}},[e._v("\n "+e._s(a.url)+"\n ")])],1)]}}],null,!1,3621415002)}),e._v(" "),n("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.err.stack)+"\n ")]}}],null,!1,1726869048)})],1)],1)],1):e._e()},B=[],D={name:"ErrorLog",data:function(){return{dialogTableVisible:!1}},computed:{errorLogs:function(){return this.$store.getters.errorLogs}},methods:{clearAll:function(){this.dialogTableVisible=!1,this.$store.dispatch("errorLog/clearErrorLog")}}},H=D,F=(n("b36c"),Object(h["a"])(H,R,B,!1,null,"be34583a",null)),V=F.exports,$=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"lang-drop-wrap"},[n("el-dropdown",{attrs:{trigger:"click"},on:{command:e.selectedLang}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n "+e._s(e.currentLangName)+"\n "),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.langSelectList,(function(t){return n("el-dropdown-item",{key:t.lang,attrs:{command:t.lang}},[n("span",{staticClass:"dropdown-item-text",attrs:{"data-active":t.lang===e.currentLang}},[e._v(e._s(t.name))])])})),1)],1)],1)},q=[],N=(n("7db0"),n("d3f0")),U={data:function(){return{langSelectList:Object(N["b"])(),currentLang:""}},mounted:function(){var e=this.$i18n.locale;this.currentLang=e||null},computed:{currentLangName:function(){var e=this,t=this.langSelectList.find((function(t){return t.lang===e.currentLang}));return(null===t||void 0===t?void 0:t.name)||"选择语言"}},methods:{selectedLang:function(e){this.currentLang=e,this.$i18n.locale=e,localStorage.setItem("locale_lang",e)}}},Q=U,G=(n("7ad2"),Object(h["a"])(Q,$,q,!1,null,"0d170d36",null)),W=G.exports,K={components:{Breadcrumb:E,Hamburger:I,ErrorLog:V,langChange:W},computed:Object(l["a"])({},Object(x["b"])(["sidebar","avatar","device"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var e=this;return Object(y["a"])(Object(w["a"])().mark((function t(){return Object(w["a"])().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$cookie.delete("userName"),t.next=3,e.$store.dispatch("user/logout");case 3:e.$router.push("/login?redirect=".concat(e.$route.fullPath));case 4:case"end":return t.stop()}}),t)})))()}}},J=K,Y=(n("4837"),Object(h["a"])(J,g,v,!1,null,"7ef8238c",null)),Z=Y.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"has-logo":e.showLogo}},[e.showLogo?n("logo",{attrs:{collapse:e.isCollapse}}):e._e(),e._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"unique-opened":!1,"active-text-color":e.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},e._l(e.permission_routes,(function(e){return n("sidebar-item",{key:e.path,attrs:{item:e,"base-path":e.path}})})),1)],1)],1)},ee=[],te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):e._e(),e._v(" "),n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])])],1)],1)},ne=[],ae={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{title:"Hippo4j 1.5.0",logo:""}}},oe=ae,ie=(n("2cf1"),Object(h["a"])(oe,te,ne,!1,null,"fdfb555e",null)),re=ie.exports,ce=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.item.hidden?e._e():n("div",{staticClass:"menu-wrapper"},[!e.hasOneShowingChild(e.item.children,e.item)||e.onlyOneChild.children&&!e.onlyOneChild.noShowingChildren||e.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[e.item.meta?n("item",{attrs:{icon:e.item.meta&&e.item.meta.icon,title:this.$t(e.item.meta.title)}}):e._e()],1),e._v(" "),e._l(e.item.children,(function(t){return n("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:t,"base-path":e.resolvePath(t.path)}})}))],2):[e.onlyOneChild.meta?n("app-link",{attrs:{to:e.resolvePath(e.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!e.isNest},attrs:{index:e.resolvePath(e.onlyOneChild.path)}},[n("item",{attrs:{icon:e.onlyOneChild.meta.icon||e.item.meta&&e.item.meta.icon,title:this.$t(e.onlyOneChild.meta.title)}})],1)],1):e._e()]],2)},se=[],le=n("df7c"),ue=n.n(le),de=n("61f7"),me={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(e,t){var n=t.props,a=n.icon,o=n.title,i=[];return a&&i.push(e("svg-icon",{attrs:{"icon-class":a}})),o&&i.push(e("span",{slot:"title"},[o])),i}},fe=me,he=Object(h["a"])(fe,a,o,!1,null,null,null),pe=he.exports,be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("component",e._b({},"component",e.linkProps(e.to),!1),[e._t("default")],2)},ge=[],ve={props:{to:{type:String,required:!0}},methods:{linkProps:function(e){return Object(de["a"])(e)?{is:"a",href:e,target:"_blank",rel:"noopener"}:{is:"router-link",to:e}}}},we=ve,ye=Object(h["a"])(we,be,ge,!1,null,null,null),xe=ye.exports,_e={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var e=this,t=this.$refs.subMenu;if(t){var n=t.handleMouseleave;t.handleMouseleave=function(t){"mobile"!==e.device&&n(t)}}}}},ke={name:"SidebarItem",components:{Item:pe,AppLink:xe},mixins:[_e],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,a=t.filter((function(t){return!t.hidden&&(e.onlyOneChild=t,!0)}));return 1===a.length||0===a.length&&(this.onlyOneChild=Object(l["a"])(Object(l["a"])({},n),{},{path:"",noShowingChildren:!0}),!0)},resolvePath:function(e){return Object(de["a"])(e)?e:Object(de["a"])(this.basePath)?this.basePath:ue.a.resolve(this.basePath,e)}}},Me=ke,Te=Object(h["a"])(Me,ce,se,!1,null,null,null),Ce=Te.exports,Se=n("cf1e"),ze=n.n(Se),Ee={components:{SidebarItem:Ce,Logo:re},computed:Object(l["a"])(Object(l["a"])({},Object(x["b"])(["permission_routes","sidebar"])),{},{activeMenu:function(){var e=this.$route,t=e.meta,n=e.path;return t.activeMenu?t.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return ze.a},isCollapse:function(){return!this.sidebar.opened}})},Oe=Ee,Le=Object(h["a"])(Oe,X,ee,!1,null,null,null),Pe=Le.exports,Ae=n("4360"),je=document,Ie=je.body,Re=992,Be={watch:{$route:function(e){"mobile"===this.device&&this.sidebar.opened&&Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var e=this.$_isMobile();e&&(Ae["a"].dispatch("app/toggleDevice","mobile"),Ae["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var e=Ie.getBoundingClientRect();return e.width-1'});r.a.add(c);t["default"]=c},b6d1:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-threadPool_logo1",use:"icon-threadPool_logo1-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},b775:function(e,t,n){"use strict";n("d3b7"),n("d9e2");var a=n("cee4"),o=n("5c96"),i=n("4360"),r=n("5f87"),c=n("a18c"),s=a["a"].create({baseURL:"",timeout:2e4});s.interceptors.request.use((function(e){return i["a"].getters.token&&(e.headers["Authorization"]=Object(r["a"])()),e}),(function(e){return console.log(e),Promise.reject(e)})),s.interceptors.response.use((function(e){var t=e.data;if("A000004"!==t.code){if("20000"!==t.code&&"0"!==t.code&&"200"!==t.code)return Object(o["Message"])({message:t.message||"Error",type:"error",duration:5e3}),"50008"!==t.code&&"50012"!==t.code&&"50014"!==t.code||o["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then((function(){i["a"].dispatch("user/resetToken").then((function(){location.reload()}))})),Promise.reject(new Error(t.message||"Error"));var n=e.data,a=n.code;if("0"===a){var s=n.data;return s}return"200"===a?n:t}Object(r["b"])(),Object(c["d"])(),alert(t.message),document.location.href="index.html"}),(function(e){return console.log("err"+e),Object(o["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)})),t["a"]=s},c34e:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-vessel",use:"icon-vessel-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},c653:function(e,t,n){var a={"./app.js":"d9cd","./errorLog.js":"4d49","./permission.js":"31c2","./settings.js":"0781","./user.js":"0f9a"};function o(e){var t=i(e);return n(t)}function i(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}o.keys=function(){return Object.keys(a)},o.resolve=i,e.exports=o,o.id="c653"},cf1e:function(e,t,n){e.exports={menuText:"#bfcbd9",menuActiveText:"#409eff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},d393:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-audit",use:"icon-audit-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},d3f0:function(e,t,n){"use strict";var a=n("5530"),o=n("f0d9"),i=n.n(o),r=n("b2d6"),c=n.n(r),s={system:{login:"登 录",username:"用户名",password:"密码",logOut:"注销"},message:{requiredError:"这是必填项",success:"成功",createdSuccess:"创建成功",updateSuccess:"更新成功",deleteSuccess:"删除成功",deleteMessage:"此操作将删除 {name}, 是否继续?",selectMessage:"请选择{target}",NoDeletionPermissionTip:"请联系管理员删除",emptyWarning:"{name}不允许为空",queryFailure:"查询失败,请尝试刷新页面",updateFailure:"修改线程池失败",auditApprovedMessage:"此操作将接受线程池变更申请, 是否继续?",auditRejectionMessage:"此操作将拒绝线程池变更申请, 是否继续?",inputMessage:"请输入{target}"},common:{query:"搜索",insert:"添加",operation:"操作",create:"创建",edit:"编辑",delete:"删除",detail:"查看",cancel:"取消",confirm:"确认",reset:"重置",close:"关闭",refresh:"刷新",ok:"确定",num:"序号",createTime:"创建时间",updateTime:"修改时间",hint:"提示",info:"详情",stack:"堆栈",audit:"审核",yes:"是",no:"否"},report:{poolInstance:"线程池实例",user:"登录用户",role:"用户角色",tenants:"所属租户",threadPoolId:"线程池",taskCount:"任务数",inst:"实例数"},tenantManage:{tenant:"租户",tenantRequired:"租户(必填)",tenantName:"租户名称",owner:"负责人",tenantIntro:"租户简介"},projectManage:{item:"项目",itemRequired:"项目(必填)",itemName:"项目名称",owner:"负责人",itemIntro:"项目简介"},threadPool:{threadPool:"线程池",threadPoolRequired:"线程池(必填)",coreSize:"核心线程",maximumSize:"最大线程",queueType:"队列类型",queueCapacity:"队列容量",rejectedHandler:"拒绝策略",executionTimeout:"执行超时",executionTimeoutUnit:"执行超时 (毫秒)",keepAliveTime:"空闲回收",keepAliveTimeUnit:"空闲回收(秒)",isTimeout:"是否超时",timeout:"超时",noTimeout:"不超时",isAlarm:"是否报警",alarm:"报警",noAlarm:"不报警",activeAlarm:"活跃报警",capacityAlarm:"容量报警",customRejectedHandler:"自定义拒绝策略",customRejectedHandlerTip:"请输入自定义 SPI 拒绝策略标识",threadsNumErrorTip:"最大线程必须大于等于核心线程"},threadPoolInstance:{instanceID:"实例标识",active:"Active",stack:"堆栈",basicInformation:"基础信息",runningState:"运行状态",activeID:"环境标识",instanceHost:"实例Host",threadPoolID:"线程池",LoadInformation:"负载信息",CurrentLoad:"当前负载",PeakLoad:"峰值负载",RemainingMemory:"剩余内存",MemoryRatio:"内存占比",threadInformation:"线程信息",currentSize:"当前线程",activeSize:"活跃线程",largestSize:"同存最大线程",queueInformation:"队列信息",queueCount:"队列元素",queueRemainingCapacity:"队列剩余容量",queueType:"阻塞队列",otherInformation:"其它信息",totalTask:"任务总量",totalRejection:"拒绝次数",lastUpdateTime:"最后更新时间",allowCoreThreadTimeOut:"线程超时",changeAll:"全部修改",stackRequestFail:"当前线程池暂无堆栈信息"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(必填)",noResultsYet:"暂无结果"},frameworkThreadPool:{threadPoolIDRequired:"线程池标识(必填)",threadPoolID:"线程池标识",threadPoolType:"线程池类型"},threadPoolAudit:{changeType:"变更类型",modifiedBy:"修改人",auditStatus:"审核状态",reviewer:"审核人",submissionTime:"提交时间",auditTime:"审核时间",unaudited:"待审核",expired:"失效",auditApproved:"审核通过",auditRejection:"审核拒绝",manage:"管理",instance:"实例",container:"容器",framework:"框架",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",containerThreadPool:"容器线程池",frameworkThreadPool:"框架线程池"},notifyAlarm:{platform:"通知平台",type:"通知类型",enabled:"是否启用",interval:"通知间隔",receiver:"接收者",enabling:"启用",disabling:"禁用",token:"Token",receiverTip:"多个接收者使用英文逗号 , 分割 (注意不要有空格)\n- 钉钉:填写手机号\n- 企微:填写user_id会以@的消息发给用户,否则填写姓名,如:小马哥\n- 飞书:填写ou_开头用户唯一标识会以@的消息发给用户,填写手机号则是普通的@"},userAuthority:{userName:"用户名",role:"角色",password:"密码"},logManage:{bizType:"业务类型",bizID:"业务标识",operator:"操作人",logContent:"日志内容"},menu:{dashboard:"运行报表",tenantManage:"租户管理",itemManage:"项目管理",dynamicThreadPool:"动态线程池",threadPoolManage:"线程池管理",threadPoolInstance:"线程池实例",threadPoolMonitor:"线程池监控",containerThreadPool:"容器线程池",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"框架线程池",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"rabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"线程池审核",notifyAlarm:"通知报警",userAuthority:"用户权限",logManage:"日志管理",officialWebsite:"官网外链"}},l={system:{login:"Login Form",username:"Username",password:"Password",logOut:"Log Out"},message:{requiredError:"this is required",success:"Success",createdSuccess:"Created Successfully",updateSuccess:"Update Successfully",deleteSuccess:"Delete Successfully",deleteMessage:"This action will delete {name}, Do you want to continue?",selectMessage:"Please select a {target}",NoDeletionPermissionTip:"Contact the administrator to delete it",emptyWarning:"The '{name}' cannot be empty",queryFailure:"The query fails. Please refresh the page",updateFailure:"Failed to modify thread-pool",auditApprovedMessage:"This operation will accept thread-pool change requests. Do you want to continue?",auditRejectionMessage:"This operation will reject the thread-pool change request. Do you want to continue?",inputMessage:"Please input {target}"},common:{query:"Query",insert:"Insert",operation:"Operation",create:"Create",edit:"Edit",delete:"Delete",detail:"Detail",cancel:"Cancel",confirm:"Confirm",reset:"Reset",ok:"Ok",num:"Num",close:"Close",refresh:"Refresh",createTime:"Create Time",updateTime:"Update Time",hint:"Warning",info:"Info",stack:"Stack",audit:"Audit",yes:"Yes",no:"No"},report:{poolInstance:"Pool Instance",user:"User",role:"Role",tenants:"Tenants",threadPoolId:"ThreadPool ID",taskCount:"Task Count",inst:"Instance"},tenantManage:{tenant:"Tenant",tenantRequired:"Tenant(Required)",tenantName:"Tenant Name",owner:"Owner",tenantIntro:"Tenant Intro"},projectManage:{item:"Item",itemRequired:"Item(Required)",itemName:"Item Name",owner:"Owner",itemIntro:"Item Intro"},threadPool:{threadPool:"ThreadPool",threadPoolRequired:"ThreadPool(Required)",coreSize:"Core Size",maximumSize:"Maximum Size",queueType:"Queue Type",queueCapacity:"Queue Capacity",rejectedHandler:"Rejected Handler",executionTimeout:"Execution Timeout",executionTimeoutUnit:"Execution Timeout (ms)",keepAliveTime:"Keep Alive Time",keepAliveTimeUnit:"Keep Alive Time(seconds)",isTimeout:"Is Timeout",timeout:"Timeout",noTimeout:"No Timeout",isAlarm:"Is Alarm",alarm:"Alarm",noAlarm:"No Alarm",activeAlarm:"Active Alarm",capacityAlarm:"Capacity Alarm",customRejectedHandler:"Custom Rejected Handler",customRejectedHandlerTip:"Please enter a custom SPI Deny Policy ID",threadsNumErrorTip:"The maximum thread must be greater than or equal to the core thread"},threadPoolInstance:{instanceID:"Instance ID",active:"Active",stack:"Stack",basicInformation:"Basic Information",runningState:"Running state",activeID:"Active",instanceHost:"Instance Host",threadPoolID:"ThreadPool ID",LoadInformation:"Load Information",CurrentLoad:"Current Load",PeakLoad:"Peak Load",RemainingMemory:"Remaining Memory",MemoryRatio:"Memory Ratio",threadInformation:"Thread Information",currentSize:"Current Size",activeSize:"Active Size",largestSize:"Largest Size",queueInformation:"Queue Information",queueCount:"Queue Count",queueRemainingCapacity:"Queue Remaining Capacity",queueType:"Queue Type",otherInformation:"Other Information",totalTask:"Total Task",totalRejection:"Total Rejection",lastUpdateTime:"Last update time",allowCoreThreadTimeOut:"Allow Core Thread Time Out",changeAll:"Change All",stackRequestFail:"The current thread-pool has no stack information"},threadPoolMonitor:{ipPort:"IP : Port",ipPortRequired:"IP : Port(Required)",noResultsYet:"No results yet"},frameworkThreadPool:{threadPoolIDRequired:"ThreadPool ID(Required)",threadPoolID:"ThreadPool ID",threadPoolType:"ThreadPool Type"},threadPoolAudit:{changeType:"Change Type",modifiedBy:"Modified By",auditStatus:"Audit Status",reviewer:"Reviewer",submissionTime:"Submission Time",auditTime:"Audit Time",unaudited:"Unaudited",expired:"Expired",auditApproved:"Audit Approved",auditRejection:"Audit Rejection",manage:"Manage",instance:"Instance",container:"Container",framework:"Framework",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",containerThreadPool:"Container ThreadPool",frameworkThreadPool:"Framework ThreadPool"},notifyAlarm:{platform:"Platform",type:"Type",enabled:"Enabled",interval:"Interval",receiver:"Receiver",enabling:"Enabling",disabling:"Disabling",token:"Token",receiverTip:"Use English commas for multiple recipients and separate them (be careful not to have spaces)\n-Ding: Fill in the phone number\n-WeChat: Fill in 'userid' and it will be sent to the user as a @ message, otherwise fill in the name, such as: XiaomaGe\n-Lark: Fill in with 'ou_' the unique user ID at the beginning will be sent to the user as a @ message, and filling in the phone number is normal@"},userAuthority:{userName:"User Name",role:"Role",password:"Password"},logManage:{bizType:"Biz Type",bizID:"Biz ID",operator:"Operator",logContent:"Log Content"},menu:{dashboard:"Dashboard",tenantManage:"Tenant Manage",itemManage:"Item Manage",dynamicThreadPool:"Dynamic ThreadPool",threadPoolManage:"ThreadPool Manage",threadPoolInstance:"ThreadPool Instance",threadPoolMonitor:"ThreadPool Monitor",containerThreadPool:"Container ThreadPool",tomcat:"Tomcat",undertow:"Undertow",jetty:"Jetty",frameworkThreadPool:"Framework ThreadPool",dubbo:"Dubbo",hystrix:"Hystrix",rabbitMQ:"RabbitMQ",rocketMQ:"RocketMQ",alibabaDubbo:"AlibabaDubbo",rabbitMQStream:"RabbitMQStream",rocketMQStream:"RocketMQStream",threadPoolAudit:"ThreadPool Audit",notifyAlarm:"Notify Alarm",userAuthority:"User Authority",logManage:"Log Manage",officialWebsite:"Official Website"}};n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var u=localStorage.getItem("locale_lang"),d={locale:u||"en",messages:{zh:Object(a["a"])(Object(a["a"])({},s),i.a),en:Object(a["a"])(Object(a["a"])({},l),c.a)}},m=function(){return[{lang:"en",name:"English"},{lang:"zh",name:"简体中文"}]}},d49d:function(e,t,n){"use strict";n("8326")},d9cd:function(e,t,n){"use strict";n.r(t);var a=n("a78e"),o=n.n(a),i={sidebar:{opened:!o.a.get("sidebarStatus")||!!+o.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop",size:o.a.get("size")||"medium"},r={TOGGLE_SIDEBAR:function(e){e.sidebar.opened=!e.sidebar.opened,e.sidebar.withoutAnimation=!1,e.sidebar.opened?o.a.set("sidebarStatus",1):o.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(e,t){o.a.set("sidebarStatus",0),e.sidebar.opened=!1,e.sidebar.withoutAnimation=t},TOGGLE_DEVICE:function(e,t){e.device=t},SET_SIZE:function(e,t){e.size=t,o.a.set("size",t)}},c={toggleSideBar:function(e){var t=e.commit;t("TOGGLE_SIDEBAR")},closeSideBar:function(e,t){var n=e.commit,a=t.withoutAnimation;n("CLOSE_SIDEBAR",a)},toggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)},setSize:function(e,t){var n=e.commit;n("SET_SIZE",t)}};t["default"]={namespaced:!0,state:i,mutations:r,actions:c}},dbd7:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-lessee",use:"icon-lessee-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},e720:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-pool",use:"icon-pool-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ea93:function(e,t,n){"use strict";n.r(t);var a=n("e017"),o=n.n(a),i=n("21a1"),r=n.n(i),c=new o.a({id:"icon-dashboard2",use:"icon-dashboard2-usage",viewBox:"0 0 1024 1024",content:''});r.a.add(c);t["default"]=c},ed08:function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return r}));var a=n("53ca");n("ac1f"),n("00b4"),n("d3b7"),n("25f0"),n("5319"),n("14d9"),n("a15b"),n("d81d"),n("b64b"),n("fb6a"),n("159b"),n("d9e2"),n("a630"),n("3ca3"),n("6062"),n("ddb0"),n("466d"),n("4d63"),n("c607"),n("2c3e");function o(e,t){if(0===arguments.length)return null;var n,o=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(a["a"])(e)?n=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),n=new Date(e));var i={y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate(),h:n.getHours(),i:n.getMinutes(),s:n.getSeconds(),a:n.getDay()},r=o.replace(/{(y|m|d|h|i|s|a)+}/g,(function(e,t){var n=i[t];return"a"===t?["日","一","二","三","四","五","六"][n]:(e.length>0&&n<10&&(n="0"+n),n||0)}));return r}function i(e,t){e=10===(""+e).length?1e3*parseInt(e):+e;var n=new Date(e),a=Date.now(),i=(a-n)/1e3;return i<30?"刚刚":i<3600?Math.ceil(i/60)+"分钟前":i<86400?Math.ceil(i/3600)+"小时前":i<172800?"1天前":t?o(e,t):n.getMonth()+1+"月"+n.getDate()+"日"+n.getHours()+"时"+n.getMinutes()+"分"}function r(e,t,n){var a,o,i,r,c,s=function s(){var l=+new Date-r;l0?a=setTimeout(s,t-l):(a=null,n||(c=e.apply(i,o),a||(i=o=null)))};return function(){for(var o=arguments.length,l=new Array(o),u=0;u'});r.a.add(c);t["default"]=c}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-02066c0e.02308258.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-02066c0e.02308258.js new file mode 100644 index 00000000..3790b79f --- /dev/null +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-02066c0e.02308258.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-02066c0e"],{"333d":function(e,t,a){"use strict";var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"pagination-container",class:{hidden:e.hidden}},[a("el-pagination",e._b({attrs:{background:e.background,"current-page":e.currentPage,"page-size":e.pageSize,layout:e.layout,"page-sizes":e.pageSizes,total:e.total,"hide-on-single-page":!0},on:{"update:currentPage":function(t){e.currentPage=t},"update:current-page":function(t){e.currentPage=t},"update:pageSize":function(t){e.pageSize=t},"update:page-size":function(t){e.pageSize=t},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}},"el-pagination",e.$attrs,!1))],1)},n=[];a("a9e3");Math.easeInOutQuad=function(e,t,a,i){return e/=i/2,e<1?a/2*e*e+t:(e--,-a/2*(e*(e-2)-1)+t)};var r=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}();function o(e){document.documentElement.scrollTop=e,document.body.parentNode.scrollTop=e,document.body.scrollTop=e}function l(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function s(e,t,a){var i=l(),n=e-i,s=20,u=0;t="undefined"===typeof t?500:t;var c=function e(){u+=s;var l=Math.easeInOutQuad(u,i,n,t);o(l),u0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"100px",en:"150px"})}},[e.isEdit?[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[a("el-input",{attrs:{size:"medium",placeholder:e.$t("message.selectMessage",{target:e.$t("threadPool.threadPool")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}})],1)]:e._e(),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType")},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:4===e.temp.queueType||5===e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[a("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),a("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isAlarm"),prop:"isAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.isAlarm,callback:function(t){e.$set(e.temp,"isAlarm",t)},expression:"temp.isAlarm"}},[a("el-radio-button",{attrs:{label:"1"}},[e._v(e._s(e.$t("threadPool.alarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.livenessAlarm,callback:function(t){e.$set(e.temp,"livenessAlarm",t)},expression:"temp.livenessAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.capacityAlarm,callback:function(t){e.$set(e.temp,"capacityAlarm",t)},expression:"temp.capacityAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?a("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[a("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e()],2),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},n=[],r=(a("14d9"),a("3737")),o=a("dd71"),l=a("4d85"),s=a("6724"),u=a("333d"),c={name:"JobProject",components:{Pagination:u["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},defaultExecuteTimeoutValue:function(e){return void 0==e||null==e?0:e},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],allowCoreThreadTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")&&"ROLE_MANAGE"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listLoading=!0,l["e"](this.listQuery).then((function(t){var a=t.records,i=t.total;e.total=i,e.list=a,e.listLoading=!1}))},changeAlarm:function(e){var t=this;l["a"](e).then((function(){t.fetchData(),t.$notify({title:t.$t("message.success"),message:t.$t("message.updateSuccess"),type:"success",duration:2e3})}))},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var a=t.records,i=0;i72?n(new Error("The password can not be greater than 72 digits")):n()};return{loginForm:{username:"",password:""},loginRules:{password:[{required:!0,trigger:"blur",validator:t}]},passwordType:"password",capsTooltip:!1,loading:!1,showDialog:!1,redirect:void 0,otherQuery:{}}},watch:{$route:{handler:function(t){var e=t.query;e&&(this.redirect=e.redirect,this.otherQuery=this.getOtherQuery(e))},immediate:!0}},created:function(){var t=window.location.hostname;"console.hippo4j.cn"===t&&(this.loginForm.username="hippo4j",this.loginForm.password="hippo4j"),console.log(t)},destroyed:function(){},methods:{checkCapslock:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.shiftKey,n=t.key;n&&1===n.length&&(this.capsTooltip=!!(e&&n>="a"&&n<="z"||!e&&n>="A"&&n<="Z")),"CapsLock"===n&&!0===this.capsTooltip&&(this.capsTooltip=!1)},showPwd:function(){var t=this;"password"===this.passwordType?this.passwordType="":this.passwordType="password",this.$nextTick((function(){t.$refs.password.focus()}))},handleLogin:function(){var t=this;this.$refs.loginForm.validate((function(e){if(!e)return console.log("error submit."),!1;t.loading=!0,t.$store.dispatch("user/login",t.loginForm).then((function(){t.$cookie.set("userName",t.loginForm.username),console.log("success submit."),t.$router.push({path:t.redirect||"/",query:t.otherQuery}),t.loading=!1})).catch((function(e){console.log("error catch.",e),t.loading=!1}))}))},getOtherQuery:function(t){return Object.keys(t).reduce((function(e,n){return"redirect"!==n&&(e[n]=t[n]),e}),{})}}},h=d,g=(n("70b9"),n("7b4a"),Object(l["a"])(h,o,s,!1,null,"c62df1a8",null));e["default"]=g.exports},bfec:function(t,e,n){"use strict";n("9a73")}}]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.24c4f2f6.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.27d6833e.js similarity index 55% rename from threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.24c4f2f6.js rename to threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.27d6833e.js index a3e73f65..6b68cbf4 100644 --- a/threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.24c4f2f6.js +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-149a43cf.27d6833e.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-149a43cf"],{"183f":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"app-container"},[i("div",{staticClass:"filter-container"},[i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("tenantManage.tenantRequired"),filterable:""},on:{change:function(t){return e.tenantSelectList()}},model:{value:e.listQuery.tenantId,callback:function(t){e.$set(e.listQuery,"tenantId",t)},expression:"listQuery.tenantId"}},e._l(e.tenantOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-select",{staticClass:"filter-item",staticStyle:{width:"220px"},attrs:{placeholder:e.$t("projectManage.itemRequired"),filterable:""},on:{change:function(t){return e.itemSelectList()}},model:{value:e.listQuery.itemId,callback:function(t){e.$set(e.listQuery,"itemId",t)},expression:"listQuery.itemId"}},e._l(e.itemOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1),e._v(" "),i("el-button",{directives:[{name:"waves",rawName:"v-waves"}],staticClass:"filter-item",attrs:{type:"primary",icon:"el-icon-search"},on:{click:e.fetchData}},[e._v("\n "+e._s(e.$t("common.query"))+"\n ")])],1),e._v(" "),i("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.listLoading,expression:"listLoading"}],attrs:{data:e.list,"element-loading-text":"Loading",border:"",fit:"","max-height":"714","highlight-current-row":""}},[i("el-table-column",{attrs:{label:e.$t("common.num"),fixed:"",width:"95"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.$index+1))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.instanceID"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"primary",underline:!1}},[e._v(e._s(t.row.identify))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPoolInstance.active"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-tag",{attrs:{type:e._f("statusFilter")(t.row.active)}},[e._v("\n "+e._s(t.row.active)+"\n ")])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.coreSize"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(t.row.coreSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.maximumSize"),width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(t.row.maximumSize))])]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.queueType"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.queueType))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.queueCapacity"),width:"160"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.queueCapacity))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.rejectedHandler"),width:"260"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.rejectedName))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("threadPool.keepAliveTime"),width:"100"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.keepAliveTime))]}}])}),e._v(" "),i("el-table-column",{attrs:{label:e.$t("common.operation"),width:"90",align:"center",fixed:"right","class-name":"small-padding fixed-width"},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.row;return[i("el-button",{attrs:{type:"text",size:"small"},on:{click:function(t){return e.handleInfo(n)}}},[e._v("\n "+e._s(e.$t("common.detail"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"text",size:"small"},on:{click:function(t){return e.handleUpdate(n)}}},[e._v("\n "+e._s(e.$t("common.edit"))+"\n ")])]}}])})],1),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v("\n "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+"\n ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maximumSize"}},[[i("el-input-number",{attrs:{"controls-position":"right",min:1,max:9999},model:{value:e.temp.maximumSize,callback:function(t){e.$set(e.temp,"maximumSize",t)},expression:"temp.maximumSize"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[[i("el-input-number",{attrs:{placeholder:"Time(秒)","controls-position":"right",min:1},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.temp.allUpdate,callback:function(t){e.$set(e.temp,"allUpdate",t)},expression:"temp.allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.updateData()}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v("Confirm")])],1)],1)],1)},a=[],s=(i("14d9"),i("caad"),i("3737")),l=i("dd71"),o=i("4d85"),r=i("6724"),c={name:"JobProject",directives:{waves:r["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]}},data:function(){return{isRejectShow:!1,list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",mark:"Tomcat"},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isEditDisabled:!1,runTimeTemp:{},tenantOptions:[],instanceDialogFormVisible:!1,threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create",info:"Info"},rules:{coreSize:[{required:!0,message:"this is required",trigger:"blur"}],maximumSize:[{required:!0,message:"this is required",trigger:"blur"}]},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,allUpdate:"1",customRejectedType:null},visible:!0}},created:function(){this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listQuery.tenantId?this.listQuery.itemId?(this.listLoading=!0,o["f"](this.listQuery).then((function(t){if(null!=t){for(var i=t,n=[],a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticClass:"filter-item",staticStyle:{display:"block"},attrs:{placeholder:e.$t("tenantManage.tenant"),filterable:"",clearable:"",disabled:"create"!==e.dialogStatus},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-input",{attrs:{disabled:"create"!==e.dialogStatus,placeholder:e.$t("projectManage.item")},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemName"),prop:"itemName"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.itemName")},model:{value:e.temp.itemName,callback:function(t){e.$set(e.temp,"itemName",t)},expression:"temp.itemName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.owner"),prop:"owner"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.owner")},model:{value:e.temp.owner,callback:function(t){e.$set(e.temp,"owner",t)},expression:"temp.owner"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemIntro"),prop:"itemDesc"}},[a("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:e.$t("projectManage.itemIntro")},model:{value:e.temp.itemDesc,callback:function(t){e.$set(e.temp,"itemDesc",t)},expression:"temp.itemDesc"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],o=(a("fb6a"),a("14d9"),a("3737")),r=a("dd71"),s=a("6724"),l=a("333d"),c={name:"JobProject",components:{Pagination:l["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>26?e.slice(0,26)+"...":e:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],dialogStatus:"",isEditDisabled:!1,textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var e=this;this.listLoading=!0,o["c"](this.listQuery).then((function(t){var a=t.records,n=t.total;e.total=n,e.list=a,e.listLoading=!1}))},initSelect:function(){var e=this;r["c"]({}).then((function(t){for(var a=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"120px"}},[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticClass:"filter-item",staticStyle:{display:"block"},attrs:{placeholder:e.$t("tenantManage.tenant"),filterable:"",clearable:"",disabled:"create"!==e.dialogStatus},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-input",{attrs:{disabled:"create"!==e.dialogStatus,placeholder:e.$t("projectManage.item")},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemName"),prop:"itemName"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.itemName")},model:{value:e.temp.itemName,callback:function(t){e.$set(e.temp,"itemName",t)},expression:"temp.itemName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.owner"),prop:"owner"}},[a("el-input",{attrs:{placeholder:e.$t("projectManage.owner")},model:{value:e.temp.owner,callback:function(t){e.$set(e.temp,"owner",t)},expression:"temp.owner"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.itemIntro"),prop:"itemDesc"}},[a("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:e.$t("projectManage.itemIntro")},model:{value:e.temp.itemDesc,callback:function(t){e.$set(e.temp,"itemDesc",t)},expression:"temp.itemDesc"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],o=(a("fb6a"),a("14d9"),a("3737")),r=a("dd71"),s=a("6724"),l=a("333d"),c={name:"JobProject",components:{Pagination:l["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>26?e.slice(0,26)+"...":e:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],dialogStatus:"",isEditDisabled:!1,textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var e=this;this.listLoading=!0,o["c"](this.listQuery).then((function(t){var a=t.records,n=t.total;e.total=n,e.list=a,e.listLoading=!1}))},initSelect:function(){var e=this;r["c"]({}).then((function(t){for(var a=t.records,n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=t.shiftKey,s=t.key;s&&1===s.length&&(this.capsTooltip=!!(e&&s>="a"&&s<="z"||!e&&s>="A"&&s<="Z")),"CapsLock"===s&&!0===this.capsTooltip&&(this.capsTooltip=!1)},showPwd:function(){var t=this;"password"===this.passwordType?this.passwordType="":this.passwordType="password",this.$nextTick((function(){t.$refs.password.focus()}))},handleLogin:function(){var t=this;this.$refs.loginForm.validate((function(e){if(!e)return console.log("error submit."),!1;t.loading=!0,t.$store.dispatch("user/login",t.loginForm).then((function(){t.$cookie.set("userName",t.loginForm.username),console.log("success submit."),t.$router.push({path:t.redirect||"/",query:t.otherQuery}),t.loading=!1})).catch((function(){console.log("error catch."),t.loading=!1}))}))},getOtherQuery:function(t){return Object.keys(t).reduce((function(e,s){return"redirect"!==s&&(e[s]=t[s]),e}),{})}}},h=d,m=(s("b919"),s("a66f"),Object(l["a"])(h,n,o,!1,null,"7cb824ba",null));e["default"]=m.exports},a66f:function(t,e,s){"use strict";s("6313")},b919:function(t,e,s){"use strict";s("bdea")},bdea:function(t,e,s){},bfec:function(t,e,s){"use strict";s("9a73")}}]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-1f79669e.d87e1cd7.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-1f79669e.d87e1cd7.js deleted file mode 100644 index 8bb9dcd1..00000000 --- a/threadpool/server/console/src/main/resources/static/static/js/chunk-1f79669e.d87e1cd7.js +++ /dev/null @@ -1 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1f79669e"],{"27f8":function(t,e,a){},"2f59":function(t,e,a){},"33f6":function(t,e,a){"use strict";a("27f8")},"3f2c":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.show?a("div",{staticClass:"dashboard-editor-container"},[a("github-corner",{staticClass:"github-corner"}),t._v(" "),a("panel-group",{attrs:{"count-suc-total":t.countSucTotal,"count-fail-total":t.countFailTotal,"count-running-total":t.countRunningTotal,"count-running-instance-total":t.countRunningInstanceTotal},on:{handleSetLineChartData:t.handleSetLineChartData}}),t._v(" "),a("el-row",{staticStyle:{background:"#fff",padding:"16px 16px 0","margin-bottom":"32px"}},[a("line-chart",{attrs:{"chart-data":t.lineChartData}})],1),t._v(" "),a("el-row",{attrs:{gutter:32}},[a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("el-form",{attrs:{"label-position":"left"}},[a("el-form-item",{attrs:{label:t.$t("report.user"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.userName))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("report.role"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.role))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("report.tenants"),"label-width":"120px"}},[a("span")]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("common.createTime"),"label-width":"120px"}},[a("span",[t._v(" "+t._s(t.temp.gmtCreate))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("common.updateTime"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.gmtModified))])])],1)],1)]),t._v(" "),a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("raddar-chart")],1)]),t._v(" "),a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("pie-chart")],1)])],1),t._v(" "),a("el-row",{attrs:{gutter:8}},[a("el-col",{staticStyle:{"padding-right":"8px","margin-bottom":"30px"},attrs:{xs:{span:24},sm:{span:24},md:{span:24},lg:{span:12},xl:{span:12}}},[a("transaction-table")],1)],1)],1):t._e()},i=[],r=a("c7eb"),s=a("1da1"),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("a",{staticClass:"github-corner",attrs:{href:"https://github.com/opengoofy/hippo4j",target:"_blank","aria-label":"View source on Github"}},[a("svg",{staticStyle:{fill:"#40c9c6",color:"#fff"},attrs:{width:"80",height:"80",viewBox:"0 0 250 250","aria-hidden":"true"}},[a("path",{attrs:{d:"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"}}),t._v(" "),a("path",{staticClass:"octo-arm",staticStyle:{"transform-origin":"130px 106px"},attrs:{d:"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2",fill:"currentColor"}}),t._v(" "),a("path",{staticClass:"octo-body",attrs:{d:"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z",fill:"currentColor"}})])])},l=[],c=(a("71ae"),a("2877")),u={},d=Object(c["a"])(u,o,l,!1,null,"fedac698",null),h=d.exports,p=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-row",{staticClass:"panel-group",attrs:{gutter:40}},[a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel",on:{click:function(e){return t.handleSetLineChartData("chartInfo")}}},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"tenant_logo2","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("tenantManage.tenant"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.successCount,duration:2600}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"item_logo4","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("projectManage.item"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.failCount,duration:3e3}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"threadPool_logo1","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("threadPool.threadPool"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.runningCount,duration:3200}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"threadPool_logo2","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("report.poolInstance"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.runningCountInstance,duration:3200}})],1)])])],1)},f=[],m=(a("a9e3"),a("ec1b")),v=a.n(m),b={components:{CountTo:v.a},props:{countSucTotal:{type:Number,default:0},countFailTotal:{type:Number,default:0},countRunningTotal:{type:Number,default:0},countRunningInstanceTotal:{type:Number,default:0}},data:function(){return{successCount:this.countSucTotal,failCount:this.countFailTotal,runningCount:this.countRunningTotal,runningCountInstance:this.countRunningInstanceTotal}},methods:{handleSetLineChartData:function(t){this.$emit("handleSetLineChartData",t)}}},g=b,_=(a("6f93"),Object(c["a"])(g,p,f,!1,null,"b4165a68",null)),C=_.exports,w=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},y=[],x=a("ed08"),$={data:function(){return{$_sidebarElm:null}},mounted:function(){this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},beforeDestroy:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},activated:function(){this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},deactivated:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},methods:{$_resizeHandler:function(){var t=this;return Object(x["a"])((function(){t.chart&&t.chart.resize()}),100)()},$_initResizeEvent:function(){window.addEventListener("resize",this.$_resizeHandler)},$_destroyResizeEvent:function(){window.removeEventListener("resize",this.$_resizeHandler)},$_sidebarResizeHandler:function(t){"width"===t.propertyName&&this.$_resizeHandler()},$_initSidebarResizeEvent:function(){this.$_sidebarElm=document.getElementsByClassName("sidebar-container")[0],this.$_sidebarElm&&this.$_sidebarElm.addEventListener("transitionend",this.$_sidebarResizeHandler)},$_destroySidebarResizeEvent:function(){this.$_sidebarElm&&this.$_sidebarElm.removeEventListener("transitionend",this.$_sidebarResizeHandler)}}},S={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"350px"},autoResize:{type:Boolean,default:!0},chartData:{type:Object,required:!0}},data:function(){return{chart:null}},watch:{chartData:{deep:!0,handler:function(t){this.setOptions(t)}}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){var t=a("313e");this.chart=t.init(this.$el,"macarons"),this.setOptions(this.chartData)},setOptions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.oneList,a=t.twoList,n=t.threeList,i=t.fourList;this.chart.setOption({legend:{},tooltip:{},dataset:{source:[["product","queueSize","rejectCount","completedTaskCount"],e,a,n,i]},xAxis:{type:"category"},yAxis:{},series:[{type:"bar"},{type:"bar"},{type:"bar"}]})}}},F=S,V=Object(c["a"])(F,w,y,!1,null,null,null),T=V.exports,j=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},D=[],O=a("ade3"),L=a("b775");function E(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard",method:"get"})}function R(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/line/chart",method:"get"})}function A(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/pie/chart",method:"get"})}function N(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/tenant/chart",method:"get"})}function I(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/ranking",method:"get"})}var k={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"}},data:function(){return{chart:null}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){var t=this,e=a("313e");this.chart=e.init(this.$el,"macarons"),N({}).then((function(e){var a;t.chart.setOption({legend:{left:"center",bottom:"10"},toolbox:{show:!0,feature:{mark:{show:!0}}},series:[(a={name:"Nightingale Chart",type:"pie",roseType:"radius",radius:[15,95],center:["50%","38%"]},Object(O["a"])(a,"roseType","area"),Object(O["a"])(a,"itemStyle",{borderRadius:8}),Object(O["a"])(a,"data",e.tenantCharts),a)]})}))}}},z=k,q=Object(c["a"])(z,j,D,!1,null,null,null),M=q.exports,P=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},H=[],B={itemIds:["Industries","Technology","Forex","Gold","Forecasts"],pieDataList:[{value:320,name:"Industries"},{value:240,name:"Technology"},{value:149,name:"Forex"},{value:100,name:"Gold"},{value:59,name:"Forecasts"}]},G={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"}},data:function(){return{chart:null}},mounted:function(){var t=this;this.pieChartInfo(),this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{pieChartInfo:function(){},initChart:function(){var t=this,e=a("313e");this.chart=e.init(this.$el,"macarons"),A({}).then((function(e){B.itemIds=e.itemIds,B.pieDataList=e.pieDataList,t.chart.setOption({tooltip:{trigger:"item",formatter:"{a}
{b} : {c} ({d}%)"},legend:{left:"center",bottom:"10",data:B.itemIds},toolbox:{show:!0,feature:{mark:{show:!0}}},series:[{name:"NUMBER OF THREAD POOLS",type:"pie",roseType:"radius",radius:[15,95],center:["50%","38%"],data:B.pieDataList,animationEasing:"cubicInOut",animationDuration:2600}]})}))}}},J=G,Z=Object(c["a"])(J,P,H,!1,null,null,null),K=Z.exports,U=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-table",{staticStyle:{width:"100%","padding-top":"15px"},attrs:{data:t.list}},[a("el-table-column",{attrs:{label:t.$t("report.threadPoolId"),"min-width":"200"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.groupKey)+"\n ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:t.$t("report.taskCount"),width:"195",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(t._f("toThousandFilter")(e.row.maxCompletedTaskCount))+"\n ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:t.$t("report.inst"),width:"100",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){var n=e.row;return[a("el-tag",{attrs:{type:t._f("statusFilter")(n.inst)}},[t._v("\n "+t._s(n.inst)+"\n ")])]}}])})],1)},Q=[],W={filters:{statusFilter:function(t){var e={success:"success",pending:"danger"};return e[t]},orderNoFilter:function(t){return t.substring(0,30)}},data:function(){return{list:null}},created:function(){this.fetchData()},methods:{fetchData:function(){var t=this;this.list=[{order_no:"123456",price:"4454",status:"1"}],I({}).then((function(e){t.list=e.rankingChartInfoList}))}}},X=W,Y=Object(c["a"])(X,U,Q,!1,null,null,null),tt=Y.exports,et=a("cc68"),at={chartInfo:{oneList:[1,3,4,5,3,2],twoList:[1,2,3,4,1,3],threeList:[1,2,3,4,1,3],fourList:[1,2,3,4,1,3],dayList:["ten","twenty","thirty","forty","fifty","sixty"]}},nt={name:"DashboardAdmin",components:{GithubCorner:h,PanelGroup:C,LineChart:T,RaddarChart:M,PieChart:K,TransactionTable:tt},data:function(){return{lineChartData:at.chartInfo,countSucTotal:0,countRunningTotal:0,countFailTotal:0,countRunningInstanceTotal:0,show:!1,temp:{}}},created:function(){var t=this;return Object(s["a"])(Object(r["a"])().mark((function e(){return Object(r["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:t.chartInfo(),t.lintChart(),t.userInfo();case 3:case"end":return e.stop()}}),e)})))()},methods:{handleSetLineChartData:function(t){this.lineChartData=at[t]},chartInfo:function(){var t=this;E().then((function(e){var a=e||{},n=a.tenantCount,i=a.threadPoolCount,r=a.threadPoolInstanceCount,s=a.itemCount;t.show=!0,t.countSucTotal=n,t.countRunningTotal=i,t.countFailTotal=s,t.countRunningInstanceTotal=r})).catch((function(){}))},lintChart:function(){var t=this;R({}).then((function(e){var a=e||{},n=a.oneList,i=a.twoList,r=a.threeList,s=a.fourList;t.lineChartData.oneList=n,t.lineChartData.twoList=i,t.lineChartData.threeList=r,t.lineChartData.fourList=s})).catch((function(){}))},userInfo:function(){var t=this,e=this.$cookie.get("userName");et["c"](e).then((function(e){t.temp=e})).catch((function(){}))}}},it=nt,rt=(a("33f6"),Object(c["a"])(it,n,i,!1,null,"6e862226",null));e["default"]=rt.exports},"6f93":function(t,e,a){"use strict";a("778f")},"71ae":function(t,e,a){"use strict";a("2f59")},"778f":function(t,e,a){},cc68:function(t,e,a){"use strict";a.d(e,"d",(function(){return i})),a.d(e,"e",(function(){return r})),a.d(e,"a",(function(){return s})),a.d(e,"b",(function(){return o})),a.d(e,"c",(function(){return l}));var n=a("b775");function i(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/page",method:"post",data:t})}function r(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/update",method:"put",data:t})}function s(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/add",method:"post",data:t})}function o(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/remove/"+t,method:"delete"})}function l(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/info/"+t,method:"get"})}},ec1b:function(t,e,a){!function(e,a){t.exports=a()}(0,(function(){return function(t){function e(n){if(a[n])return a[n].exports;var i=a[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var a={};return e.m=t,e.c=a,e.i=function(t){return t},e.d=function(t,a,n){e.o(t,a)||Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var a=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(a,"a",a),a},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=2)}([function(t,e,a){var n=a(4)(a(1),a(5),null,null);t.exports=n.exports},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a(3);e.default={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator:function(t){return t>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default:function(t,e,a,n){return a*(1-Math.pow(2,-10*t/n))*1024/1023+e}}},data:function(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown:function(){return this.startVal>this.endVal}},watch:{startVal:function(){this.autoplay&&this.start()},endVal:function(){this.autoplay&&this.start()}},mounted:function(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start:function(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=(0,n.requestAnimationFrame)(this.count)},pauseResume:function(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause:function(){(0,n.cancelAnimationFrame)(this.rAF)},resume:function(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,(0,n.requestAnimationFrame)(this.count)},reset:function(){this.startTime=null,(0,n.cancelAnimationFrame)(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count:function(t){this.startTime||(this.startTime=t),this.timestamp=t;var e=t-this.startTime;this.remaining=this.localDuration-e,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(e,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(e,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(e/this.localDuration):this.printVal=this.localStartVal+(this.localStartVal-this.startVal)*(e/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),e1?this.decimal+e[1]:"",i=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;i.test(a);)a=a.replace(i,"$1"+this.separator+"$2");return this.prefix+a+n+this.suffix}},destroyed:function(){(0,n.cancelAnimationFrame)(this.rAF)}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a(0),i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=i.default,"undefined"!=typeof window&&window.Vue&&window.Vue.component("count-to",i.default)},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=0,i="webkit moz ms o".split(" "),r=void 0,s=void 0;if("undefined"==typeof window)e.requestAnimationFrame=r=function(){},e.cancelAnimationFrame=s=function(){};else{e.requestAnimationFrame=r=window.requestAnimationFrame,e.cancelAnimationFrame=s=window.cancelAnimationFrame;for(var o=void 0,l=0;l0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolManagerDialog},on:{"update:visible":function(e){t.threadPoolManagerDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"140px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maxSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isAlarm"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.isAlarm,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[t._v("\n "+t._s(t.detailInfo.livenessAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[t._v("\n "+t._s(t.detailInfo.capacityAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")])],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolInstanceDialog},on:{"update:visible":function(e){t.threadPoolInstanceDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"80px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{type:"primary",disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.webThreadPoolDialog},on:{"update:visible":function(e){t.webThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"modifyAll"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.adapterThreadPoolDialog},on:{"update:visible":function(e){t.adapterThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:"mark",prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.mark)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v("Confirm")])],1)],1)],1)},a=[],n=(i("14d9"),i("3737")),l=i("dd71"),r=i("b775");function s(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/page",method:"post",data:t})}function d(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify",method:"post",data:t})}function u(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/detail?id="+t,method:"get",data:t})}var c=i("6724"),p=i("333d"),m=(i("4d85"),i("47ec"),{name:"JobProject",components:{Pagination:p["a"]},directives:{waves:c["a"]},filters:{modifyAllTagFilter:function(t){var e={true:"success",false:"danger"};return e[t]},defaultExecuteTimeoutValue:function(t){return void 0==t||null==t?0:t},enableFilter:function(t,e){return 1==t?e.$t("common.yes"):0==t?e.$t("common.no"):void 0},alarmFilter:function(t){return 1==t?"报警":0==t?"不报警":void 0},queueTypeFilter:function(t){return"1"==t?"ArrayBlockingQueue":"2"==t?"LinkedBlockingQueue":"3"==t?"LinkedBlockingDeque":"4"==t?"SynchronousQueue":"5"==t?"LinkedTransferQueue":"6"==t?"PriorityBlockingQueue":"9"==t?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(t){return"1"==t?"CallerRunsPolicy":"2"==t?"AbortPolicy":"3"==t?"DiscardPolicy":"4"==t?"DiscardOldestPolicy":"5"==t?"RunsOldestTaskPolicy":"6"==t?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+t},modifyTypeFilter:function(t,e){return console.log(e),1==t?e.$t("threadPoolAudit.manage"):2==t?e.$t("threadPoolAudit.instance"):3==t?e.$t("threadPoolAudit.container"):4==t?e.$t("threadPoolAudit.framework"):void 0},verifyStatusFilter:function(t,e){return 0==t?e.$t("threadPoolAudit.unaudited"):1==t?e.$t("threadPoolAudit.auditApproved"):2==t?e.$t("threadPoolAudit.auditRejection"):3==t?e.$t("threadPoolAudit.expired"):void 0},modifyAllFilter:function(t){return 0==t?"N":1==t?"Y":void 0}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},detailInfo:{},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!0,threadPoolManagerDialog:!1,threadPoolInstanceDialog:!1,webThreadPoolDialog:!1,adapterThreadPoolDialog:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{1:this.$t("threadPoolAudit.threadPoolManage"),2:this.$t("threadPoolAudit.threadPoolInstance"),3:this.$t("threadPoolAudit.containerThreadPool"),4:this.$t("threadPoolAudit.frameworkThreadPool")},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0,that:this}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var t=this;this.listLoading=!0,s(this.listQuery).then((function(e){var i=e.records,o=e.total;t.total=o,t.list=i,t.listLoading=!1}))},initSelect:function(){var t=this;l["c"]({size:this.size}).then((function(e){for(var i=e.records,o=0;o0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolManagerDialog},on:{"update:visible":function(e){t.threadPoolManagerDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"140px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maxSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.isAlarm"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.isAlarm,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[t._v("\n "+t._s(t.detailInfo.livenessAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[t._v("\n "+t._s(t.detailInfo.capacityAlarm)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")])],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.threadPoolInstanceDialog},on:{"update:visible":function(e){t.threadPoolInstanceDialog=e}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{model:t.temp,"label-width":"80px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueType"),prop:"queueType"}},[t._v("\n "+t._s(t._f("queueTypeFilter")(t.detailInfo.queueType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.queueCapacity"),prop:"capacity"}},[t._v("\n "+t._s(t.detailInfo.capacity)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[t._v("\n "+t._s(t._f("enableFilter")(t.detailInfo.allowCoreThreadTimeOut,t.that))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[t._v("\n "+t._s(t.detailInfo.executeTimeOut)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[t._v("\n "+t._s(t._f("rejectedTypeFilter")(t.detailInfo.rejectedType))+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{type:"primary",disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.webThreadPoolDialog},on:{"update:visible":function(e){t.webThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[t._v("\n "+t._s(t.detailInfo.keepAliveTime)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"modifyAll"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.adapterThreadPoolDialog},on:{"update:visible":function(e){t.adapterThreadPoolDialog=e}}},[i("el-form",{ref:"dataForm",attrs:{model:t.temp,"label-position":"left","label-width":"110px"}},[i("el-form-item",{attrs:{label:"mark",prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.mark)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.coreSize"),prop:"corePoolSize"}},[t._v("\n "+t._s(t.detailInfo.corePoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPool.maximumSize"),prop:"maximumPoolSize"}},[t._v("\n "+t._s(t.detailInfo.maximumPoolSize)+"\n ")]),t._v(" "),i("el-form-item",{attrs:{label:t.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:t.detailInfo.modifyAll,callback:function(e){t.$set(t.detailInfo,"modifyAll",e)},expression:"detailInfo.modifyAll"}})],1)],1),t._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus},on:{click:function(e){return t.reject(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditRejection"))+"\n ")]),t._v(" "),i("el-button",{attrs:{disabled:0!=t.detailInfo.verifyStatus,type:"primary"},on:{click:function(e){return t.accept(t.detailInfo)}}},[t._v("\n "+t._s(t.$t("threadPoolAudit.auditApproved"))+"\n ")])],1)],1),t._v(" "),i("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v("Confirm")])],1)],1)],1)},a=[],n=(i("14d9"),i("3737")),l=i("dd71"),r=i("b775");function s(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/page",method:"post",data:t})}function d(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify",method:"post",data:t})}function u(t){return Object(r["a"])({url:"/hippo4j/v1/cs/configs/verify/query/application/detail?id="+t,method:"get",data:t})}var c=i("6724"),p=i("333d"),m=(i("4d85"),i("47ec"),{name:"JobProject",components:{Pagination:p["a"]},directives:{waves:c["a"]},filters:{modifyAllTagFilter:function(t){var e={true:"success",false:"danger"};return e[t]},defaultExecuteTimeoutValue:function(t){return void 0==t||null==t?0:t},enableFilter:function(t,e){return 1==t?e.$t("common.yes"):0==t?e.$t("common.no"):void 0},alarmFilter:function(t){return 1==t?"报警":0==t?"不报警":void 0},queueTypeFilter:function(t){return"1"==t?"ArrayBlockingQueue":"2"==t?"LinkedBlockingQueue":"3"==t?"LinkedBlockingDeque":"4"==t?"SynchronousQueue":"5"==t?"LinkedTransferQueue":"6"==t?"PriorityBlockingQueue":"9"==t?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(t){return"1"==t?"CallerRunsPolicy":"2"==t?"AbortPolicy":"3"==t?"DiscardPolicy":"4"==t?"DiscardOldestPolicy":"5"==t?"RunsOldestTaskPolicy":"6"==t?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+t},modifyTypeFilter:function(t,e){return console.log(e),1==t?e.$t("threadPoolAudit.manage"):2==t?e.$t("threadPoolAudit.instance"):3==t?e.$t("threadPoolAudit.container"):4==t?e.$t("threadPoolAudit.framework"):void 0},verifyStatusFilter:function(t,e){return 0==t?e.$t("threadPoolAudit.unaudited"):1==t?e.$t("threadPoolAudit.auditApproved"):2==t?e.$t("threadPoolAudit.auditRejection"):3==t?e.$t("threadPoolAudit.expired"):void 0},modifyAllFilter:function(t){return 0==t?"N":1==t?"Y":void 0}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},detailInfo:{},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!0,threadPoolManagerDialog:!1,threadPoolInstanceDialog:!1,webThreadPoolDialog:!1,adapterThreadPoolDialog:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{1:this.$t("threadPoolAudit.threadPoolManage"),2:this.$t("threadPoolAudit.threadPoolInstance"),3:this.$t("threadPoolAudit.containerThreadPool"),4:this.$t("threadPoolAudit.frameworkThreadPool")},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0,that:this}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var t=this;this.listLoading=!0,s(this.listQuery).then((function(e){var i=e.records,o=e.total;t.total=o,t.list=i,t.listLoading=!1}))},initSelect:function(){var t=this;l["c"]({size:this.size}).then((function(e){for(var i=e.records,o=0;o0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"105px"}},[e.isEdit?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.itemTempSelectList()}},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.threadPool"),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}},e._l(e.threadPoolTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.platform"),prop:"platform"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.platform,callback:function(t){e.$set(e.temp,"platform",t)},expression:"temp.platform"}},[n("el-radio-button",{attrs:{label:"DING"}},[e._v("DING")]),e._v(" "),n("el-radio-button",{attrs:{label:"LARK"}},[e._v("LARK")]),e._v(" "),n("el-radio-button",{attrs:{label:"WECHAT"}},[e._v("WECHAT")])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.enabled"),prop:"enable"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.enable,callback:function(t){e.$set(e.temp,"enable",t)},expression:"temp.enable"}},[n("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("notifyAlarm.enabling")))]),e._v(" "),n("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("notifyAlarm.disabling")))])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.type"),prop:"configType"}},[[n("div",[n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"CONFIG",border:""},model:{value:e.temp.configType,callback:function(t){e.$set(e.temp,"configType",t)},expression:"temp.configType"}}),e._v(" "),n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"ALARM",border:""},model:{value:e.temp.alarmType,callback:function(t){e.$set(e.temp,"alarmType",t)},expression:"temp.alarmType"}})],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.interval"),prop:"interval"}},[n("el-input-number",{attrs:{placeholder:e.$t("notifyAlarm.interval")+" / Min","controls-position":"right",min:0,max:999999,disabled:!0!==e.temp.alarmType},model:{value:e.temp.interval,callback:function(t){e.$set(e.temp,"interval",t)},expression:"temp.interval"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.token"),prop:"secretKey"}},[n("el-input",{attrs:{type:"textarea",placeholder:e.$t("message.inputMessage",{target:e.$t("notifyAlarm.token")}),"show-word-limit":""},model:{value:e.temp.secretKey,callback:function(t){e.$set(e.temp,"secretKey",t)},expression:"temp.secretKey"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.receiver"),prop:"receives"}},[n("el-input",{attrs:{type:"textarea",autosize:{minRows:4,maxRows:4},placeholder:e.$t("notifyAlarm.receiverTip")},model:{value:e.temp.receives,callback:function(t){e.$set(e.temp,"receives",t)},expression:"temp.receives"}})],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cleanForm()}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],r=(n("fb6a"),n("14d9"),n("b64b"),n("3737")),o=n("dd71"),l=n("b775");function s(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/query/page",method:"post",data:e})}function c(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/update",method:"post",data:e})}function u(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/save",method:"post",data:e})}function d(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/remove",method:"delete",data:e})}function p(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/enable/"+e.id+"/"+e.enable,method:"post"})}var m=n("4d85"),f=n("6724"),h=n("333d"),v={name:"JobProject",components:{Pagination:h["a"]},directives:{waves:f["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>22?e.slice(0,22)+"...":e:""},intervals:function(e){return null==e||""==e?"-":e}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:""},isEdit:!1,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],itemOptions:[],itemTempOptions:[],identifyOptions:[],threadPoolTempOptions:[],threadPoolOptions:[],platformTypes:[{key:"DING",display_name:"DING"},{key:"LARK",display_name:"LARK"},{key:"WECHAT",display_name:"WECHAT"}],typeTypes:[{key:"CONFIG",display_name:"CONFIG"},{key:"ALARM",display_name:"ALARM"}],enableTypes:[{key:1,display_name:"启用"},{key:0,display_name:"停用"}],dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],receives:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],secretKey:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],platform:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],configType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],enable:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",interval:void 0,configType:!1,alarmType:!1},visible:!0}},created:function(){this.fetchData(),this.initSelect()},methods:{fetchData:function(){var e=this;this.listLoading=!0,s(this.listQuery).then((function(t){var n=t.records,a=t.total;e.total=a,e.list=n,e.listLoading=!1}))},initSelect:function(){var e=this;o["c"]({}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":"105px"}},[e.isEdit?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.itemTempSelectList()}},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),e.isEdit?n("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[n("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.threadPool"),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}},e._l(e.threadPoolTempOptions,(function(e){return n("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1):e._e(),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.platform"),prop:"platform"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.platform,callback:function(t){e.$set(e.temp,"platform",t)},expression:"temp.platform"}},[n("el-radio-button",{attrs:{label:"DING"}},[e._v("DING")]),e._v(" "),n("el-radio-button",{attrs:{label:"LARK"}},[e._v("LARK")]),e._v(" "),n("el-radio-button",{attrs:{label:"WECHAT"}},[e._v("WECHAT")])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.enabled"),prop:"enable"}},[[n("div",[n("el-radio-group",{model:{value:e.temp.enable,callback:function(t){e.$set(e.temp,"enable",t)},expression:"temp.enable"}},[n("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("notifyAlarm.enabling")))]),e._v(" "),n("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("notifyAlarm.disabling")))])],1)],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.type"),prop:"configType"}},[[n("div",[n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"CONFIG",border:""},model:{value:e.temp.configType,callback:function(t){e.$set(e.temp,"configType",t)},expression:"temp.configType"}}),e._v(" "),n("el-checkbox",{attrs:{disabled:"create"!==e.dialogStatus,label:"ALARM",border:""},model:{value:e.temp.alarmType,callback:function(t){e.$set(e.temp,"alarmType",t)},expression:"temp.alarmType"}})],1)]],2),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.interval"),prop:"interval"}},[n("el-input-number",{attrs:{placeholder:e.$t("notifyAlarm.interval")+" / Min","controls-position":"right",min:0,max:999999,disabled:!0!==e.temp.alarmType},model:{value:e.temp.interval,callback:function(t){e.$set(e.temp,"interval",t)},expression:"temp.interval"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.token"),prop:"secretKey"}},[n("el-input",{attrs:{type:"textarea",placeholder:e.$t("message.inputMessage",{target:e.$t("notifyAlarm.token")}),"show-word-limit":""},model:{value:e.temp.secretKey,callback:function(t){e.$set(e.temp,"secretKey",t)},expression:"temp.secretKey"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("notifyAlarm.receiver"),prop:"receives"}},[n("el-input",{attrs:{type:"textarea",autosize:{minRows:4,maxRows:4},placeholder:e.$t("notifyAlarm.receiverTip")},model:{value:e.temp.receives,callback:function(t){e.$set(e.temp,"receives",t)},expression:"temp.receives"}})],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cleanForm()}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),n("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},i=[],r=(n("fb6a"),n("14d9"),n("b64b"),n("3737")),o=n("dd71"),l=n("b775");function s(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/query/page",method:"post",data:e})}function c(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/update",method:"post",data:e})}function u(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/save",method:"post",data:e})}function d(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/remove",method:"delete",data:e})}function p(e){return Object(l["a"])({url:"/hippo4j/v1/cs/notify/enable/"+e.id+"/"+e.enable,method:"post"})}var m=n("4d85"),f=n("6724"),h=n("333d"),v={name:"JobProject",components:{Pagination:h["a"]},directives:{waves:f["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},ellipsis:function(e){return e?e.length>22?e.slice(0,22)+"...":e:""},intervals:function(e){return null==e||""==e?"-":e}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:""},isEdit:!1,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,tenantOptions:[],itemOptions:[],itemTempOptions:[],identifyOptions:[],threadPoolTempOptions:[],threadPoolOptions:[],platformTypes:[{key:"DING",display_name:"DING"},{key:"LARK",display_name:"LARK"},{key:"WECHAT",display_name:"WECHAT"}],typeTypes:[{key:"CONFIG",display_name:"CONFIG"},{key:"ALARM",display_name:"ALARM"}],enableTypes:[{key:1,display_name:"启用"},{key:0,display_name:"停用"}],dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",interval:void 0,configType:!1,alarmType:!1},visible:!0,size:500}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],receives:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],secretKey:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],platform:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],configType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],enable:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initSelect()},methods:{fetchData:function(){var e=this;this.listLoading=!0,s(this.listQuery).then((function(t){var n=t.records,a=t.total;e.total=a,e.list=n,e.listLoading=!1}))},initSelect:function(){var e=this;o["c"]({}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),n("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.dialogFormVisible},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:t.rules,model:t.temp,"label-width":"120px"}},[n("el-form-item",{attrs:{label:t.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-input",{attrs:{disabled:"create"!==t.dialogStatus,placeholder:t.$t("tenantManage.tenant")},model:{value:t.temp.tenantId,callback:function(e){t.$set(t.temp,"tenantId",e)},expression:"temp.tenantId"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantName"),prop:"tenantName"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.tenantName")},model:{value:t.temp.tenantName,callback:function(e){t.$set(t.temp,"tenantName",e)},expression:"temp.tenantName"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.owner"),prop:"owner"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.owner")},model:{value:t.temp.owner,callback:function(e){t.$set(t.temp,"owner",e)},expression:"temp.owner"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantIntro"),prop:"tenantDesc"}},[n("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:t.$t("tenantManage.tenantIntro")},model:{value:t.temp.tenantDesc,callback:function(e){t.$set(t.temp,"tenantDesc",e)},expression:"temp.tenantDesc"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v(" "+t._s(t.$t("common.cancel"))+" ")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){"create"===t.dialogStatus?t.createData():t.updateData()}}},[t._v("\n "+t._s(t.$t("common.confirm"))+"\n ")])],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v(t._s(t.$t("common.confirm")))])],1)],1)],1)},i=[],o=(n("fb6a"),n("dd71")),l=n("6724"),r=n("333d"),s={name:"JobProject",components:{Pagination:r["a"]},directives:{waves:l["a"]},filters:{statusFilter:function(t){var e={published:"success",draft:"gray",deleted:"danger"};return e[t]},ellipsis:function(t){return t?t.length>26?t.slice(0,26)+"...":t:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tenantId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},created:function(){this.fetchData()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var t=this;this.listLoading=!0,o["c"](this.listQuery).then((function(e){var n=e.records,a=e.total;t.total=a,t.list=n,t.listLoading=!1}))},resetTemp:function(){this.temp={id:void 0,tenantName:"",tenantDesc:""}},handleCreate:function(){var t=this;this.resetTemp(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick((function(){t.$refs["dataForm"].clearValidate()}))},createData:function(){var t=this;this.$refs["dataForm"].validate((function(e){e&&o["a"](t.temp).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:t.$t("message.success"),message:t.$t("message.createdSuccess"),type:"success",duration:2e3})}))}))},handleUpdate:function(t){var e=this;this.temp=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick((function(){e.$refs["dataForm"].clearValidate()}))},updateData:function(){var t=this;this.$refs["dataForm"].validate((function(e){if(e){var n=Object.assign({},t.temp);o["d"](n).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:"Success",message:"Update Successfully",type:"success",duration:2e3})}))}}))},openDelConfirm:function(t){return this.$confirm(this.$t("message.deleteMessage",{name:t}),this.$t("common.hint"),{confirmButtonText:this.$t("common.ok"),cancelButtonText:this.$t("common.cancel"),type:"warning"})},handleDelete:function(t){var e=this;this.openDelConfirm(t.tenantId).then((function(){o["b"](t.tenantId).then((function(t){e.fetchData(),e.$notify({title:"Success",message:"Delete Successfully",type:"success",duration:2e3})}))}))}}},c=s,u=n("2877"),d=Object(u["a"])(c,a,i,!1,null,null,null);e["default"]=d.exports},6724:function(t,e,n){"use strict";n("8d41");var a="@@wavesContext";function i(t,e){function n(n){var a=Object.assign({},e.value),i=Object.assign({ele:t,type:"hit",color:"rgba(0, 0, 0, 0.15)"},a),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var l=o.getBoundingClientRect(),r=o.querySelector(".waves-ripple");switch(r?r.className="waves-ripple":(r=document.createElement("span"),r.className="waves-ripple",r.style.height=r.style.width=Math.max(l.width,l.height)+"px",o.appendChild(r)),i.type){case"center":r.style.top=l.height/2-r.offsetHeight/2+"px",r.style.left=l.width/2-r.offsetWidth/2+"px";break;default:r.style.top=(n.pageY-l.top-r.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",r.style.left=(n.pageX-l.left-r.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return r.style.backgroundColor=i.color,r.className="waves-ripple z-active",!1}}return t[a]?t[a].removeHandle=n:t[a]={removeHandle:n},n}var o={bind:function(t,e){t.addEventListener("click",i(t,e),!1)},update:function(t,e){t.removeEventListener("click",t[a].removeHandle,!1),t.addEventListener("click",i(t,e),!1)},unbind:function(t){t.removeEventListener("click",t[a].removeHandle,!1),t[a]=null,delete t[a]}},l=function(t){t.directive("waves",o)};window.Vue&&(window.waves=o,Vue.use(l)),o.install=l;e["a"]=o},"8d41":function(t,e,n){},b36cf:function(t,e,n){},dd71:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return o})),n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return r}));var a=n("b775");function i(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/query/page",method:"post",data:t})}function o(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/update",method:"post",data:t})}function l(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/save",method:"post",data:t})}function r(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/delete/"+t,method:"delete"})}},fe41:function(t,e,n){"use strict";n("b36cf")}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-37b6768d"],{"333d":function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[n("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,"page-sizes":t.pageSizes,total:t.total,"hide-on-single-page":!0},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},i=[];n("a9e3");Math.easeInOutQuad=function(t,e,n,a){return t/=a/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var o=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function l(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function r(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function s(t,e,n){var a=r(),i=t-a,s=20,c=0;e="undefined"===typeof e?500:e;var u=function t(){c+=s;var r=Math.easeInOutQuad(c,a,i,e);l(r),c0,expression:"total > 0"}],attrs:{total:t.total,page:t.listQuery.current,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"current",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:t.fetchData}}),t._v(" "),n("el-dialog",{attrs:{title:t.textMap[t.dialogStatus],visible:t.dialogFormVisible},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:t.rules,model:t.temp,"label-width":"120px"}},[n("el-form-item",{attrs:{label:t.$t("tenantManage.tenant"),prop:"tenantId"}},[n("el-input",{attrs:{disabled:"create"!==t.dialogStatus,placeholder:t.$t("tenantManage.tenant")},model:{value:t.temp.tenantId,callback:function(e){t.$set(t.temp,"tenantId",e)},expression:"temp.tenantId"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantName"),prop:"tenantName"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.tenantName")},model:{value:t.temp.tenantName,callback:function(e){t.$set(t.temp,"tenantName",e)},expression:"temp.tenantName"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.owner"),prop:"owner"}},[n("el-input",{attrs:{placeholder:t.$t("tenantManage.owner")},model:{value:t.temp.owner,callback:function(e){t.$set(t.temp,"owner",e)},expression:"temp.owner"}})],1),t._v(" "),n("el-form-item",{attrs:{label:t.$t("tenantManage.tenantIntro"),prop:"tenantDesc"}},[n("el-input",{attrs:{autosize:{minRows:3,maxRows:6},type:"textarea",placeholder:t.$t("tenantManage.tenantIntro")},model:{value:t.temp.tenantDesc,callback:function(e){t.$set(t.temp,"tenantDesc",e)},expression:"temp.tenantDesc"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v(" "+t._s(t.$t("common.cancel"))+" ")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){"create"===t.dialogStatus?t.createData():t.updateData()}}},[t._v("\n "+t._s(t.$t("common.confirm"))+"\n ")])],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(e){t.dialogPluginVisible=e}}},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.pluginData,border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{prop:"key",label:"Channel"}}),t._v(" "),n("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),t._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogPvVisible=!1}}},[t._v(t._s(t.$t("common.confirm")))])],1)],1)],1)},i=[],o=(n("fb6a"),n("dd71")),l=n("6724"),r=n("333d"),s={name:"JobProject",components:{Pagination:r["a"]},directives:{waves:l["a"]},filters:{statusFilter:function(t){var e={published:"success",draft:"gray",deleted:"danger"};return e[t]},ellipsis:function(t){return t?t.length>26?t.slice(0,26)+"...":t:""}},data:function(){return{list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tenantId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,tenantId:"",tenantName:"",owner:"",tenantDesc:""},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],owner:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenantDesc:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")},methods:{fetchData:function(){var t=this;this.listLoading=!0,o["c"](this.listQuery).then((function(e){var n=e.records,a=e.total;t.total=a,t.list=n,t.listLoading=!1}))},resetTemp:function(){this.temp={id:void 0,tenantName:"",tenantDesc:""}},handleCreate:function(){var t=this;this.resetTemp(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick((function(){t.$refs["dataForm"].clearValidate()}))},createData:function(){var t=this;this.$refs["dataForm"].validate((function(e){e&&o["a"](t.temp).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:t.$t("message.success"),message:t.$t("message.createdSuccess"),type:"success",duration:2e3})}))}))},handleUpdate:function(t){var e=this;this.temp=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick((function(){e.$refs["dataForm"].clearValidate()}))},updateData:function(){var t=this;this.$refs["dataForm"].validate((function(e){if(e){var n=Object.assign({},t.temp);o["d"](n).then((function(){t.fetchData(),t.dialogFormVisible=!1,t.$notify({title:"Success",message:"Update Successfully",type:"success",duration:2e3})}))}}))},openDelConfirm:function(t){return this.$confirm(this.$t("message.deleteMessage",{name:t}),this.$t("common.hint"),{confirmButtonText:this.$t("common.ok"),cancelButtonText:this.$t("common.cancel"),type:"warning"})},handleDelete:function(t){var e=this;this.openDelConfirm(t.tenantId).then((function(){o["b"](t.tenantId).then((function(t){e.fetchData(),e.$notify({title:"Success",message:"Delete Successfully",type:"success",duration:2e3})}))}))}}},c=s,u=n("2877"),d=Object(u["a"])(c,a,i,!1,null,null,null);e["default"]=d.exports},6724:function(t,e,n){"use strict";n("8d41");var a="@@wavesContext";function i(t,e){function n(n){var a=Object.assign({},e.value),i=Object.assign({ele:t,type:"hit",color:"rgba(0, 0, 0, 0.15)"},a),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var l=o.getBoundingClientRect(),r=o.querySelector(".waves-ripple");switch(r?r.className="waves-ripple":(r=document.createElement("span"),r.className="waves-ripple",r.style.height=r.style.width=Math.max(l.width,l.height)+"px",o.appendChild(r)),i.type){case"center":r.style.top=l.height/2-r.offsetHeight/2+"px",r.style.left=l.width/2-r.offsetWidth/2+"px";break;default:r.style.top=(n.pageY-l.top-r.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",r.style.left=(n.pageX-l.left-r.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return r.style.backgroundColor=i.color,r.className="waves-ripple z-active",!1}}return t[a]?t[a].removeHandle=n:t[a]={removeHandle:n},n}var o={bind:function(t,e){t.addEventListener("click",i(t,e),!1)},update:function(t,e){t.removeEventListener("click",t[a].removeHandle,!1),t.addEventListener("click",i(t,e),!1)},unbind:function(t){t.removeEventListener("click",t[a].removeHandle,!1),t[a]=null,delete t[a]}},l=function(t){t.directive("waves",o)};window.Vue&&(window.waves=o,Vue.use(l)),o.install=l;e["a"]=o},"8d41":function(t,e,n){},b36cf:function(t,e,n){},dd71:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return o})),n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return r}));var a=n("b775");function i(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/query/page",method:"post",data:t})}function o(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/update",method:"post",data:t})}function l(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/save",method:"post",data:t})}function r(t){return Object(a["a"])({url:"/hippo4j/v1/cs/tenant/delete/"+t,method:"delete"})}},fe41:function(t,e,n){"use strict";n("b36cf")}}]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-38e7e764.ef75f3d9.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-38e7e764.ef75f3d9.js new file mode 100644 index 00000000..aef5c49c --- /dev/null +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-38e7e764.ef75f3d9.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-38e7e764"],{"2f59":function(t,e,a){},"3b1f":function(t,e,a){},"3f2c":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.show?a("div",{staticClass:"dashboard-editor-container"},[a("github-corner",{staticClass:"github-corner"}),t._v(" "),a("panel-group",{attrs:{"count-suc-total":t.countSucTotal,"count-fail-total":t.countFailTotal,"count-running-total":t.countRunningTotal,"count-running-instance-total":t.countRunningInstanceTotal},on:{handleSetLineChartData:t.handleSetLineChartData}}),t._v(" "),a("el-row",{staticStyle:{background:"#fff",padding:"16px 16px 0","margin-bottom":"32px"}},[a("line-chart",{attrs:{"chart-data":t.lineChartData}})],1),t._v(" "),a("el-row",{attrs:{gutter:32}},[a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("el-form",{attrs:{"label-position":"left"}},[a("el-form-item",{attrs:{label:t.$t("report.user"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.userName))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("report.role"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.role))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("report.tenants"),"label-width":"120px"}},[a("span")]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("common.createTime"),"label-width":"120px"}},[a("span",[t._v(" "+t._s(t.temp.gmtCreate))])]),t._v(" "),a("el-form-item",{attrs:{label:t.$t("common.updateTime"),"label-width":"120px"}},[a("span",[t._v(t._s(t.temp.gmtModified))])])],1)],1)]),t._v(" "),a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("raddar-chart")],1)]),t._v(" "),a("el-col",{attrs:{xs:24,sm:24,lg:8}},[a("div",{staticClass:"chart-wrapper"},[a("pie-chart")],1)])],1),t._v(" "),a("el-row",{attrs:{gutter:8}},[a("el-col",{staticStyle:{"padding-right":"8px","margin-bottom":"30px"},attrs:{xs:{span:24},sm:{span:24},md:{span:24},lg:{span:12},xl:{span:12}}},[a("transaction-table")],1)],1)],1):t._e()},i=[],r=a("c7eb"),s=a("1da1"),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("a",{staticClass:"github-corner",attrs:{href:"https://github.com/opengoofy/hippo4j",target:"_blank","aria-label":"View source on Github"}},[a("svg",{staticStyle:{fill:"#40c9c6",color:"#fff"},attrs:{width:"80",height:"80",viewBox:"0 0 250 250","aria-hidden":"true"}},[a("path",{attrs:{d:"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"}}),t._v(" "),a("path",{staticClass:"octo-arm",staticStyle:{"transform-origin":"130px 106px"},attrs:{d:"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2",fill:"currentColor"}}),t._v(" "),a("path",{staticClass:"octo-body",attrs:{d:"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z",fill:"currentColor"}})])])},l=[],c=(a("71ae"),a("2877")),u={},d=Object(c["a"])(u,o,l,!1,null,"fedac698",null),h=d.exports,p=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-row",{staticClass:"panel-group",attrs:{gutter:40}},[a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel",on:{click:function(e){return t.handleSetLineChartData("chartInfo")}}},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"tenant_logo2","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("tenantManage.tenant"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.successCount,duration:2600}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"item_logo4","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("projectManage.item"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.failCount,duration:3e3}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"threadPool_logo1","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("threadPool.threadPool"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.runningCount,duration:3200}})],1)])]),t._v(" "),a("el-col",{staticClass:"card-panel-col",attrs:{xs:12,sm:12,lg:6}},[a("div",{staticClass:"card-panel"},[a("div",{staticClass:"card-panel-icon-wrapper "},[a("svg-icon",{attrs:{"icon-class":"threadPool_logo2","class-name":"card-panel-icon"}})],1),t._v(" "),a("div",{staticClass:"card-panel-description"},[a("div",{staticClass:"card-panel-text"},[t._v("\n "+t._s(t.$t("report.poolInstance"))+"\n ")]),t._v(" "),a("count-to",{staticClass:"card-panel-num",attrs:{"start-val":0,"end-val":t.runningCountInstance,duration:3200}})],1)])])],1)},f=[],m=(a("a9e3"),a("ec1b")),v=a.n(m),b={components:{CountTo:v.a},props:{countSucTotal:{type:Number,default:0},countFailTotal:{type:Number,default:0},countRunningTotal:{type:Number,default:0},countRunningInstanceTotal:{type:Number,default:0}},data:function(){return{successCount:this.countSucTotal,failCount:this.countFailTotal,runningCount:this.countRunningTotal,runningCountInstance:this.countRunningInstanceTotal}},methods:{handleSetLineChartData:function(t){this.$emit("handleSetLineChartData",t)}}},g=b,_=(a("6f93"),Object(c["a"])(g,p,f,!1,null,"b4165a68",null)),C=_.exports,w=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},y=[],x=a("ed08"),$={data:function(){return{$_sidebarElm:null}},mounted:function(){this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},beforeDestroy:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},activated:function(){this.$_initResizeEvent(),this.$_initSidebarResizeEvent()},deactivated:function(){this.$_destroyResizeEvent(),this.$_destroySidebarResizeEvent()},methods:{$_resizeHandler:function(){var t=this;return Object(x["a"])((function(){t.chart&&t.chart.resize()}),100)()},$_initResizeEvent:function(){window.addEventListener("resize",this.$_resizeHandler)},$_destroyResizeEvent:function(){window.removeEventListener("resize",this.$_resizeHandler)},$_sidebarResizeHandler:function(t){"width"===t.propertyName&&this.$_resizeHandler()},$_initSidebarResizeEvent:function(){this.$_sidebarElm=document.getElementsByClassName("sidebar-container")[0],this.$_sidebarElm&&this.$_sidebarElm.addEventListener("transitionend",this.$_sidebarResizeHandler)},$_destroySidebarResizeEvent:function(){this.$_sidebarElm&&this.$_sidebarElm.removeEventListener("transitionend",this.$_sidebarResizeHandler)}}},S={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"350px"},autoResize:{type:Boolean,default:!0},chartData:{type:Object,required:!0}},data:function(){return{chart:null}},watch:{chartData:{deep:!0,handler:function(t){this.setOptions(t)}}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){var t=a("313e");this.chart=t.init(this.$el,"macarons"),this.setOptions(this.chartData)},setOptions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.oneList,a=t.twoList,n=t.threeList,i=t.fourList;this.chart.setOption({legend:{},tooltip:{},dataset:{source:[["product","queueSize","rejectCount","completedTaskCount"],e,a,n,i]},xAxis:{type:"category"},yAxis:{},series:[{type:"bar"},{type:"bar"},{type:"bar"}]})}}},F=S,V=Object(c["a"])(F,w,y,!1,null,null,null),T=V.exports,j=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},D=[],O=a("ade3"),L=a("b775");function E(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard",method:"get"})}function R(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/line/chart",method:"get"})}function A(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/pie/chart",method:"get"})}function N(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/tenant/chart",method:"get"})}function I(){return Object(L["a"])({url:"/hippo4j/v1/cs/dashboard/ranking",method:"get"})}var k={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"}},data:function(){return{chart:null}},mounted:function(){var t=this;this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{initChart:function(){var t=this,e=a("313e");this.chart=e.init(this.$el,"macarons"),N({}).then((function(e){var a;t.chart.setOption({legend:{left:"center",bottom:"10"},toolbox:{show:!0,feature:{mark:{show:!0}}},series:[(a={name:"Nightingale Chart",type:"pie",roseType:"radius",radius:[15,95],center:["50%","38%"]},Object(O["a"])(a,"roseType","area"),Object(O["a"])(a,"itemStyle",{borderRadius:8}),Object(O["a"])(a,"data",e.tenantCharts),a)]})}))}}},z=k,q=Object(c["a"])(z,j,D,!1,null,null,null),M=q.exports,P=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:t.className,style:{height:t.height,width:t.width}})},H=[],B={itemIds:["Industries","Technology","Forex","Gold","Forecasts"],pieDataList:[{value:320,name:"Industries"},{value:240,name:"Technology"},{value:149,name:"Forex"},{value:100,name:"Gold"},{value:59,name:"Forecasts"}]},G={mixins:[$],props:{className:{type:String,default:"chart"},width:{type:String,default:"100%"},height:{type:String,default:"300px"}},data:function(){return{chart:null}},mounted:function(){var t=this;this.pieChartInfo(),this.$nextTick((function(){t.initChart()}))},beforeDestroy:function(){this.chart&&(this.chart.dispose(),this.chart=null)},methods:{pieChartInfo:function(){},initChart:function(){var t=this,e=a("313e");this.chart=e.init(this.$el,"macarons"),A({}).then((function(e){B.itemIds=e.itemIds,B.pieDataList=e.pieDataList,t.chart.setOption({tooltip:{trigger:"item",formatter:"{a}
{b} : {c} ({d}%)"},legend:{left:"center",bottom:"10",data:B.itemIds},toolbox:{show:!0,feature:{mark:{show:!0}}},series:[{name:"NUMBER OF THREAD POOLS",type:"pie",roseType:"radius",radius:[15,95],center:["50%","38%"],data:B.pieDataList,animationEasing:"cubicInOut",animationDuration:2600}]})}))}}},J=G,Z=Object(c["a"])(J,P,H,!1,null,null,null),K=Z.exports,U=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-table",{staticStyle:{width:"100%","padding-top":"15px"},attrs:{data:t.list}},[a("el-table-column",{attrs:{label:t.$t("report.threadPoolId"),"min-width":"200"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.groupKey)+"\n ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:t.$t("report.taskCount"),width:"195",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(t._f("toThousandFilter")(e.row.maxCompletedTaskCount))+"\n ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:t.$t("report.inst"),width:"100",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){var n=e.row;return[a("el-tag",{attrs:{type:t._f("statusFilter")(n.inst)}},[t._v("\n "+t._s(n.inst)+"\n ")])]}}])})],1)},Q=[],W={filters:{statusFilter:function(t){var e={success:"success",pending:"danger"};return e[t]},orderNoFilter:function(t){return t.substring(0,30)}},data:function(){return{list:null}},created:function(){this.fetchData()},methods:{fetchData:function(){var t=this;this.list=[{order_no:"123456",price:"4454",status:"1"}],I({}).then((function(e){t.list=e.rankingChartInfoList}))}}},X=W,Y=Object(c["a"])(X,U,Q,!1,null,null,null),tt=Y.exports,et=a("cc68"),at={chartInfo:{oneList:[1,3,4,5,3,2],twoList:[1,2,3,4,1,3],threeList:[1,2,3,4,1,3],fourList:[1,2,3,4,1,3],dayList:["ten","twenty","thirty","forty","fifty","sixty"]}},nt={name:"DashboardAdmin",components:{GithubCorner:h,PanelGroup:C,LineChart:T,RaddarChart:M,PieChart:K,TransactionTable:tt},data:function(){return{lineChartData:at.chartInfo,countSucTotal:0,countRunningTotal:0,countFailTotal:0,countRunningInstanceTotal:0,show:!1,temp:{}}},created:function(){var t=this;return Object(s["a"])(Object(r["a"])().mark((function e(){return Object(r["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:t.chartInfo(),t.lintChart(),t.userInfo();case 3:case"end":return e.stop()}}),e)})))()},methods:{handleSetLineChartData:function(t){this.lineChartData=at[t]},chartInfo:function(){var t=this;E().then((function(e){var a=e||{},n=a.tenantCount,i=a.threadPoolCount,r=a.threadPoolInstanceCount,s=a.itemCount;t.show=!0,t.countSucTotal=n,t.countRunningTotal=i,t.countFailTotal=s,t.countRunningInstanceTotal=r})).catch((function(){}))},lintChart:function(){var t=this;R({}).then((function(e){var a=e||{},n=a.oneList,i=a.twoList,r=a.threeList,s=a.fourList;t.lineChartData.oneList=n,t.lineChartData.twoList=i,t.lineChartData.threeList=r,t.lineChartData.fourList=s})).catch((function(){}))},userInfo:function(){var t=this,e=this.$cookie.get("userName");et["c"](e).then((function(e){t.temp=e})).catch((function(){}))}}},it=nt,rt=(a("a40c"),Object(c["a"])(it,n,i,!1,null,"1cb2dce5",null));e["default"]=rt.exports},"6f93":function(t,e,a){"use strict";a("778f")},"71ae":function(t,e,a){"use strict";a("2f59")},"778f":function(t,e,a){},a40c:function(t,e,a){"use strict";a("3b1f")},cc68:function(t,e,a){"use strict";a.d(e,"d",(function(){return i})),a.d(e,"e",(function(){return r})),a.d(e,"a",(function(){return s})),a.d(e,"b",(function(){return o})),a.d(e,"c",(function(){return l}));var n=a("b775");function i(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/page",method:"post",data:t})}function r(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/update",method:"put",data:t})}function s(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/add",method:"post",data:t})}function o(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/remove/"+t,method:"delete"})}function l(t){return Object(n["a"])({url:"/hippo4j/v1/cs/auth/users/info/"+t,method:"get"})}},ec1b:function(t,e,a){!function(e,a){t.exports=a()}(0,(function(){return function(t){function e(n){if(a[n])return a[n].exports;var i=a[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var a={};return e.m=t,e.c=a,e.i=function(t){return t},e.d=function(t,a,n){e.o(t,a)||Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var a=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(a,"a",a),a},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=2)}([function(t,e,a){var n=a(4)(a(1),a(5),null,null);t.exports=n.exports},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a(3);e.default={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator:function(t){return t>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default:function(t,e,a,n){return a*(1-Math.pow(2,-10*t/n))*1024/1023+e}}},data:function(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown:function(){return this.startVal>this.endVal}},watch:{startVal:function(){this.autoplay&&this.start()},endVal:function(){this.autoplay&&this.start()}},mounted:function(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start:function(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=(0,n.requestAnimationFrame)(this.count)},pauseResume:function(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause:function(){(0,n.cancelAnimationFrame)(this.rAF)},resume:function(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,(0,n.requestAnimationFrame)(this.count)},reset:function(){this.startTime=null,(0,n.cancelAnimationFrame)(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count:function(t){this.startTime||(this.startTime=t),this.timestamp=t;var e=t-this.startTime;this.remaining=this.localDuration-e,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(e,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(e,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(e/this.localDuration):this.printVal=this.localStartVal+(this.localStartVal-this.startVal)*(e/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),e1?this.decimal+e[1]:"",i=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;i.test(a);)a=a.replace(i,"$1"+this.separator+"$2");return this.prefix+a+n+this.suffix}},destroyed:function(){(0,n.cancelAnimationFrame)(this.rAF)}}},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=a(0),i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=i.default,"undefined"!=typeof window&&window.Vue&&window.Vue.component("count-to",i.default)},function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=0,i="webkit moz ms o".split(" "),r=void 0,s=void 0;if("undefined"==typeof window)e.requestAnimationFrame=r=function(){},e.cancelAnimationFrame=s=function(){};else{e.requestAnimationFrame=r=window.requestAnimationFrame,e.cancelAnimationFrame=s=window.cancelAnimationFrame;for(var o=void 0,l=0;l0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.basicInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.threadPoolID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.tpId)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeID"))+" ")]),e._v(" "),i("el-tag",{attrs:{type:e._f("statusFilter")(e.runTimeTemp.active)}},[e._v("\n "+e._s(e.runTimeTemp.active)+"\n ")])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.runningState"))+" ")]),e._v(" "),i("el-tag",[e._v(e._s(e.runTimeTemp.state))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceHost"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.host)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.identify)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalRejection"))+" ")]),e._v(" "),i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(e.runTimeTemp.rejectCount))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"80px",en:"150px"})}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType"),disabled:!0},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:9!==e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[[i("div",[i("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[i("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),i("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?i("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[i("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e(),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.allUpdate,callback:function(t){e.allUpdate=t},expression:"allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"Stack Info",visible:e.isStackShow,width:"60%"},on:{"update:visible":function(t){e.isStackShow=t}}},[i("ul",{staticClass:"stack-info"},e._l(e.stackInfo,(function(t){return i("li",{key:t.threadId},[i("p",[e._v('\n "'+e._s(t.threadName)+'" #'+e._s(t.threadId)+" java.lang.Thread.State:\n "+e._s(t.threadStatus)+"\n ")]),e._v(" "),i("ul",e._l(t.threadStack,(function(t,n){return i("li",{key:n},[e._v("at "+e._s(t))])})),0)])})),0),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.isStackShow=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v(e._s(e.$t("common.close")))]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.handleStackInfo}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)])],1)},a=[],o=(i("14d9"),i("caad"),i("dd71")),l=i("3737"),s=i("4d85"),r=i("397f"),c=i("6724"),u=i("333d"),d={components:{Pagination:u["a"]},directives:{waves:c["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,itemId:"",tpId:""},isStackShow:!1,stackInfo:[],rowInfo:{},size:500,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isRejectShow:!1,instanceDialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],rules:{tenantId:[{required:!0,message:"this is required",trigger:"blur"}],itemId:[{required:!0,message:"this is required",trigger:"blur"}],tpId:[{required:!0,message:"this is required",trigger:"blur"}],coreSize:[{required:!0,message:"this is required",trigger:"blur"}],maxSize:[{required:!0,message:"this is required",trigger:"blur"}],queueType:[{required:!0,message:"this is required",trigger:"blur"}],executeTimeOut:[{required:!0,message:"this is required",trigger:"blur"}],keepAliveTime:[{required:!0,message:"this is required",trigger:"blur"}],isAlarm:[{required:!0,message:"this is required",trigger:"blur"}],capacity:[{required:!0,message:"this is required",trigger:"blur"}],capacityAlarm:[{required:!0,message:"this is required",trigger:"blur"}],livenessAlarm:[{required:!0,message:"this is required",trigger:"blur"}],rejectedType:[{required:!0,message:"this is required",trigger:"blur"}]},dialogStatus:"",textMap:{update:this.$t("common.edit"),create:this.$t("common.create"),info:this.$t("common.info")},allUpdate:!1,temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null},runTimeTemp:{},tempRow:{},visible:!0}},created:function(){this.initSelect()},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;if(this.listQuery.tenantId)if(this.listQuery.itemId)if(this.listQuery.tpId){this.listLoading=!0;var t=[this.listQuery.itemId,this.listQuery.tpId];r["a"](t).then((function(t){e.list=t,e.listLoading=!1}))}else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("threadPool.threadPool")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("projectManage.item")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("tenantManage.tenant")}))},refreshData:function(){this.listQuery.tenantId=null,this.listQuery.itemId=null,this.listQuery.tpId=null,this.itemOptions=[],this.threadPoolOptions=[]},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var i=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"100px",en:"150px"})}},[e.isEdit?[a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenantId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("tenantManage.tenant")}),disabled:"create"!==e.dialogStatus},on:{change:function(t){return e.tenantTempSelectList()}},model:{value:e.temp.tenantId,callback:function(t){e.$set(e.temp,"tenantId",t)},expression:"temp.tenantId"}},e._l(e.tenantOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("projectManage.item"),prop:"itemId"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("message.selectMessage",{target:e.$t("projectManage.item")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.itemId,callback:function(t){e.$set(e.temp,"itemId",t)},expression:"temp.itemId"}},e._l(e.itemTempOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.threadPool"),prop:"tpId"}},[a("el-input",{attrs:{size:"medium",placeholder:e.$t("message.selectMessage",{target:e.$t("threadPool.threadPool")}),disabled:"create"!==e.dialogStatus},model:{value:e.temp.tpId,callback:function(t){e.$set(e.temp,"tpId",t)},expression:"temp.tpId"}})],1)]:e._e(),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType")},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:4===e.temp.queueType||5===e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[a("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isTimeout"),prop:"allowCoreThreadTimeOut"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[a("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),a("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.isAlarm"),prop:"isAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.isAlarm,callback:function(t){e.$set(e.temp,"isAlarm",t)},expression:"temp.isAlarm"}},[a("el-radio-button",{attrs:{label:"1"}},[e._v(e._s(e.$t("threadPool.alarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.activeAlarm"),prop:"livenessAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.livenessAlarm,callback:function(t){e.$set(e.temp,"livenessAlarm",t)},expression:"temp.livenessAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.capacityAlarm"),prop:"capacityAlarm"}},[[a("div",[a("el-radio-group",{model:{value:e.temp.capacityAlarm,callback:function(t){e.$set(e.temp,"capacityAlarm",t)},expression:"temp.capacityAlarm"}},[a("el-radio-button",{attrs:{label:"0"}},[e._v(e._s(e.$t("threadPool.noAlarm")))]),e._v(" "),a("el-radio-button",{attrs:{label:"60"}},[e._v("60%")]),e._v(" "),a("el-radio-button",{attrs:{label:"80"}},[e._v("80%")]),e._v(" "),a("el-radio-button",{attrs:{label:"90"}},[e._v("90%")])],1)],1)]],2),e._v(" "),a("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[a("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return a("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?a("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[a("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e()],2),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),a("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[a("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),a("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(e._s(e.$t("common.confirm")))])],1)],1)],1)},n=[],r=(a("14d9"),a("3737")),o=a("dd71"),l=a("4d85"),s=a("6724"),u=a("333d"),c={name:"JobProject",components:{Pagination:u["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={published:"success",draft:"gray",deleted:"danger"};return t[e]},defaultExecuteTimeoutValue:function(e){return void 0==e||null==e?0:e},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedTypeFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{isRejectShow:!1,isEdit:!1,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,tpId:"",itemId:"",desc:!0},pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],isEditDisabled:!1,dialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],itemTempOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],size:500,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],allowCoreThreadTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null,coreSize:4,maxSize:8},visible:!0}},created:function(){this.fetchData(),this.initSelect()},mounted:function(){this.isEditDisabled="ROLE_ADMIN"!==localStorage.getItem("USER_ROLE")&&"ROLE_MANAGE"!==localStorage.getItem("USER_ROLE")},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;this.listLoading=!0,l["e"](this.listQuery).then((function(t){var a=t.records,i=t.total;e.total=i,e.list=a,e.listLoading=!1}))},changeAlarm:function(e){var t=this;l["a"](e).then((function(){t.fetchData(),t.$notify({title:t.$t("message.success"),message:t.$t("message.updateSuccess"),type:"success",duration:2e3})}))},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var a=t.records,i=0;i0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),a("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[a("el-form-item",{attrs:{label:e.$t("userAuthority.userName"),prop:"userName"}},[a("el-input",{attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.userName")},model:{value:e.temp.userName,callback:function(t){e.$set(e.temp,"userName",t)},expression:"temp.userName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("userAuthority.password"),prop:"password"}},[a("el-input",{attrs:{placeholder:e.$t("userAuthority.password"),minlength:"6"},model:{value:e.temp.password,callback:function(t){e.$set(e.temp,"password",t)},expression:"temp.password"}})],1),e._v(" "),a("el-form-item",{attrs:{label:e.$t("userAuthority.role"),prop:"role"}},[a("el-select",{staticClass:"filter-item",attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.role")},model:{value:e.temp.role,callback:function(t){e.$set(e.temp,"role",t)},expression:"temp.role"}},e._l(e.roles,(function(e){return a("el-option",{key:e.key,attrs:{label:e,value:e}})})),1)],1),e._v(" "),"admin"!==e.temp.userName?a("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenants"}},[a("el-checkbox-group",{model:{value:e.temp.tempResources,callback:function(t){e.$set(e.temp,"tempResources",t)},expression:"temp.tempResources"}},e._l(e.tenantList,(function(t){return a("el-checkbox",{key:t,attrs:{label:t}},[e._v(e._s(t))])})),1)],1):e._e()],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1)],1)},i=[],r=(a("14d9"),a("cc68")),s=a("6724"),o=a("333d"),l=a("dd71"),u={name:"User",components:{Pagination:o["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={ROLE_ADMIN:"danger",ROLE_MANAGE:"warning",ROLE_USER:""};return t[e]}},data:function(){return{isTenantsShow:!0,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,userName:void 0},roles:["ROLE_USER","ROLE_MANAGE","ROLE_ADMIN"],tenantList:[],checkedCities:["smo"],checkAll:!1,isIndeterminate:!0,cities:[],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},rules:{role:[{required:!0,message:this.$t("message.requiredError"),trigger:"change"}],userName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenants:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}],password:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}]},temp:{id:void 0,role:"",userName:"",password:"",permission:"",resources:[]},resetTemp:function(){this.temp={id:void 0,role:"",userName:"",password:"",permission:"",resources:[]}}}},created:function(){this.fetchData(),this.initData()},methods:{fetchData:function(){var e=this;this.listLoading=!0,r["d"](this.listQuery).then((function(t){e.total=t.total,e.list=t.records,e.listLoading=!1}))},initData:function(){var e=this;l["c"]({size:this.size}).then((function(t){for(var a=t.records,n=0;n0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),n("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-position":"right","label-width":"100px"}},[n("el-form-item",{attrs:{label:e.$t("userAuthority.userName"),prop:"userName"}},[n("el-input",{attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.userName")},model:{value:e.temp.userName,callback:function(t){e.$set(e.temp,"userName",t)},expression:"temp.userName"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("userAuthority.password"),prop:"password"}},[n("el-input",{attrs:{placeholder:e.$t("userAuthority.password"),minlength:"6"},model:{value:e.temp.password,callback:function(t){e.$set(e.temp,"password",t)},expression:"temp.password"}})],1),e._v(" "),n("el-form-item",{attrs:{label:e.$t("userAuthority.role"),prop:"role"}},[n("el-select",{staticClass:"filter-item",attrs:{disabled:"admin"===e.temp.userName,placeholder:e.$t("userAuthority.role")},model:{value:e.temp.role,callback:function(t){e.$set(e.temp,"role",t)},expression:"temp.role"}},e._l(e.roles,(function(e){return n("el-option",{key:e.key,attrs:{label:e,value:e}})})),1)],1),e._v(" "),"admin"!==e.temp.userName?n("el-form-item",{attrs:{label:e.$t("tenantManage.tenant"),prop:"tenants"}},[n("el-checkbox-group",{model:{value:e.temp.tempResources,callback:function(t){e.$set(e.temp,"tempResources",t)},expression:"temp.tempResources"}},e._l(e.tenantList,(function(t){return n("el-checkbox",{key:t,attrs:{label:t}},[e._v(e._s(t))])})),1)],1):e._e()],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1)],1)},i=[],r=(n("14d9"),n("cc68")),s=n("6724"),o=n("333d"),l=n("dd71"),u={name:"User",components:{Pagination:o["a"]},directives:{waves:s["a"]},filters:{statusFilter:function(e){var t={ROLE_ADMIN:"danger",ROLE_MANAGE:"warning",ROLE_USER:""};return t[e]}},data:function(){return{isTenantsShow:!0,list:null,listLoading:!0,total:0,listQuery:{current:1,size:10,userName:void 0},roles:["ROLE_USER","ROLE_MANAGE","ROLE_ADMIN"],tenantList:[],checkedCities:["smo"],checkAll:!1,isIndeterminate:!0,cities:[],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,dialogStatus:"",textMap:{update:"Edit",create:"Create"},temp:{id:void 0,role:"",userName:"",password:"",permission:"",resources:[]},resetTemp:function(){this.temp={id:void 0,role:"",userName:"",password:"",permission:"",resources:[]}}}},computed:{rules:function(){return{role:[{required:!0,message:this.$t("message.requiredError"),trigger:"change"}],userName:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tenants:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}],password:[{required:!1,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.fetchData(),this.initData()},methods:{fetchData:function(){var e=this;this.listLoading=!0,r["d"](this.listQuery).then((function(t){e.total=t.total,e.list=t.records,e.listLoading=!1}))},initData:function(){var e=this;l["c"]({size:this.size}).then((function(t){for(var n=t.records,a=0;a0,expression:"total > 0"}],attrs:{total:e.total,page:e.listQuery.current,limit:e.listQuery.size},on:{"update:page":function(t){return e.$set(e.listQuery,"current",t)},"update:limit":function(t){return e.$set(e.listQuery,"size",t)},pagination:e.fetchData}}),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.instanceDialogFormVisible,width:"1000px"},on:{"update:visible":function(t){e.instanceDialogFormVisible=t}}},[[i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.basicInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.threadPoolID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.tpId)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeID"))+" ")]),e._v(" "),i("el-tag",{attrs:{type:e._f("statusFilter")(e.runTimeTemp.active)}},[e._v("\n "+e._s(e.runTimeTemp.active)+"\n ")])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.runningState"))+" ")]),e._v(" "),i("el-tag",[e._v(e._s(e.runTimeTemp.state))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceHost"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.host)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.instanceID"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.identify)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.LoadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.CurrentLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.currentLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.PeakLoad"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.peakLoad)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.RemainingMemory"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.freeMemory)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.MemoryRatio"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.memoryProportion)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.threadInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.coreSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.coreSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.currentSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.poolSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.maximumSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.maximumSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.activeSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.activeSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.largestSize"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.largestPoolSize)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.queueInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.queueCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueCount"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueSize)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueRemainingCapacity"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueRemainingCapacity)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.queueType"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.queueType)+"\n ")],2)],1),e._v(" "),i("br"),e._v(" "),i("br"),e._v(" "),i("el-descriptions",{staticClass:"margin-top",attrs:{title:e.$t("threadPoolInstance.otherInformation"),column:3,size:e.size,border:""}},[i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalTask"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.completedTaskCount)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.totalRejection"))+" ")]),e._v(" "),i("el-link",{attrs:{type:"danger",underline:!1}},[e._v(e._s(e.runTimeTemp.rejectCount))])],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPoolInstance.lastUpdateTime"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.clientLastRefreshTime)+"\n ")],2),e._v(" "),i("el-descriptions-item",[i("template",{slot:"label"},[e._v(" "+e._s(e.$t("threadPool.rejectedHandler"))+" ")]),e._v("\n "+e._s(e.runTimeTemp.rejectedName)+"\n ")],2)],1)],e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.instanceDialogFormVisible=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v("\n "+e._s(e.$t("common.close"))+"\n ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.handleInfo()}}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)],2),e._v(" "),i("el-dialog",{attrs:{title:e.textMap[e.dialogStatus],visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{ref:"dataForm",staticStyle:{width:"500px","margin-left":"50px"},attrs:{rules:e.rules,model:e.temp,"label-width":e.$langMatch({zh:"80px",en:"150px"})}},[i("el-form-item",{attrs:{label:e.$t("threadPool.coreSize"),prop:"coreSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.coreSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.coreSize,callback:function(t){e.$set(e.temp,"coreSize",t)},expression:"temp.coreSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.maximumSize"),prop:"maxSize"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.maximumSize"),"controls-position":"right",min:1,max:9999},model:{value:e.temp.maxSize,callback:function(t){e.$set(e.temp,"maxSize",t)},expression:"temp.maxSize"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueType"),prop:"queueType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.queueType"),disabled:!0},on:{change:e.selectQueueType},model:{value:e.temp.queueType,callback:function(t){e.$set(e.temp,"queueType",t)},expression:"temp.queueType"}},e._l(e.queueTypeOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.queueCapacity"),prop:"capacity"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.queueCapacity"),"controls-position":"right",min:0,max:2147483647,disabled:9!==e.temp.queueType},model:{value:e.temp.capacity,callback:function(t){e.$set(e.temp,"capacity",t)},expression:"temp.capacity"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.allowCoreThreadTimeOut"),prop:"isAlarm"}},[[i("div",[i("el-radio-group",{model:{value:e.temp.allowCoreThreadTimeOut,callback:function(t){e.$set(e.temp,"allowCoreThreadTimeOut",t)},expression:"temp.allowCoreThreadTimeOut"}},[i("el-radio-button",{attrs:{label:1}},[e._v(e._s(e.$t("threadPool.timeout")))]),e._v(" "),i("el-radio-button",{attrs:{label:0}},[e._v(e._s(e.$t("threadPool.noTimeout")))])],1)],1)]],2),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.executionTimeout"),prop:"executeTimeOut"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.executionTimeoutUnit"),"controls-position":"right",min:-1,max:999999},model:{value:e.temp.executeTimeOut,callback:function(t){e.$set(e.temp,"executeTimeOut",t)},expression:"temp.executeTimeOut"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.keepAliveTime"),prop:"keepAliveTime"}},[i("el-input-number",{attrs:{placeholder:e.$t("threadPool.keepAliveTimeUnit"),"controls-position":"right",min:1,max:999999},model:{value:e.temp.keepAliveTime,callback:function(t){e.$set(e.temp,"keepAliveTime",t)},expression:"temp.keepAliveTime"}})],1),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPool.rejectedHandler"),prop:"rejectedType"}},[i("el-select",{staticStyle:{display:"block"},attrs:{placeholder:e.$t("threadPool.rejectedHandler")},on:{change:e.selectRejectedType},model:{value:e.temp.rejectedType,callback:function(t){e.$set(e.temp,"rejectedType",t)},expression:"temp.rejectedType"}},e._l(e.rejectedOptions,(function(e){return i("el-option",{key:e.key,attrs:{label:e.display_name,value:e.key}})})),1)],1),e._v(" "),e.isRejectShow?i("el-form-item",{attrs:{label:e.$t("threadPool.customRejectedHandler"),prop:"customRejectedType"}},[i("el-input",{attrs:{placeholder:e.$t("threadPool.customRejectedHandlerTip")},on:{input:function(t){return e.onInput()}},model:{value:e.temp.customRejectedType,callback:function(t){e.$set(e.temp,"customRejectedType",t)},expression:"temp.customRejectedType"}})],1):e._e(),e._v(" "),i("el-form-item",{attrs:{label:e.$t("threadPoolInstance.changeAll"),prop:"allUpdate"}},[i("el-switch",{model:{value:e.allUpdate,callback:function(t){e.allUpdate=t},expression:"allUpdate"}})],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.dialogFormVisible=!1}}},[e._v(" "+e._s(e.$t("common.cancel"))+" ")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:function(t){"create"===e.dialogStatus?e.createData():e.updateData()}}},[e._v("\n "+e._s(e.$t("common.confirm"))+"\n ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{visible:e.dialogPluginVisible,title:"Reading statistics"},on:{"update:visible":function(t){e.dialogPluginVisible=t}}},[i("el-table",{staticStyle:{width:"100%"},attrs:{data:e.pluginData,border:"",fit:"","highlight-current-row":""}},[i("el-table-column",{attrs:{prop:"key",label:"Channel"}}),e._v(" "),i("el-table-column",{attrs:{prop:"pv",label:"Pv"}})],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogPvVisible=!1}}},[e._v(" "+e._s(e.$t("common.confirm"))+" ")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"Stack Info",visible:e.isStackShow,width:"60%"},on:{"update:visible":function(t){e.isStackShow=t}}},[i("ul",{staticClass:"stack-info"},e._l(e.stackInfo,(function(t){return i("li",{key:t.threadId},[i("p",[e._v('\n "'+e._s(t.threadName)+'" #'+e._s(t.threadId)+" java.lang.Thread.State:\n "+e._s(t.threadStatus)+"\n ")]),e._v(" "),i("ul",e._l(t.threadStack,(function(t,n){return i("li",{key:n},[e._v("at "+e._s(t))])})),0)])})),0),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.isStackShow=!1}}},[i("i",{staticClass:"el-icon-close"}),e._v(e._s(e.$t("common.close")))]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.handleStackInfo}},[i("i",{staticClass:"el-icon-refresh-right"}),e._v("\n "+e._s(e.$t("common.refresh"))+"\n ")])],1)])],1)},a=[],o=(i("14d9"),i("caad"),i("dd71")),r=i("3737"),s=i("4d85"),l=i("397f"),c=i("6724"),u=i("333d"),d={components:{Pagination:u["a"]},directives:{waves:c["a"]},filters:{statusFilter:function(e){var t={DEV:"info",TEST:"success",UAT:"warning",PROD:"danger"};return t[e]},queueFilter:function(e){return"1"==e?"ArrayBlockingQueue":"2"==e?"LinkedBlockingQueue":"3"==e?"LinkedBlockingDeque":"4"==e?"SynchronousQueue":"5"==e?"LinkedTransferQueue":"6"==e?"PriorityBlockingQueue":"9"==e?"ResizableLinkedBlockingQueue":void 0},rejectedFilter:function(e){return"1"==e?"CallerRunsPolicy":"2"==e?"AbortPolicy":"3"==e?"DiscardPolicy":"4"==e?"DiscardOldestPolicy":"5"==e?"RunsOldestTaskPolicy":"6"==e?"SyncPutQueuePolicy":"CustomRejectedPolicy_"+e}},data:function(){return{list:[],listLoading:!1,total:0,listQuery:{current:1,size:10,itemId:"",tpId:""},isStackShow:!1,stackInfo:[],rowInfo:{},size:500,pluginTypeOptions:["reader","writer"],dialogPluginVisible:!1,pluginData:[],dialogFormVisible:!1,isRejectShow:!1,instanceDialogFormVisible:!1,tenantOptions:[],threadPoolOptions:[],itemOptions:[],queueTypeOptions:[{key:1,display_name:"ArrayBlockingQueue"},{key:2,display_name:"LinkedBlockingQueue"},{key:3,display_name:"LinkedBlockingDeque"},{key:4,display_name:"SynchronousQueue"},{key:5,display_name:"LinkedTransferQueue"},{key:6,display_name:"PriorityBlockingQueue"},{key:9,display_name:"ResizableLinkedBlockingQueue (动态修改队列大小)"}],rejectedOptions:[{key:1,display_name:"CallerRunsPolicy"},{key:2,display_name:"AbortPolicy"},{key:3,display_name:"DiscardPolicy"},{key:4,display_name:"DiscardOldestPolicy"},{key:5,display_name:"RunsOldestTaskPolicy"},{key:6,display_name:"SyncPutQueuePolicy"},{key:99,display_name:"CustomRejectedPolicy(自定义 SPI 策略)"}],alarmTypes:[{key:1,display_name:"报警"},{key:0,display_name:"不报警"}],allowCoreThreadTimeOutTypes:[{key:1,display_name:"超时"},{key:0,display_name:"不超时"}],dialogStatus:"",textMap:{update:this.$t("common.edit"),create:this.$t("common.create"),info:this.$t("common.info")},allUpdate:!1,temp:{id:void 0,tenantId:"",itemId:"",rejectedType:null,customRejectedType:null},runTimeTemp:{},tempRow:{},visible:!0}},computed:{rules:function(){return{tenantId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],itemId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],tpId:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],coreSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],maxSize:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],queueType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],executeTimeOut:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],keepAliveTime:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],isAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacity:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],capacityAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],livenessAlarm:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}],rejectedType:[{required:!0,message:this.$t("message.requiredError"),trigger:"blur"}]}}},created:function(){this.initSelect()},methods:{onInput:function(){this.$forceUpdate()},fetchData:function(){var e=this;if(this.listQuery.tenantId)if(this.listQuery.itemId)if(this.listQuery.tpId){this.listLoading=!0;var t=[this.listQuery.itemId,this.listQuery.tpId];l["a"](t).then((function(t){e.list=t,e.listLoading=!1}))}else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("threadPool.threadPool")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("projectManage.item")}));else this.$message.warning(this.$t("message.emptyWarning",{name:this.$t("tenantManage.tenant")}))},refreshData:function(){this.listQuery.tenantId=null,this.listQuery.itemId=null,this.listQuery.tpId=null,this.itemOptions=[],this.threadPoolOptions=[]},initSelect:function(){var e=this;o["c"]({size:this.size}).then((function(t){for(var i=t.records,n=0;nl)r(s,n=e[l++])&&(~o(u,n)||u.push(n));return u}},"04f8":function(t,e,n){var r=n("2d00"),i=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},"051b":function(t,e,n){var r=n("1a14"),i=n("10db");t.exports=n("0bad")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},"057f":function(t,e,n){var r=n("c6b6"),i=n("fc6a"),o=n("241c").f,a=n("4dae"),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(t){try{return o(t)}catch(e){return a(s)}};t.exports.f=function(t){return s&&"Window"==r(t)?l(t):o(i(t))}},"05f5":function(t,e,n){var r=n("7a41"),i=n("ef08").document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},"06b1":function(t,e,n){var r,i; -/*! - * tiny-cookie - A tiny cookie manipulation plugin - * https://github.com/Alex1990/tiny-cookie - * Under the MIT license | (c) Alex Chao - */!function(o,a){r=a,i="function"===typeof r?r.call(e,n,e,t):r,void 0===i||(t.exports=i)}(0,(function(){"use strict";function t(e,n,r){if(void 0===n)return t.get(e);null===n?t.remove(e):t.set(e,n,r)}function e(t){return t.replace(/[.*+?^$|[\](){}\\-]/g,"\\$&")}function n(t){var e="";for(var n in t)if(t.hasOwnProperty(n)){if("expires"===n){var i=t[n];"object"!==typeof i&&(i+="number"===typeof i?"D":"",i=r(i)),t[n]=i.toUTCString()}if("secure"===n){t[n]&&(e+=";"+n);continue}e+=";"+n+"="+t[n]}return t.hasOwnProperty("path")||(e+=";path=/"),e}function r(t){var e=new Date,n=t.charAt(t.length-1),r=parseInt(t,10);switch(n){case"Y":e.setFullYear(e.getFullYear()+r);break;case"M":e.setMonth(e.getMonth()+r);break;case"D":e.setDate(e.getDate()+r);break;case"h":e.setHours(e.getHours()+r);break;case"m":e.setMinutes(e.getMinutes()+r);break;case"s":e.setSeconds(e.getSeconds()+r);break;default:e=new Date(t)}return e}return t.enabled=function(){var e,n="__test_key";return document.cookie=n+"=1",e=!!document.cookie,e&&t.remove(n),e},t.get=function(t,n){if("string"!==typeof t||!t)return null;t="(?:^|; )"+e(t)+"(?:=([^;]*?))?(?:;|$)";var r=new RegExp(t),i=r.exec(document.cookie);return null!==i?n?i[1]:decodeURIComponent(i[1]):null},t.getRaw=function(e){return t.get(e,!0)},t.set=function(t,e,r,i){!0!==r&&(i=r,r=!1),i=n(i||{});var o=t+"="+(r?e:encodeURIComponent(e))+i;document.cookie=o},t.setRaw=function(e,n,r){t.set(e,n,!0,r)},t.remove=function(e){t.set(e,"a",{expires:new Date})},t}))},"06cf":function(t,e,n){var r=n("83ab"),i=n("c65b"),o=n("d1e7"),a=n("5c6c"),s=n("fc6a"),l=n("a04b"),u=n("1a2d"),c=n("0cfb"),h=Object.getOwnPropertyDescriptor;e.f=r?h:function(t,e){if(t=s(t),e=l(e),c)try{return h(t,e)}catch(n){}if(u(t,e))return a(!i(o.f,t,e),t[e])}},"072d":function(t,e,n){"use strict";var r=n("0bad"),i=n("9876"),o=n("fed5"),a=n("1917"),s=n("0983"),l=n("9fbb"),u=Object.assign;t.exports=!u||n("4b8b")((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=u({},t)[n]||Object.keys(u({},e)).join("")!=r}))?function(t,e){var n=s(t),u=arguments.length,c=1,h=o.f,f=a.f;while(u>c){var p,d=l(arguments[c++]),g=h?i(d).concat(h(d)):i(d),v=g.length,y=0;while(v>y)p=g[y++],r&&!f.call(d,p)||(n[p]=d[p])}return n}:u},"07fa":function(t,e,n){var r=n("50c4");t.exports=function(t){return r(t.length)}},"083a":function(t,e,n){"use strict";var r=n("0d51"),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw i("Cannot delete property "+r(e)+" of "+r(t))}},"0983":function(t,e,n){var r=n("c901");t.exports=function(t){return Object(r(t))}},"0ae2":function(t,e,n){var r=n("9876"),i=n("fed5"),o=n("1917");t.exports=function(t){var e=r(t),n=i.f;if(n){var a,s=n(t),l=o.f,u=0;while(s.length>u)l.call(t,a=s[u++])&&e.push(a)}return e}},"0b42":function(t,e,n){var r=n("e8b5"),i=n("68ee"),o=n("861d"),a=n("b622"),s=a("species"),l=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,i(e)&&(e===l||r(e.prototype))?e=void 0:o(e)&&(e=e[s],null===e&&(e=void 0))),void 0===e?l:e}},"0b43":function(t,e,n){var r=n("04f8");t.exports=r&&!!Symbol["for"]&&!!Symbol.keyFor},"0b99":function(t,e,n){"use strict";var r=n("19fa")(!0);n("393a")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},"0bad":function(t,e,n){t.exports=!n("4b8b")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"0c47":function(t,e,n){var r=n("da84"),i=n("d44e");i(r.JSON,"JSON",!0)},"0cb2":function(t,e,n){var r=n("e330"),i=n("7b0b"),o=Math.floor,a=r("".charAt),s=r("".replace),l=r("".slice),u=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,h,f){var p=n+t.length,d=r.length,g=c;return void 0!==h&&(h=i(h),g=u),s(f,g,(function(i,s){var u;switch(a(s,0)){case"$":return"$";case"&":return t;case"`":return l(e,0,n);case"'":return l(e,p);case"<":u=h[l(s,1,-1)];break;default:var c=+s;if(0===c)return i;if(c>d){var f=o(c/10);return 0===f?i:f<=d?void 0===r[f-1]?a(s,1):r[f-1]+a(s,1):i}u=r[c-1]}return void 0===u?"":u}))}},"0cfb":function(t,e,n){var r=n("83ab"),i=n("d039"),o=n("cc12");t.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"0d26":function(t,e,n){var r=n("e330"),i=Error,o=r("".replace),a=function(t){return String(i(t).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);t.exports=function(t,e){if(l&&"string"==typeof t&&!i.prepareStackTrace)while(e--)t=o(t,s,"");return t}},"0d51":function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(e){return"Object"}}},"0e15":function(t,e,n){var r=n("597f");t.exports=function(t,e,n){return void 0===n?r(t,e,!1):r(t,n,!1!==e)}},"107c":function(t,e,n){var r=n("d039"),i=n("da84"),o=i.RegExp;t.exports=r((function(){var t=o("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},1098:function(t,e,n){"use strict";e.__esModule=!0;var r=n("17ed"),i=l(r),o=n("f893"),a=l(o),s="function"===typeof a.default&&"symbol"===typeof i.default?function(t){return typeof t}:function(t){return t&&"function"===typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};function l(t){return t&&t.__esModule?t:{default:t}}e.default="function"===typeof a.default&&"symbol"===s(i.default)?function(t){return"undefined"===typeof t?"undefined":s(t)}:function(t){return t&&"function"===typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"===typeof t?"undefined":s(t)}},"10db":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},1148:function(t,e,n){"use strict";var r=n("5926"),i=n("577e"),o=n("1d80"),a=RangeError;t.exports=function(t){var e=i(o(this)),n="",s=r(t);if(s<0||s==1/0)throw a("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(n+=e);return n}},"131a":function(t,e,n){var r=n("23e7"),i=n("d2bb");r({target:"Object",stat:!0},{setPrototypeOf:i})},"13d2":function(t,e,n){var r=n("e330"),i=n("d039"),o=n("1626"),a=n("1a2d"),s=n("83ab"),l=n("5e77").CONFIGURABLE,u=n("8925"),c=n("69f3"),h=c.enforce,f=c.get,p=String,d=Object.defineProperty,g=r("".slice),v=r("".replace),y=r([].join),m=s&&!i((function(){return 8!==d((function(){}),"length",{value:8}).length})),b=String(String).split("String"),x=t.exports=function(t,e,n){"Symbol("===g(p(e),0,7)&&(e="["+v(p(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||l&&t.name!==e)&&(s?d(t,"name",{value:e,configurable:!0}):t.name=e),m&&n&&a(n,"arity")&&t.length!==n.arity&&d(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&d(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(i){}var r=h(t);return a(r,"source")||(r.source=y(b,"string"==typeof e?e:"")),t};Function.prototype.toString=x((function(){return o(this)&&f(this).source||u(this)}),"toString")},"13d5":function(t,e,n){"use strict";var r=n("23e7"),i=n("d58f").left,o=n("a640"),a=n("2d00"),s=n("605d"),l=!s&&a>79&&a<83,u=l||!o("reduce");r({target:"Array",proto:!0,forced:u},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},"14c3":function(t,e,n){var r=n("c65b"),i=n("825a"),o=n("1626"),a=n("c6b6"),s=n("9263"),l=TypeError;t.exports=function(t,e){var n=t.exec;if(o(n)){var u=r(n,t,e);return null!==u&&i(u),u}if("RegExp"===a(t))return r(s,t,e);throw l("RegExp#exec called on incompatible receiver")}},"14d9":function(t,e,n){"use strict";var r=n("23e7"),i=n("7b0b"),o=n("07fa"),a=n("3a34"),s=n("3511"),l=n("d039"),u=l((function(){return 4294967297!==[].push.call({length:4294967296},1)})),c=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}},h=u||!c();r({target:"Array",proto:!0,arity:1,forced:h},{push:function(t){var e=i(this),n=o(e),r=arguments.length;s(n+r);for(var l=0;l1?arguments[1]:void 0)}},"17ed":function(t,e,n){t.exports={default:n("511f"),__esModule:!0}},1836:function(t,e,n){var r=n("6ca1"),i=n("6438").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return i(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?s(t):i(r(t))}},1917:function(t,e){e.f={}.propertyIsEnumerable},"19aa":function(t,e,n){var r=n("3a9b"),i=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw i("Incorrect invocation")}},"19fa":function(t,e,n){var r=n("fc5e"),i=n("c901");t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),l=r(n),u=s.length;return l<0||l>=u?t?"":void 0:(o=s.charCodeAt(l),o<55296||o>56319||l+1===u||(a=s.charCodeAt(l+1))<56320||a>57343?t?s.charAt(l):o:t?s.slice(l,l+2):a-56320+(o-55296<<10)+65536)}}},"1a14":function(t,e,n){var r=n("77e9"),i=n("faf5"),o=n("3397"),a=Object.defineProperty;e.f=n("0bad")?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"1a2d":function(t,e,n){var r=n("e330"),i=n("7b0b"),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},"1be4":function(t,e,n){var r=n("d066");t.exports=r("document","documentElement")},"1c59":function(t,e,n){"use strict";var r=n("6d61"),i=n("6566");r("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),i)},"1c7e":function(t,e,n){var r=n("b622"),i=r("iterator"),o=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){o=!0}};s[i]=function(){return this},Array.from(s,(function(){throw 2}))}catch(l){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var r={};r[i]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(l){}return n}},"1cdc":function(t,e,n){var r=n("342f");t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},"1d2b":function(t,e,n){"use strict";function r(t,e){return function(){return t.apply(e,arguments)}}n.d(e,"a",(function(){return r}))},"1d80":function(t,e,n){var r=n("7234"),i=TypeError;t.exports=function(t){if(r(t))throw i("Can't call method on "+t);return t}},"1da1":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));n("d3b7");function r(t,e,n,r,i,o,a){try{var s=t[o](a),l=s.value}catch(u){return void n(u)}s.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,l,"next",t)}function l(t){r(a,i,o,s,l,"throw",t)}s(void 0)}))}}},"1dde":function(t,e,n){var r=n("d039"),i=n("b622"),o=n("2d00"),a=i("species");t.exports=function(t){return o>=51||!r((function(){var e=[],n=e.constructor={};return n[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"1f68":function(t,e,n){"use strict";var r=n("83ab"),i=n("edd0"),o=n("861d"),a=n("7b0b"),s=n("1d80"),l=Object.getPrototypeOf,u=Object.setPrototypeOf,c=Object.prototype,h="__proto__";if(r&&l&&u&&!(h in c))try{i(c,h,{configurable:!0,get:function(){return l(a(this))},set:function(t){var e=s(this);(o(t)||null===t)&&o(e)&&u(e,t)}})}catch(f){}},"1fb5":function(t,e,n){"use strict";e.byteLength=c,e.toByteArray=f,e.fromByteArray=g;for(var r=[],i=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");-1===n&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function c(t){var e=u(t),n=e[0],r=e[1];return 3*(n+r)/4-r}function h(t,e,n){return 3*(e+n)/4-n}function f(t){var e,n,r=u(t),a=r[0],s=r[1],l=new o(h(t,a,s)),c=0,f=s>0?a-4:a;for(n=0;n>16&255,l[c++]=e>>8&255,l[c++]=255&e;return 2===s&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,l[c++]=255&e),1===s&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,l[c++]=e>>8&255,l[c++]=255&e),l}function p(t){return r[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}function d(t,e,n){for(var r,i=[],o=e;ol?l:s+a));return 1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},"21a1":function(t,e,n){(function(e){(function(e,n){t.exports=n()})(0,(function(){"use strict";"undefined"!==typeof window?window:"undefined"!==typeof e||"undefined"!==typeof self&&self;function t(t,e){return e={exports:{}},t(e,e.exports),e.exports}var n=t((function(t,e){(function(e,n){t.exports=n()})(0,(function(){function t(t){var e=t&&"object"===typeof t;return e&&"[object RegExp]"!==Object.prototype.toString.call(t)&&"[object Date]"!==Object.prototype.toString.call(t)}function e(t){return Array.isArray(t)?[]:{}}function n(n,r){var i=r&&!0===r.clone;return i&&t(n)?o(e(n),n,r):n}function r(e,r,i){var a=e.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,i):t(r)?a[s]=o(e[s],r,i):-1===e.indexOf(r)&&a.push(n(r,i))})),a}function i(e,r,i){var a={};return t(e)&&Object.keys(e).forEach((function(t){a[t]=n(e[t],i)})),Object.keys(r).forEach((function(s){t(r[s])&&e[s]?a[s]=o(e[s],r[s],i):a[s]=n(r[s],i)})),a}function o(t,e,o){var a=Array.isArray(e),s=o||{arrayMerge:r},l=s.arrayMerge||r;return a?Array.isArray(t)?l(t,e,o):n(e,o):i(t,e,o)}return o.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,n){return o(t,n,e)}))},o}))}));function r(t){return t=t||Object.create(null),{on:function(e,n){(t[e]||(t[e]=[])).push(n)},off:function(e,n){t[e]&&t[e].splice(t[e].indexOf(n)>>>0,1)},emit:function(e,n){(t[e]||[]).map((function(t){t(n)})),(t["*"]||[]).map((function(t){t(e,n)}))}}}var i=t((function(t,e){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};e.default=n,t.exports=e.default})),o=function(t){return Object.keys(t).map((function(e){var n=t[e].toString().replace(/"/g,""");return e+'="'+n+'"'})).join(" ")},a=i.svg,s=i.xlink,l={};l[a.name]=a.uri,l[s.name]=s.uri;var u,c=function(t,e){void 0===t&&(t="");var r=n(l,e||{}),i=o(r);return""+t+""},h=i.svg,f=i.xlink,p={attrs:(u={style:["position: absolute","width: 0","height: 0"].join("; ")},u[h.name]=h.uri,u[f.name]=f.uri,u)},d=function(t){this.config=n(p,t||{}),this.symbols=[]};d.prototype.add=function(t){var e=this,n=e.symbols,r=this.find(t.id);return r?(n[n.indexOf(r)]=t,!1):(n.push(t),!0)},d.prototype.remove=function(t){var e=this,n=e.symbols,r=this.find(t);return!!r&&(n.splice(n.indexOf(r),1),r.destroy(),!0)},d.prototype.find=function(t){return this.symbols.filter((function(e){return e.id===t}))[0]||null},d.prototype.has=function(t){return null!==this.find(t)},d.prototype.stringify=function(){var t=this.config,e=t.attrs,n=this.symbols.map((function(t){return t.stringify()})).join("");return c(n,e)},d.prototype.toString=function(){return this.stringify()},d.prototype.destroy=function(){this.symbols.forEach((function(t){return t.destroy()}))};var g=function(t){var e=t.id,n=t.viewBox,r=t.content;this.id=e,this.viewBox=n,this.content=r};g.prototype.stringify=function(){return this.content},g.prototype.toString=function(){return this.stringify()},g.prototype.destroy=function(){var t=this;["id","viewBox","content"].forEach((function(e){return delete t[e]}))};var v=function(t){var e=!!document.importNode,n=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement;return e?document.importNode(n,!0):n},y=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={isMounted:{}};return n.isMounted.get=function(){return!!this.node},e.createFromExistingNode=function(t){return new e({id:t.getAttribute("id"),viewBox:t.getAttribute("viewBox"),content:t.outerHTML})},e.prototype.destroy=function(){this.isMounted&&this.unmount(),t.prototype.destroy.call(this)},e.prototype.mount=function(t){if(this.isMounted)return this.node;var e="string"===typeof t?document.querySelector(t):t,n=this.render();return this.node=n,e.appendChild(n),n},e.prototype.render=function(){var t=this.stringify();return v(c(t)).childNodes[0]},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(e.prototype,n),e}(g),m={autoConfigure:!0,mountTo:"body",syncUrlsWithBaseTag:!1,listenLocationChangeEvent:!0,locationChangeEvent:"locationChange",locationChangeAngularEmitter:!1,usagesToUpdate:"use[*|href]",moveGradientsOutsideSymbol:!1},b=function(t){return Array.prototype.slice.call(t,0)},x=navigator.userAgent,_={isChrome:/chrome/i.test(x),isFirefox:/firefox/i.test(x),isIE:/msie/i.test(x)||/trident/i.test(x),isEdge:/edge/i.test(x)},w=function(t,e){var n=document.createEvent("CustomEvent");n.initCustomEvent(t,!1,!1,e),window.dispatchEvent(n)},S=function(t){var e=[];return b(t.querySelectorAll("style")).forEach((function(t){t.textContent+="",e.push(t)})),e},O=function(t){return(t||window.location.href).split("#")[0]},M=function(t){angular.module("ng").run(["$rootScope",function(e){e.$on("$locationChangeSuccess",(function(e,n,r){w(t,{oldUrl:r,newUrl:n})}))}])},A="linearGradient, radialGradient, pattern",I=function(t,e){return void 0===e&&(e=A),b(t.querySelectorAll("symbol")).forEach((function(t){b(t.querySelectorAll(e)).forEach((function(e){t.parentNode.insertBefore(e,t)}))})),t};function T(t,e){var n=b(t).reduce((function(t,n){if(!n.attributes)return t;var r=b(n.attributes),i=e?r.filter(e):r;return t.concat(i)}),[]);return n}var C=i.xlink.uri,D="xlink:href",k=/[{}|\\\^\[\]`"<>]/g;function L(t){return t.replace(k,(function(t){return"%"+t[0].charCodeAt(0).toString(16).toUpperCase()}))}function j(t,e,n){return b(t).forEach((function(t){var r=t.getAttribute(D);if(r&&0===r.indexOf(e)){var i=r.replace(e,n);t.setAttributeNS(C,D,i)}})),t}var P,E=["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke","style"],R=E.map((function(t){return"["+t+"]"})).join(","),N=function(t,e,n,r){var i=L(n),o=L(r),a=t.querySelectorAll(R),s=T(a,(function(t){var e=t.localName,n=t.value;return-1!==E.indexOf(e)&&-1!==n.indexOf("url("+i)}));s.forEach((function(t){return t.value=t.value.replace(i,o)})),j(e,i,o)},z={MOUNT:"mount",SYMBOL_MOUNT:"symbol_mount"},B=function(t){function e(e){var i=this;void 0===e&&(e={}),t.call(this,n(m,e));var o=r();this._emitter=o,this.node=null;var a=this,s=a.config;if(s.autoConfigure&&this._autoConfigure(e),s.syncUrlsWithBaseTag){var l=document.getElementsByTagName("base")[0].getAttribute("href");o.on(z.MOUNT,(function(){return i.updateUrls("#",l)}))}var u=this._handleLocationChange.bind(this);this._handleLocationChange=u,s.listenLocationChangeEvent&&window.addEventListener(s.locationChangeEvent,u),s.locationChangeAngularEmitter&&M(s.locationChangeEvent),o.on(z.MOUNT,(function(t){s.moveGradientsOutsideSymbol&&I(t)})),o.on(z.SYMBOL_MOUNT,(function(t){s.moveGradientsOutsideSymbol&&I(t.parentNode),(_.isIE||_.isEdge)&&S(t)}))}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={isMounted:{}};return i.isMounted.get=function(){return!!this.node},e.prototype._autoConfigure=function(t){var e=this,n=e.config;"undefined"===typeof t.syncUrlsWithBaseTag&&(n.syncUrlsWithBaseTag="undefined"!==typeof document.getElementsByTagName("base")[0]),"undefined"===typeof t.locationChangeAngularEmitter&&(n.locationChangeAngularEmitter="angular"in window),"undefined"===typeof t.moveGradientsOutsideSymbol&&(n.moveGradientsOutsideSymbol=_.isFirefox)},e.prototype._handleLocationChange=function(t){var e=t.detail,n=e.oldUrl,r=e.newUrl;this.updateUrls(n,r)},e.prototype.add=function(e){var n=this,r=t.prototype.add.call(this,e);return this.isMounted&&r&&(e.mount(n.node),this._emitter.emit(z.SYMBOL_MOUNT,e.node)),r},e.prototype.attach=function(t){var e=this,n=this;if(n.isMounted)return n.node;var r="string"===typeof t?document.querySelector(t):t;return n.node=r,this.symbols.forEach((function(t){t.mount(n.node),e._emitter.emit(z.SYMBOL_MOUNT,t.node)})),b(r.querySelectorAll("symbol")).forEach((function(t){var e=y.createFromExistingNode(t);e.node=t,n.add(e)})),this._emitter.emit(z.MOUNT,r),r},e.prototype.destroy=function(){var t=this,e=t.config,n=t.symbols,r=t._emitter;n.forEach((function(t){return t.destroy()})),r.off("*"),window.removeEventListener(e.locationChangeEvent,this._handleLocationChange),this.isMounted&&this.unmount()},e.prototype.mount=function(t,e){void 0===t&&(t=this.config.mountTo),void 0===e&&(e=!1);var n=this;if(n.isMounted)return n.node;var r="string"===typeof t?document.querySelector(t):t,i=n.render();return this.node=i,e&&r.childNodes[0]?r.insertBefore(i,r.childNodes[0]):r.appendChild(i),this._emitter.emit(z.MOUNT,i),i},e.prototype.render=function(){return v(this.stringify())},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},e.prototype.updateUrls=function(t,e){if(!this.isMounted)return!1;var n=document.querySelectorAll(this.config.usagesToUpdate);return N(this.node,n,O(t)+"#",O(e)+"#"),!0},Object.defineProperties(e.prototype,i),e}(d),V=t((function(t){ -/*! - * domready (c) Dustin Diaz 2014 - License MIT - */ -!function(e,n){t.exports=n()}(0,(function(){var t,e=[],n=document,r=n.documentElement.doScroll,i="DOMContentLoaded",o=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return o||n.addEventListener(i,t=function(){n.removeEventListener(i,t),o=1;while(t=e.shift())t()}),function(t){o?setTimeout(t,0):e.push(t)}}))})),F="__SVG_SPRITE_NODE__",G="__SVG_SPRITE__",H=!!window[G];H?P=window[G]:(P=new B({attrs:{id:F}}),window[G]=P);var W=function(){var t=document.getElementById(F);t?P.attach(t):P.mount(document.body,!0)};document.body?W():V(W);var U=P;return U}))}).call(this,n("24aa"))},2266:function(t,e,n){var r=n("0366"),i=n("c65b"),o=n("825a"),a=n("0d51"),s=n("e95a"),l=n("07fa"),u=n("3a9b"),c=n("9a1f"),h=n("35a1"),f=n("2a62"),p=TypeError,d=function(t,e){this.stopped=t,this.result=e},g=d.prototype;t.exports=function(t,e,n){var v,y,m,b,x,_,w,S=n&&n.that,O=!(!n||!n.AS_ENTRIES),M=!(!n||!n.IS_RECORD),A=!(!n||!n.IS_ITERATOR),I=!(!n||!n.INTERRUPTED),T=r(e,S),C=function(t){return v&&f(v,"normal",t),new d(!0,t)},D=function(t){return O?(o(t),I?T(t[0],t[1],C):T(t[0],t[1])):I?T(t,C):T(t)};if(M)v=t.iterator;else if(A)v=t;else{if(y=h(t),!y)throw p(a(t)+" is not iterable");if(s(y)){for(m=0,b=l(t);b>m;m++)if(x=D(t[m]),x&&u(g,x))return x;return new d(!1)}v=c(t,y)}_=M?t.next:v.next;while(!(w=i(_,v)).done){try{x=D(w.value)}catch(k){f(v,"throw",k)}if("object"==typeof x&&x&&u(g,x))return x}return new d(!1)}},"22d1":function(t,e,n){"use strict";var r=function(){function t(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return t}(),i=function(){function t(){this.browser=new r,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!==typeof window}return t}(),o=new i;function a(t,e){var n=e.browser,r=t.match(/Firefox\/([\d.]+)/),i=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);r&&(n.firefox=!0,n.version=r[1]),i&&(n.ie=!0,n.version=i[1]),o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18),a&&(n.weChat=!0),e.svgSupported="undefined"!==typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!==typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||n.ie&&+n.version>=9}"object"===typeof wx&&"function"===typeof wx.getSystemInfoSync?(o.wxa=!0,o.touchEventsSupported=!0):"undefined"===typeof document&&"undefined"!==typeof self?o.worker=!0:"undefined"===typeof navigator?(o.node=!0,o.svgSupported=!0):a(navigator.userAgent,o),e["a"]=o},"23cb":function(t,e,n){var r=n("5926"),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},"23dc":function(t,e,n){var r=n("d44e");r(Math,"Math",!0)},"23e7":function(t,e,n){var r=n("da84"),i=n("06cf").f,o=n("9112"),a=n("cb2d"),s=n("6374"),l=n("e893"),u=n("94ca");t.exports=function(t,e){var n,c,h,f,p,d,g=t.target,v=t.global,y=t.stat;if(c=v?r:y?r[g]||s(g,{}):(r[g]||{}).prototype,c)for(h in e){if(p=e[h],t.dontCallGetSet?(d=i(c,h),f=d&&d.value):f=c[h],n=u(v?h:g+(y?".":"#")+h,t.forced),!n&&void 0!==f){if(typeof p==typeof f)continue;l(p,f)}(t.sham||f&&f.sham)&&o(p,"sham",!0),a(c,h,p,t)}}},"241c":function(t,e,n){var r=n("ca84"),i=n("7839"),o=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},"24aa":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},2532:function(t,e,n){"use strict";var r=n("23e7"),i=n("e330"),o=n("5a34"),a=n("1d80"),s=n("577e"),l=n("ab13"),u=i("".indexOf);r({target:"String",proto:!0,forced:!l("includes")},{includes:function(t){return!!~u(s(a(this)),s(o(t)),arguments.length>1?arguments[1]:void 0)}})},"25f0":function(t,e,n){"use strict";var r=n("5e77").PROPER,i=n("cb2d"),o=n("825a"),a=n("577e"),s=n("d039"),l=n("90d8"),u="toString",c=RegExp.prototype,h=c[u],f=s((function(){return"/a/b"!=h.call({source:"a",flags:"b"})})),p=r&&h.name!=u;(f||p)&&i(RegExp.prototype,u,(function(){var t=o(this),e=a(t.source),n=a(l(t));return"/"+e+"/"+n}),{unsafe:!0})},2626:function(t,e,n){"use strict";var r=n("d066"),i=n("edd0"),o=n("b622"),a=n("83ab"),s=o("species");t.exports=function(t){var e=r(t);a&&e&&!e[s]&&i(e,s,{configurable:!0,get:function(){return this}})}},"26dd":function(t,e,n){"use strict";var r=n("6f4f"),i=n("10db"),o=n("92f0"),a={};n("051b")(a,n("cc15")("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},2877:function(t,e,n){"use strict";function r(t,e,n,r,i,o,a,s){var l,u="function"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=l):i&&(l=s?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(t,e){return l.call(e),c(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}return{exports:t,options:u}}n.d(e,"a",(function(){return r}))},"2a62":function(t,e,n){var r=n("c65b"),i=n("825a"),o=n("dc4a");t.exports=function(t,e,n){var a,s;i(t);try{if(a=o(t,"return"),!a){if("throw"===e)throw n;return n}a=r(a,t)}catch(l){s=!0,a=l}if("throw"===e)throw n;if(s)throw a;return i(a),n}},"2b0e":function(t,e,n){"use strict";n.r(e),function(t){ -/*! - * Vue.js v2.6.10 - * (c) 2014-2019 Evan You - * Released under the MIT License. - */ -var n=Object.freeze({});function r(t){return void 0===t||null===t}function i(t){return void 0!==t&&null!==t}function o(t){return!0===t}function a(t){return!1===t}function s(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function l(t){return null!==t&&"object"===typeof t}var u=Object.prototype.toString;function c(t){return"[object Object]"===u.call(t)}function h(t){return"[object RegExp]"===u.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function p(t){return i(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function d(t){return null==t?"":Array.isArray(t)||c(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function g(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function x(t,e){return b.call(t,e)}function _(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}var w=/-(\w)/g,S=_((function(t){return t.replace(w,(function(t,e){return e?e.toUpperCase():""}))})),O=_((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),M=/\B([A-Z])/g,A=_((function(t){return t.replace(M,"-$1").toLowerCase()}));function I(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function T(t,e){return t.bind(e)}var C=Function.prototype.bind?T:I;function D(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[n+e];return r}function k(t,e){for(var n in e)t[n]=e[n];return t}function L(t){for(var e={},n=0;n0,nt=Q&&Q.indexOf("edge/")>0,rt=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===J),it=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),ot={}.watch,at=!1;if(Z)try{var st={};Object.defineProperty(st,"passive",{get:function(){at=!0}}),window.addEventListener("test-passive",null,st)}catch(Sa){}var lt=function(){return void 0===X&&(X=!Z&&!K&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),X},ut=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ct(t){return"function"===typeof t&&/native code/.test(t.toString())}var ht,ft="undefined"!==typeof Symbol&&ct(Symbol)&&"undefined"!==typeof Reflect&&ct(Reflect.ownKeys);ht="undefined"!==typeof Set&&ct(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var pt=j,dt=0,gt=function(){this.id=dt++,this.subs=[]};gt.prototype.addSub=function(t){this.subs.push(t)},gt.prototype.removeSub=function(t){m(this.subs,t)},gt.prototype.depend=function(){gt.target&>.target.addDep(this)},gt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!x(i,"default"))a=!1;else if(""===a||a===A(t)){var l=te(String,i.type);(l<0||s0&&(a=Ie(a,(e||"")+"_"+n),Ae(a[0])&&Ae(u)&&(c[l]=wt(u.text+a[0].text),a.shift()),c.push.apply(c,a)):s(a)?Ae(u)?c[l]=wt(u.text+a):""!==a&&c.push(wt(a)):Ae(a)&&Ae(u)?c[l]=wt(u.text+a.text):(o(t._isVList)&&i(a.tag)&&r(a.key)&&i(e)&&(a.key="__vlist"+e+"_"+n+"__"),c.push(a)));return c}function Te(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function Ce(t){var e=De(t.$options.inject,t);e&&(Ct(!1),Object.keys(e).forEach((function(n){Pt(t,n,e[n])})),Ct(!0))}function De(t,e){if(t){for(var n=Object.create(null),r=ft?Reflect.ownKeys(t):Object.keys(t),i=0;i0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==n&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var l in i={},t)t[l]&&"$"!==l[0]&&(i[l]=Pe(e,l,t[l]))}else i={};for(var u in e)u in i||(i[u]=Ee(e,u));return t&&Object.isExtensible(t)&&(t._normalized=i),U(i,"$stable",a),U(i,"$key",s),U(i,"$hasNormal",o),i}function Pe(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:Me(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Ee(t,e){return function(){return t[e]}}function Re(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),r=0,o=t.length;r1?D(n):n;for(var r=D(arguments,1),i='event handler for "'+t+'"',o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Xn=function(){return qn.now()})}function Zn(){var t,e;for($n=Xn(),Wn=!0,Vn.sort((function(t,e){return t.id-e.id})),Un=0;UnUn&&Vn[n].id>t.id)n--;Vn.splice(n+1,0,t)}else Vn.push(t);Hn||(Hn=!0,de(Zn))}}var er=0,nr=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++er,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ht,this.newDepIds=new ht,this.expression="","function"===typeof e?this.getter=e:(this.getter=$(e),this.getter||(this.getter=j)),this.value=this.lazy?void 0:this.get()};nr.prototype.get=function(){var t;yt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(Sa){if(!this.user)throw Sa;ee(Sa,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&ve(t),mt(),this.cleanupDeps()}return t},nr.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},nr.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},nr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():tr(this)},nr.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(Sa){ee(Sa,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},nr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},nr.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},nr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var rr={enumerable:!0,configurable:!0,get:j,set:j};function ir(t,e,n){rr.get=function(){return this[e][n]},rr.set=function(t){this[e][n]=t},Object.defineProperty(t,n,rr)}function or(t){t._watchers=[];var e=t.$options;e.props&&ar(t,e.props),e.methods&&dr(t,e.methods),e.data?sr(t):jt(t._data={},!0),e.computed&&cr(t,e.computed),e.watch&&e.watch!==ot&&gr(t,e.watch)}function ar(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;o||Ct(!1);var a=function(o){i.push(o);var a=Zt(o,e,n,t);Pt(r,o,a),o in t||ir(t,"_props",o)};for(var s in e)a(s);Ct(!0)}function sr(t){var e=t.$options.data;e=t._data="function"===typeof e?lr(e,t):e||{},c(e)||(e={});var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);while(i--){var o=n[i];0,r&&x(r,o)||W(o)||ir(t,"_data",o)}jt(e,!0)}function lr(t,e){yt();try{return t.call(e,e)}catch(Sa){return ee(Sa,e,"data()"),{}}finally{mt()}}var ur={lazy:!0};function cr(t,e){var n=t._computedWatchers=Object.create(null),r=lt();for(var i in e){var o=e[i],a="function"===typeof o?o:o.get;0,r||(n[i]=new nr(t,a||j,j,ur)),i in t||hr(t,i,o)}}function hr(t,e,n){var r=!lt();"function"===typeof n?(rr.get=r?fr(e):pr(n),rr.set=j):(rr.get=n.get?r&&!1!==n.cache?fr(e):pr(n.get):j,rr.set=n.set||j),Object.defineProperty(t,e,rr)}function fr(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),gt.target&&e.depend(),e.value}}function pr(t){return function(){return t.call(this,this)}}function dr(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?j:C(e[n],t)}function gr(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i-1)return this;var n=D(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function Mr(t){t.mixin=function(t){return this.options=Xt(this.options,t),this}}function Ar(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Xt(n.options,t),a["super"]=n,a.options.props&&Ir(a),a.options.computed&&Tr(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,V.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=k({},a.options),i[r]=a,a}}function Ir(t){var e=t.options.props;for(var n in e)ir(t.prototype,"_props",n)}function Tr(t){var e=t.options.computed;for(var n in e)hr(t.prototype,n,e[n])}function Cr(t){V.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function Dr(t){return t&&(t.Ctor.options.name||t.tag)}function kr(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!h(t)&&t.test(e)}function Lr(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=Dr(a.componentOptions);s&&!e(s)&&jr(n,o,r,i)}}}function jr(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,m(n,e)}br(Sr),yr(Sr),Cn(Sr),jn(Sr),mn(Sr);var Pr=[String,RegExp,Array],Er={name:"keep-alive",abstract:!0,props:{include:Pr,exclude:Pr,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)jr(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){Lr(t,(function(t){return kr(e,t)}))})),this.$watch("exclude",(function(e){Lr(t,(function(t){return!kr(e,t)}))}))},render:function(){var t=this.$slots.default,e=Sn(t),n=e&&e.componentOptions;if(n){var r=Dr(n),i=this,o=i.include,a=i.exclude;if(o&&(!r||!kr(o,r))||a&&r&&kr(a,r))return e;var s=this,l=s.cache,u=s.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;l[c]?(e.componentInstance=l[c].componentInstance,m(u,c),u.push(c)):(l[c]=e,u.push(c),this.max&&u.length>parseInt(this.max)&&jr(l,u[0],u,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Rr={KeepAlive:Er};function Nr(t){var e={get:function(){return G}};Object.defineProperty(t,"config",e),t.util={warn:pt,extend:k,mergeOptions:Xt,defineReactive:Pt},t.set=Et,t.delete=Rt,t.nextTick=de,t.observable=function(t){return jt(t),t},t.options=Object.create(null),V.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,k(t.options.components,Rr),Or(t),Mr(t),Ar(t),Cr(t)}Nr(Sr),Object.defineProperty(Sr.prototype,"$isServer",{get:lt}),Object.defineProperty(Sr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Sr,"FunctionalRenderContext",{value:Ke}),Sr.version="2.6.10";var zr=v("style,class"),Br=v("input,textarea,option,select,progress"),Vr=function(t,e,n){return"value"===n&&Br(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Fr=v("contenteditable,draggable,spellcheck"),Gr=v("events,caret,typing,plaintext-only"),Hr=function(t,e){return Xr(e)||"false"===e?"false":"contenteditable"===t&&Gr(e)?e:"true"},Wr=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ur="http://www.w3.org/1999/xlink",Yr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},$r=function(t){return Yr(t)?t.slice(6,t.length):""},Xr=function(t){return null==t||!1===t};function qr(t){var e=t.data,n=t,r=t;while(i(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(e=Zr(r.data,e));while(i(n=n.parent))n&&n.data&&(e=Zr(e,n.data));return Kr(e.staticClass,e.class)}function Zr(t,e){return{staticClass:Jr(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Kr(t,e){return i(t)||i(e)?Jr(t,Qr(e)):""}function Jr(t,e){return t?e?t+" "+e:t:e||""}function Qr(t){return Array.isArray(t)?ti(t):l(t)?ei(t):"string"===typeof t?t:""}function ti(t){for(var e,n="",r=0,o=t.length;r-1?si[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:si[t]=/HTMLUnknownElement/.test(e.toString())}var ui=v("text,number,password,search,email,tel,url");function ci(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function hi(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function fi(t,e){return document.createElementNS(ni[t],e)}function pi(t){return document.createTextNode(t)}function di(t){return document.createComment(t)}function gi(t,e,n){t.insertBefore(e,n)}function vi(t,e){t.removeChild(e)}function yi(t,e){t.appendChild(e)}function mi(t){return t.parentNode}function bi(t){return t.nextSibling}function xi(t){return t.tagName}function _i(t,e){t.textContent=e}function wi(t,e){t.setAttribute(e,"")}var Si=Object.freeze({createElement:hi,createElementNS:fi,createTextNode:pi,createComment:di,insertBefore:gi,removeChild:vi,appendChild:yi,parentNode:mi,nextSibling:bi,tagName:xi,setTextContent:_i,setStyleScope:wi}),Oi={create:function(t,e){Mi(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Mi(t,!0),Mi(e))},destroy:function(t){Mi(t,!0)}};function Mi(t,e){var n=t.data.ref;if(i(n)){var r=t.context,o=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?m(a[n],o):a[n]===o&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var Ai=new bt("",{},[]),Ii=["create","activate","update","remove","destroy"];function Ti(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&Ci(t,e)||o(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&r(e.asyncFactory.error))}function Ci(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||ui(r)&&ui(o)}function Di(t,e,n){var r,o,a={};for(r=e;r<=n;++r)o=t[r].key,i(o)&&(a[o]=r);return a}function ki(t){var e,n,a={},l=t.modules,u=t.nodeOps;for(e=0;eg?(h=r(n[m+1])?null:n[m+1].elm,S(t,h,n,d,m,o)):d>m&&M(t,e,f,g)}function T(t,e,n,r){for(var o=n;o-1?Gi(t,e,n):Wr(e)?Xr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Fr(e)?t.setAttribute(e,Hr(e,n)):Yr(e)?Xr(n)?t.removeAttributeNS(Ur,$r(e)):t.setAttributeNS(Ur,e,n):Gi(t,e,n)}function Gi(t,e,n){if(Xr(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Hi={create:Vi,update:Vi};function Wi(t,e){var n=e.elm,o=e.data,a=t.data;if(!(r(o.staticClass)&&r(o.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=qr(e),l=n._transitionClasses;i(l)&&(s=Jr(s,Qr(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ui,Yi={create:Wi,update:Wi},$i="__r",Xi="__c";function qi(t){if(i(t[$i])){var e=tt?"change":"input";t[e]=[].concat(t[$i],t[e]||[]),delete t[$i]}i(t[Xi])&&(t.change=[].concat(t[Xi],t.change||[]),delete t[Xi])}function Zi(t,e,n){var r=Ui;return function i(){var o=e.apply(null,arguments);null!==o&&Qi(t,i,n,r)}}var Ki=ae&&!(it&&Number(it[1])<=53);function Ji(t,e,n,r){if(Ki){var i=$n,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Ui.addEventListener(t,e,at?{capture:n,passive:r}:n)}function Qi(t,e,n,r){(r||Ui).removeEventListener(t,e._wrapper||e,n)}function to(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},i=t.data.on||{};Ui=e.elm,qi(n),xe(n,i,Ji,Qi,Zi,e.context),Ui=void 0}}var eo,no={create:to,update:to};function ro(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,o,a=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in i(l.__ob__)&&(l=e.data.domProps=k({},l)),s)n in l||(a[n]="");for(n in l){if(o=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=o;var u=r(o)?"":String(o);io(a,u)&&(a.value=u)}else if("innerHTML"===n&&ii(a.tagName)&&r(a.innerHTML)){eo=eo||document.createElement("div"),eo.innerHTML=""+o+"";var c=eo.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(c.firstChild)a.appendChild(c.firstChild)}else if(o!==s[n])try{a[n]=o}catch(Sa){}}}}function io(t,e){return!t.composing&&("OPTION"===t.tagName||oo(t,e)||ao(t,e))}function oo(t,e){var n=!0;try{n=document.activeElement!==t}catch(Sa){}return n&&t.value!==e}function ao(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return g(n)!==g(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}var so={create:ro,update:ro},lo=_((function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function uo(t){var e=co(t.style);return t.staticStyle?k(t.staticStyle,e):e}function co(t){return Array.isArray(t)?L(t):"string"===typeof t?lo(t):t}function ho(t,e){var n,r={};if(e){var i=t;while(i.componentInstance)i=i.componentInstance._vnode,i&&i.data&&(n=uo(i.data))&&k(r,n)}(n=uo(t.data))&&k(r,n);var o=t;while(o=o.parent)o.data&&(n=uo(o.data))&&k(r,n);return r}var fo,po=/^--/,go=/\s*!important$/,vo=function(t,e,n){if(po.test(e))t.style.setProperty(e,n);else if(go.test(n))t.style.setProperty(A(e),n.replace(go,""),"important");else{var r=mo(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(_o).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function So(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(_o).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Oo(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&k(e,Mo(t.name||"v")),k(e,t),e}return"string"===typeof t?Mo(t):void 0}}var Mo=_((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Ao=Z&&!et,Io="transition",To="animation",Co="transition",Do="transitionend",ko="animation",Lo="animationend";Ao&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Co="WebkitTransition",Do="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ko="WebkitAnimation",Lo="webkitAnimationEnd"));var jo=Z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Po(t){jo((function(){jo(t)}))}function Eo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),wo(t,e))}function Ro(t,e){t._transitionClasses&&m(t._transitionClasses,e),So(t,e)}function No(t,e,n){var r=Bo(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Io?Do:Lo,l=0,u=function(){t.removeEventListener(s,c),n()},c=function(e){e.target===t&&++l>=a&&u()};setTimeout((function(){l0&&(n=Io,c=a,h=o.length):e===To?u>0&&(n=To,c=u,h=l.length):(c=Math.max(a,u),n=c>0?a>u?Io:To:null,h=n?n===Io?o.length:l.length:0);var f=n===Io&&zo.test(r[Co+"Property"]);return{type:n,timeout:c,propCount:h,hasTransform:f}}function Vo(t,e){while(t.length1}function Yo(t,e){!0!==e.data.show&&Go(e)}var $o=Z?{create:Yo,activate:Yo,remove:function(t,e){!0!==t.data.show?Ho(t,e):e()}}:{},Xo=[Hi,Yi,no,so,xo,$o],qo=Xo.concat(Bi),Zo=ki({nodeOps:Si,modules:qo});et&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&ia(t,"input")}));var Ko={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?_e(n,"postpatch",(function(){Ko.componentUpdated(t,e,n)})):Jo(t,e,n.context),t._vOptions=[].map.call(t.options,ea)):("textarea"===n.tag||ui(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",na),t.addEventListener("compositionend",ra),t.addEventListener("change",ra),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Jo(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,ea);if(i.some((function(t,e){return!R(t,r[e])}))){var o=t.multiple?e.value.some((function(t){return ta(t,i)})):e.value!==e.oldValue&&ta(e.value,i);o&&ia(t,"change")}}}};function Jo(t,e,n){Qo(t,e,n),(tt||nt)&&setTimeout((function(){Qo(t,e,n)}),0)}function Qo(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,l=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(R(ea(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function ta(t,e){return e.every((function(e){return!R(e,t)}))}function ea(t){return"_value"in t?t._value:t.value}function na(t){t.target.composing=!0}function ra(t){t.target.composing&&(t.target.composing=!1,ia(t.target,"input"))}function ia(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function oa(t){return!t.componentInstance||t.data&&t.data.transition?t:oa(t.componentInstance._vnode)}var aa={bind:function(t,e,n){var r=e.value;n=oa(n);var i=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,Go(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value,i=e.oldValue;if(!r!==!i){n=oa(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,r?Go(n,(function(){t.style.display=t.__vOriginalDisplay})):Ho(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}},sa={model:Ko,show:aa},la={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ua(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?ua(Sn(e.children)):t}function ca(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[S(o)]=i[o];return e}function ha(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function fa(t){while(t=t.parent)if(t.data.transition)return!0}function pa(t,e){return e.key===t.key&&e.tag===t.tag}var da=function(t){return t.tag||wn(t)},ga=function(t){return"show"===t.name},va={name:"transition",props:la,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(da),n.length)){0;var r=this.mode;0;var i=n[0];if(fa(this.$vnode))return i;var o=ua(i);if(!o)return i;if(this._leaving)return ha(t,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var l=(o.data||(o.data={})).transition=ca(this),u=this._vnode,c=ua(u);if(o.data.directives&&o.data.directives.some(ga)&&(o.data.show=!0),c&&c.data&&!pa(o,c)&&!wn(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var h=c.data.transition=k({},l);if("out-in"===r)return this._leaving=!0,_e(h,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),ha(t,i);if("in-out"===r){if(wn(o))return u;var f,p=function(){f()};_e(l,"afterEnter",p),_e(l,"enterCancelled",p),_e(h,"delayLeave",(function(t){f=t}))}}return i}}},ya=k({tag:String,moveClass:String},la);delete ya.mode;var ma={props:ya,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=kn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ca(this),s=0;s1?arguments[1]:void 0,e.length)),r=s(t);return f?f(e,r,n):p(e,n,n+r.length)===r}})},"2cf4":function(t,e,n){var r,i,o,a,s=n("da84"),l=n("2ba4"),u=n("0366"),c=n("1626"),h=n("1a2d"),f=n("d039"),p=n("1be4"),d=n("f36a"),g=n("cc12"),v=n("d6d6"),y=n("1cdc"),m=n("605d"),b=s.setImmediate,x=s.clearImmediate,_=s.process,w=s.Dispatch,S=s.Function,O=s.MessageChannel,M=s.String,A=0,I={},T="onreadystatechange";f((function(){r=s.location}));var C=function(t){if(h(I,t)){var e=I[t];delete I[t],e()}},D=function(t){return function(){C(t)}},k=function(t){C(t.data)},L=function(t){s.postMessage(M(t),r.protocol+"//"+r.host)};b&&x||(b=function(t){v(arguments.length,1);var e=c(t)?t:S(t),n=d(arguments,1);return I[++A]=function(){l(e,void 0,n)},i(A),A},x=function(t){delete I[t]},m?i=function(t){_.nextTick(D(t))}:w&&w.now?i=function(t){w.now(D(t))}:O&&!y?(o=new O,a=o.port2,o.port1.onmessage=k,i=u(a.postMessage,a)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!f(L)?(i=L,s.addEventListener("message",k,!1)):i=T in g("script")?function(t){p.appendChild(g("script"))[T]=function(){p.removeChild(this),C(t)}}:function(t){setTimeout(D(t),0)}),t.exports={set:b,clear:x}},"2d00":function(t,e,n){var r,i,o=n("da84"),a=n("342f"),s=o.process,l=o.Deno,u=s&&s.versions||l&&l.version,c=u&&u.v8;c&&(r=c.split("."),i=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&a&&(r=a.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/),r&&(i=+r[1]))),t.exports=i},"2f62":function(t,e,n){"use strict"; -/** - * vuex v3.1.0 - * (c) 2019 Evan You - * @license MIT - */ -function r(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({beforeCreate:r});else{var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[r].concat(t.init):r,n.call(this,t)}}function r(){var t=this.$options;t.store?this.$store="function"===typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}n.d(e,"c",(function(){return C})),n.d(e,"b",(function(){return k}));var i="undefined"!==typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function o(t){i&&(t._devtoolHook=i,i.emit("vuex:init",t),i.on("vuex:travel-to-state",(function(e){t.replaceState(e)})),t.subscribe((function(t,e){i.emit("vuex:mutation",t,e)})))}function a(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function s(t){return null!==t&&"object"===typeof t}function l(t){return t&&"function"===typeof t.then}var u=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"===typeof n?n():n)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},u.prototype.addChild=function(t,e){this._children[t]=e},u.prototype.removeChild=function(t){delete this._children[t]},u.prototype.getChild=function(t){return this._children[t]},u.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},u.prototype.forEachChild=function(t){a(this._children,t)},u.prototype.forEachGetter=function(t){this._rawModule.getters&&a(this._rawModule.getters,t)},u.prototype.forEachAction=function(t){this._rawModule.actions&&a(this._rawModule.actions,t)},u.prototype.forEachMutation=function(t){this._rawModule.mutations&&a(this._rawModule.mutations,t)},Object.defineProperties(u.prototype,c);var h=function(t){this.register([],t,!1)};function f(t,e,n){if(e.update(n),n.modules)for(var r in n.modules){if(!e.getChild(r))return void 0;f(t.concat(r),e.getChild(r),n.modules[r])}}h.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},h.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")}),"")},h.prototype.update=function(t){f([],this.root,t)},h.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var i=new u(e,n);if(0===t.length)this.root=i;else{var o=this.get(t.slice(0,-1));o.addChild(t[t.length-1],i)}e.modules&&a(e.modules,(function(e,i){r.register(t.concat(i),e,n)}))},h.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var p;var d=function(t){var e=this;void 0===t&&(t={}),!p&&"undefined"!==typeof window&&window.Vue&&T(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var r=t.strict;void 0===r&&(r=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new h(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new p;var i=this,a=this,s=a.dispatch,l=a.commit;this.dispatch=function(t,e){return s.call(i,t,e)},this.commit=function(t,e,n){return l.call(i,t,e,n)},this.strict=r;var u=this._modules.root.state;b(this,u,[],this._modules.root),m(this,u),n.forEach((function(t){return t(e)}));var c=void 0!==t.devtools?t.devtools:p.config.devtools;c&&o(this)},g={state:{configurable:!0}};function v(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function y(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;b(t,n,[],t._modules.root,!0),m(t,n,e)}function m(t,e,n){var r=t._vm;t.getters={};var i=t._wrappedGetters,o={};a(i,(function(e,n){o[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var s=p.config.silent;p.config.silent=!0,t._vm=new p({data:{$$state:e},computed:o}),p.config.silent=s,t.strict&&M(t),r&&(n&&t._withCommit((function(){r._data.$$state=null})),p.nextTick((function(){return r.$destroy()})))}function b(t,e,n,r,i){var o=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a]=r),!o&&!i){var s=A(e,n.slice(0,-1)),l=n[n.length-1];t._withCommit((function(){p.set(s,l,r.state)}))}var u=r.context=x(t,a,n);r.forEachMutation((function(e,n){var r=a+n;w(t,r,e,u)})),r.forEachAction((function(e,n){var r=e.root?n:a+n,i=e.handler||e;S(t,r,i,u)})),r.forEachGetter((function(e,n){var r=a+n;O(t,r,e,u)})),r.forEachChild((function(r,o){b(t,e,n.concat(o),r,i)}))}function x(t,e,n){var r=""===e,i={dispatch:r?t.dispatch:function(n,r,i){var o=I(n,r,i),a=o.payload,s=o.options,l=o.type;return s&&s.root||(l=e+l),t.dispatch(l,a)},commit:r?t.commit:function(n,r,i){var o=I(n,r,i),a=o.payload,s=o.options,l=o.type;s&&s.root||(l=e+l),t.commit(l,a,s)}};return Object.defineProperties(i,{getters:{get:r?function(){return t.getters}:function(){return _(t,e)}},state:{get:function(){return A(t.state,n)}}}),i}function _(t,e){var n={},r=e.length;return Object.keys(t.getters).forEach((function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}})),n}function w(t,e,n,r){var i=t._mutations[e]||(t._mutations[e]=[]);i.push((function(e){n.call(t,r.state,e)}))}function S(t,e,n,r){var i=t._actions[e]||(t._actions[e]=[]);i.push((function(e,i){var o=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e,i);return l(o)||(o=Promise.resolve(o)),t._devtoolHook?o.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):o}))}function O(t,e,n,r){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)})}function M(t){t._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}function A(t,e){return e.length?e.reduce((function(t,e){return t[e]}),t):t}function I(t,e,n){return s(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function T(t){p&&t===p||(p=t,r(p))}g.state.get=function(){return this._vm._data.$$state},g.state.set=function(t){0},d.prototype.commit=function(t,e,n){var r=this,i=I(t,e,n),o=i.type,a=i.payload,s=(i.options,{type:o,payload:a}),l=this._mutations[o];l&&(this._withCommit((function(){l.forEach((function(t){t(a)}))})),this._subscribers.forEach((function(t){return t(s,r.state)})))},d.prototype.dispatch=function(t,e){var n=this,r=I(t,e),i=r.type,o=r.payload,a={type:i,payload:o},s=this._actions[i];if(s){try{this._actionSubscribers.filter((function(t){return t.before})).forEach((function(t){return t.before(a,n.state)}))}catch(u){0}var l=s.length>1?Promise.all(s.map((function(t){return t(o)}))):s[0](o);return l.then((function(t){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(a,n.state)}))}catch(u){0}return t}))}},d.prototype.subscribe=function(t){return v(t,this._subscribers)},d.prototype.subscribeAction=function(t){var e="function"===typeof t?{before:t}:t;return v(e,this._actionSubscribers)},d.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch((function(){return t(r.state,r.getters)}),e,n)},d.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},d.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"===typeof t&&(t=[t]),this._modules.register(t,e),b(this,this.state,t,this._modules.get(t),n.preserveState),m(this,this.state)},d.prototype.unregisterModule=function(t){var e=this;"string"===typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){var n=A(e.state,t.slice(0,-1));p.delete(n,t[t.length-1])})),y(this)},d.prototype.hotUpdate=function(t){this._modules.update(t),y(this,!0)},d.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(d.prototype,g);var C=E((function(t,e){var n={};return P(e).forEach((function(e){var r=e.key,i=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=R(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"===typeof i?i.call(this,e,n):e[i]},n[r].vuex=!0})),n})),D=E((function(t,e){var n={};return P(e).forEach((function(e){var r=e.key,i=e.val;n[r]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var r=this.$store.commit;if(t){var o=R(this.$store,"mapMutations",t);if(!o)return;r=o.context.commit}return"function"===typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}})),n})),k=E((function(t,e){var n={};return P(e).forEach((function(e){var r=e.key,i=e.val;i=t+i,n[r]=function(){if(!t||R(this.$store,"mapGetters",t))return this.$store.getters[i]},n[r].vuex=!0})),n})),L=E((function(t,e){var n={};return P(e).forEach((function(e){var r=e.key,i=e.val;n[r]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var o=R(this.$store,"mapActions",t);if(!o)return;r=o.context.dispatch}return"function"===typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}})),n})),j=function(t){return{mapState:C.bind(null,t),mapGetters:k.bind(null,t),mapMutations:D.bind(null,t),mapActions:L.bind(null,t)}};function P(t){return Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}}))}function E(t){return function(e,n){return"string"!==typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function R(t,e,n){var r=t._modulesNamespaceMap[n];return r}var N={Store:d,install:T,version:"3.1.0",mapState:C,mapMutations:D,mapGetters:k,mapActions:L,createNamespacedHelpers:j};e["a"]=N},"2f9a":function(t,e){t.exports=function(){}},"301c":function(t,e,n){n("e198")("asyncIterator")},"313e":function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"create",(function(){return y})),n.d(r,"copy",(function(){return m})),n.d(r,"clone",(function(){return b})),n.d(r,"set",(function(){return x})),n.d(r,"add",(function(){return _})),n.d(r,"scaleAndAdd",(function(){return w})),n.d(r,"sub",(function(){return S})),n.d(r,"len",(function(){return O})),n.d(r,"length",(function(){return M})),n.d(r,"lenSquare",(function(){return A})),n.d(r,"lengthSquare",(function(){return I})),n.d(r,"mul",(function(){return T})),n.d(r,"div",(function(){return C})),n.d(r,"dot",(function(){return D})),n.d(r,"scale",(function(){return k})),n.d(r,"normalize",(function(){return L})),n.d(r,"distance",(function(){return j})),n.d(r,"dist",(function(){return P})),n.d(r,"distanceSquare",(function(){return E})),n.d(r,"distSquare",(function(){return R})),n.d(r,"negate",(function(){return N})),n.d(r,"lerp",(function(){return z})),n.d(r,"applyTransform",(function(){return B})),n.d(r,"min",(function(){return V})),n.d(r,"max",(function(){return F}));var i={};n.r(i),n.d(i,"create",(function(){return wt})),n.d(i,"identity",(function(){return St})),n.d(i,"copy",(function(){return Ot})),n.d(i,"mul",(function(){return Mt})),n.d(i,"translate",(function(){return At})),n.d(i,"rotate",(function(){return It})),n.d(i,"scale",(function(){return Tt})),n.d(i,"invert",(function(){return Ct})),n.d(i,"clone",(function(){return Dt}));var o={};n.r(o),n.d(o,"init",(function(){return Hr})),n.d(o,"dispose",(function(){return Wr})),n.d(o,"disposeAll",(function(){return Ur})),n.d(o,"getInstance",(function(){return Yr})),n.d(o,"registerPainter",(function(){return $r})),n.d(o,"version",(function(){return Xr}));var a={};n.r(a),n.d(a,"updateProps",(function(){return lu})),n.d(a,"initProps",(function(){return uu})),n.d(a,"removeElement",(function(){return hu})),n.d(a,"removeElementWithFadeOut",(function(){return pu})),n.d(a,"isElementRemoved",(function(){return cu})),n.d(a,"extendShape",(function(){return kv})),n.d(a,"extendPath",(function(){return jv})),n.d(a,"registerShape",(function(){return Pv})),n.d(a,"getShapeClass",(function(){return Ev})),n.d(a,"makePath",(function(){return Rv})),n.d(a,"makeImage",(function(){return Nv})),n.d(a,"mergePath",(function(){return Bv})),n.d(a,"resizePath",(function(){return Vv})),n.d(a,"subPixelOptimizeLine",(function(){return Fv})),n.d(a,"subPixelOptimizeRect",(function(){return Gv})),n.d(a,"subPixelOptimize",(function(){return Hv})),n.d(a,"getTransform",(function(){return Wv})),n.d(a,"applyTransform",(function(){return Uv})),n.d(a,"transformDirection",(function(){return Yv})),n.d(a,"groupTransition",(function(){return qv})),n.d(a,"clipPointsByRect",(function(){return Zv})),n.d(a,"clipRectByRect",(function(){return Kv})),n.d(a,"createIcon",(function(){return Jv})),n.d(a,"linePolygonIntersect",(function(){return Qv})),n.d(a,"lineLineIntersect",(function(){return ty})),n.d(a,"setTooltipConfig",(function(){return ry})),n.d(a,"traverseElements",(function(){return oy})),n.d(a,"Group",(function(){return Nr})),n.d(a,"Image",(function(){return gs})),n.d(a,"Text",(function(){return Gs})),n.d(a,"Circle",(function(){return xg})),n.d(a,"Ellipse",(function(){return Sg})),n.d(a,"Sector",(function(){return Fg})),n.d(a,"Ring",(function(){return Wg})),n.d(a,"Polygon",(function(){return qg})),n.d(a,"Polyline",(function(){return Jg})),n.d(a,"Rect",(function(){return Os})),n.d(a,"Line",(function(){return nv})),n.d(a,"BezierCurve",(function(){return sv})),n.d(a,"Arc",(function(){return cv})),n.d(a,"IncrementalDisplayable",(function(){return Iv})),n.d(a,"CompoundPath",(function(){return fv})),n.d(a,"LinearGradient",(function(){return vv})),n.d(a,"RadialGradient",(function(){return mv})),n.d(a,"BoundingRect",(function(){return Gt})),n.d(a,"OrientedBoundingRect",(function(){return Ov})),n.d(a,"Point",(function(){return Lt})),n.d(a,"Path",(function(){return ss}));var s={};n.r(s),n.d(s,"createList",(function(){return BS})),n.d(s,"getLayoutRect",(function(){return sh})),n.d(s,"createDimensions",(function(){return q_})),n.d(s,"dataStack",(function(){return VS})),n.d(s,"createSymbol",(function(){return Im})),n.d(s,"createScale",(function(){return FS})),n.d(s,"mixinAxisModelCommonMethods",(function(){return GS})),n.d(s,"getECData",(function(){return Hs})),n.d(s,"enableHoverEmphasis",(function(){return Ul})),n.d(s,"createTextStyle",(function(){return HS}));var l={};n.r(l),n.d(l,"linearMap",(function(){return Jr})),n.d(l,"round",(function(){return ti})),n.d(l,"asc",(function(){return ei})),n.d(l,"getPrecision",(function(){return ni})),n.d(l,"getPrecisionSafe",(function(){return ri})),n.d(l,"getPixelPrecision",(function(){return ii})),n.d(l,"getPercentWithPrecision",(function(){return oi})),n.d(l,"MAX_SAFE_INTEGER",(function(){return li})),n.d(l,"remRadian",(function(){return ui})),n.d(l,"isRadianAroundZero",(function(){return ci})),n.d(l,"parseDate",(function(){return fi})),n.d(l,"quantity",(function(){return pi})),n.d(l,"quantityExponent",(function(){return di})),n.d(l,"nice",(function(){return gi})),n.d(l,"quantile",(function(){return vi})),n.d(l,"reformIntervals",(function(){return yi})),n.d(l,"isNumeric",(function(){return bi})),n.d(l,"numericToNumber",(function(){return mi}));var u={};n.r(u),n.d(u,"parse",(function(){return fi})),n.d(u,"format",(function(){return Sc}));var c={};n.r(c),n.d(c,"extendShape",(function(){return kv})),n.d(c,"extendPath",(function(){return jv})),n.d(c,"makePath",(function(){return Rv})),n.d(c,"makeImage",(function(){return Nv})),n.d(c,"mergePath",(function(){return Bv})),n.d(c,"resizePath",(function(){return Vv})),n.d(c,"createIcon",(function(){return Jv})),n.d(c,"updateProps",(function(){return lu})),n.d(c,"initProps",(function(){return uu})),n.d(c,"getTransform",(function(){return Wv})),n.d(c,"clipPointsByRect",(function(){return Zv})),n.d(c,"clipRectByRect",(function(){return Kv})),n.d(c,"registerShape",(function(){return Pv})),n.d(c,"getShapeClass",(function(){return Ev})),n.d(c,"Group",(function(){return Nr})),n.d(c,"Image",(function(){return gs})),n.d(c,"Text",(function(){return Gs})),n.d(c,"Circle",(function(){return xg})),n.d(c,"Ellipse",(function(){return Sg})),n.d(c,"Sector",(function(){return Fg})),n.d(c,"Ring",(function(){return Wg})),n.d(c,"Polygon",(function(){return qg})),n.d(c,"Polyline",(function(){return Jg})),n.d(c,"Rect",(function(){return Os})),n.d(c,"Line",(function(){return nv})),n.d(c,"BezierCurve",(function(){return sv})),n.d(c,"Arc",(function(){return cv})),n.d(c,"IncrementalDisplayable",(function(){return Iv})),n.d(c,"CompoundPath",(function(){return fv})),n.d(c,"LinearGradient",(function(){return vv})),n.d(c,"RadialGradient",(function(){return mv})),n.d(c,"BoundingRect",(function(){return Gt}));var h={};n.r(h),n.d(h,"addCommas",(function(){return Gc})),n.d(h,"toCamelCase",(function(){return Hc})),n.d(h,"normalizeCssArray",(function(){return Wc})),n.d(h,"encodeHTML",(function(){return ot})),n.d(h,"formatTpl",(function(){return Xc})),n.d(h,"getTooltipMarker",(function(){return Zc})),n.d(h,"formatTime",(function(){return Kc})),n.d(h,"capitalFirst",(function(){return Jc})),n.d(h,"truncateText",(function(){return ko})),n.d(h,"getTextRect",(function(){return Fc}));var f={};n.r(f),n.d(f,"map",(function(){return v["map"]})),n.d(f,"each",(function(){return v["each"]})),n.d(f,"indexOf",(function(){return v["indexOf"]})),n.d(f,"inherits",(function(){return v["inherits"]})),n.d(f,"reduce",(function(){return v["reduce"]})),n.d(f,"filter",(function(){return v["filter"]})),n.d(f,"bind",(function(){return v["bind"]})),n.d(f,"curry",(function(){return v["curry"]})),n.d(f,"isArray",(function(){return v["isArray"]})),n.d(f,"isString",(function(){return v["isString"]})),n.d(f,"isObject",(function(){return v["isObject"]})),n.d(f,"isFunction",(function(){return v["isFunction"]})),n.d(f,"extend",(function(){return v["extend"]})),n.d(f,"defaults",(function(){return v["defaults"]})),n.d(f,"clone",(function(){return v["clone"]})),n.d(f,"merge",(function(){return v["merge"]})); -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -var p=function(t,e){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},p(t,e)};function d(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}p(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}Object.create;Object.create;var g=n("22d1"),v=n("6d8b");function y(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function m(t,e){return t[0]=e[0],t[1]=e[1],t}function b(t){return[t[0],t[1]]}function x(t,e,n){return t[0]=e,t[1]=n,t}function _(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function w(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t}function S(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function O(t){return Math.sqrt(A(t))}var M=O;function A(t){return t[0]*t[0]+t[1]*t[1]}var I=A;function T(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function C(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function D(t,e){return t[0]*e[0]+t[1]*e[1]}function k(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function L(t,e){var n=O(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function j(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var P=j;function E(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var R=E;function N(t,e){return t[0]=-e[0],t[1]=-e[1],t}function z(t,e,n,r){return t[0]=e[0]+r*(n[0]-e[0]),t[1]=e[1]+r*(n[1]-e[1]),t}function B(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i+n[4],t[1]=n[1]*r+n[3]*i+n[5],t}function V(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function F(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var G=function(){function t(t,e){this.target=t,this.topTarget=e&&e.topTarget}return t}(),H=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){var e=t.target;while(e&&!e.draggable)e=e.parent||e.__hostTarget;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new G(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,r=t.offsetY,i=n-this._x,o=r-this._y;this._x=n,this._y=r,e.drift(i,o,t),this.handler.dispatchToElement(new G(e,t),"drag",t.event);var a=this.handler.findHover(n,r,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new G(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new G(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new G(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new G(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),W=H,U=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,r){this._$handlers||(this._$handlers={});var i=this._$handlers;if("function"===typeof e&&(r=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),i[t]||(i[t]=[]);for(var a=0;a>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",r[l]+":0",i[u]+":0",r[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}function et(t,e,n){for(var r=n?"invTrans":"trans",i=e[r],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var c=t[u].getBoundingClientRect(),h=2*u,f=c.left,p=c.top;a.push(f,p),l=l&&o&&f===o[h]&&p===o[h+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&i?i:(e.srcCoords=a,e[r]=n?q(s,a):q(a,s))}function nt(t){return"CANVAS"===t.nodeName.toUpperCase()}var rt=/([&<>"'])/g,it={"&":"&","<":"<",">":">",'"':""","'":"'"};function ot(t){return null==t?"":(t+"").replace(rt,(function(t,e){return it[e]}))}var at=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,st=[],lt=g["a"].browser.firefox&&+g["a"].browser.version.split(".")[0]<39;function ut(t,e,n,r){return n=n||{},r?ct(t,e,n):lt&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):ct(t,e,n),n}function ct(t,e,n){if(g["a"].domSupported&&t.getBoundingClientRect){var r=e.clientX,i=e.clientY;if(nt(t)){var o=t.getBoundingClientRect();return n.zrX=r-o.left,void(n.zrY=i-o.top)}if(Q(st,t,r,i))return n.zrX=st[0],void(n.zrY=st[1])}n.zrX=n.zrY=0}function ht(t){return t||window.event}function ft(t,e,n){if(e=ht(e),null!=e.zrX)return e;var r=e.type,i=r&&r.indexOf("touch")>=0;if(i){var o="touchend"!==r?e.targetTouches[0]:e.changedTouches[0];o&&ut(t,o,e,n)}else{ut(t,e,e,n);var a=pt(e);e.zrDelta=a?a/120:-(e.detail||0)/3}var s=e.button;return null==e.which&&void 0!==s&&at.test(e.type)&&(e.which=1&s?1:2&s?3:4&s?2:0),e}function pt(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,r=t.deltaY;if(null==n||null==r)return e;var i=0!==r?Math.abs(r):Math.abs(n),o=r>0?-1:r<0?1:n>0?-1:1;return 3*i*o}function dt(t,e,n,r){t.addEventListener(e,n,r)}function gt(t,e,n,r){t.removeEventListener(e,n,r)}var vt=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0};function yt(t){return 2===t.which||3===t.which}var mt=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var r=t.touches;if(r){for(var i={points:[],touches:[],target:e,event:t},o=0,a=r.length;o1&&r&&r.length>1){var o=bt(r)/bt(i);!isFinite(o)&&(o=1),e.pinchScale=o;var a=xt(r);return e.pinchX=a[0],e.pinchY=a[1],{type:"pinch",target:t[0].target,event:e}}}}};function wt(){return[1,0,0,1,0,0]}function St(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Ot(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Mt(t,e,n){var r=e[0]*n[0]+e[2]*n[1],i=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=r,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function At(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function It(t,e,n){var r=e[0],i=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),c=Math.cos(n);return t[0]=r*c+a*u,t[1]=-r*u+a*c,t[2]=i*c+s*u,t[3]=-i*u+c*s,t[4]=c*o+u*l,t[5]=c*l-u*o,t}function Tt(t,e,n){var r=n[0],i=n[1];return t[0]=e[0]*r,t[1]=e[1]*i,t[2]=e[2]*r,t[3]=e[3]*i,t[4]=e[4]*r,t[5]=e[5]*i,t}function Ct(t,e){var n=e[0],r=e[2],i=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*r;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-r*l,t[3]=n*l,t[4]=(r*s-a*i)*l,t[5]=(o*i-n*s)*l,t):null}function Dt(t){var e=wt();return Ot(e,t),e}var kt=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,r){t.x=e.x+n.x*r,t.y=e.y+n.y*r},t.lerp=function(t,e,n,r){var i=1-r;t.x=i*e.x+r*n.x,t.y=i*e.y+r*n.y},t}(),Lt=kt,jt=Math.min,Pt=Math.max,Et=new Lt,Rt=new Lt,Nt=new Lt,zt=new Lt,Bt=new Lt,Vt=new Lt,Ft=function(){function t(t,e,n,r){n<0&&(t+=n,n=-n),r<0&&(e+=r,r=-r),this.x=t,this.y=e,this.width=n,this.height=r}return t.prototype.union=function(t){var e=jt(t.x,this.x),n=jt(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Pt(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Pt(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,r=t.height/e.height,i=wt();return At(i,i,[-e.x,-e.y]),Tt(i,i,[n,r]),At(i,i,[t.x,t.y]),i},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var r=this,i=r.x,o=r.x+r.width,a=r.y,s=r.y+r.height,l=e.x,u=e.x+e.width,c=e.y,h=e.y+e.height,f=!(od&&(d=b,gd&&(d=x,y=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,r){if(r){if(r[1]<1e-5&&r[1]>-1e-5&&r[2]<1e-5&&r[2]>-1e-5){var i=r[0],o=r[3],a=r[4],s=r[5];return e.x=n.x*i+a,e.y=n.y*o+s,e.width=n.width*i,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}Et.x=Nt.x=n.x,Et.y=zt.y=n.y,Rt.x=zt.x=n.x+n.width,Rt.y=Nt.y=n.y+n.height,Et.transform(r),zt.transform(r),Rt.transform(r),Nt.transform(r),e.x=jt(Et.x,Rt.x,Nt.x,zt.x),e.y=jt(Et.y,Rt.y,Nt.y,zt.y);var l=Pt(Et.x,Rt.x,Nt.x,zt.x),u=Pt(Et.y,Rt.y,Nt.y,zt.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),Gt=Ft,Ht="silent";function Wt(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Ut}}function Ut(){vt(this.event)}var Yt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return d(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Y),$t=function(){function t(t,e){this.x=t,this.y=e}return t}(),Xt=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],qt=new Gt(0,0,0,0),Zt=function(t){function e(e,n,r,i,o){var a=t.call(this)||this;return a._hovered=new $t(0,0),a.storage=e,a.painter=n,a.painterRoot=i,a._pointerSize=o,r=r||new Yt,a.proxy=null,a.setHandlerProxy(r),a._draggingMgr=new W(a),a}return d(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(v["each"](Xt,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,r=Qt(this,e,n),i=this._hovered,o=i.target;o&&!o.__zr&&(i=this.findHover(i.x,i.y),o=i.target);var a=this._hovered=r?new $t(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(i,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new $t(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){t=t||{};var r=t.target;if(!r||!r.silent){var i="on"+e,o=Wt(e,t,n);while(r)if(r[i]&&(o.cancelBubble=!!r[i].call(r,o)),r.trigger(e,o),r=r.__hostTarget?r.__hostTarget:r.parent,o.cancelBubble)break;o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"===typeof t[i]&&t[i].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){var r=this.storage.getDisplayList(),i=new $t(t,e);if(Jt(r,i,t,e,n),this._pointerSize&&!i.target){for(var o=[],a=this._pointerSize,s=a/2,l=new Gt(t-s,e-s,a,a),u=r.length-1;u>=0;u--){var c=r[u];c===n||c.ignore||c.ignoreCoarsePointer||c.parent&&c.parent.ignoreCoarsePointer||(qt.copy(c.getBoundingRect()),c.transform&&qt.applyTransform(c.transform),qt.intersect(l)&&o.push(c))}if(o.length)for(var h=4,f=Math.PI/12,p=2*Math.PI,d=0;d=0;o--){var a=t[o],s=void 0;if(a!==i&&!a.ignore&&(s=Kt(a,n,r))&&(!e.topTarget&&(e.topTarget=a),s!==Ht)){e.target=a;break}}}function Qt(t,e,n){var r=t.painter;return e<0||e>r.getWidth()||n<0||n>r.getHeight()}v["each"](["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){Zt.prototype[t]=function(e){var n,r,i=e.zrX,o=e.zrY,a=Qt(this,i,o);if("mouseup"===t&&a||(n=this.findHover(i,o),r=n.target),"mousedown"===t)this._downEl=r,this._downPoint=[e.zrX,e.zrY],this._upEl=r;else if("mouseup"===t)this._upEl=r;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||P(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var te=Zt,ee=32,ne=7;function re(t){var e=0;while(t>=ee)e|=1&t,t>>=1;return t+e}function ie(t,e,n,r){var i=e+1;if(i===n)return 1;if(r(t[i++],t[e])<0){while(i=0)i++;return i-e}function oe(t,e,n){n--;while(e>>1,i(a,t[o])<0?l=o:s=o+1;var u=r-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:while(u>0)t[s+u]=t[s+u-1],u--}t[s]=a}}function se(t,e,n,r,i,o){var a=0,s=0,l=1;if(o(t,e[n+i])>0){s=r-i;while(l0)a=l,l=1+(l<<1),l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}else{s=i+1;while(ls&&(l=s);var u=a;a=i-l,l=i-u}a++;while(a>>1);o(t,e[n+c])>0?a=c+1:l=c}return l}function le(t,e,n,r,i,o){var a=0,s=0,l=1;if(o(t,e[n+i])<0){s=i+1;while(ls&&(l=s);var u=a;a=i-l,l=i-u}else{s=r-i;while(l=0)a=l,l=1+(l<<1),l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}a++;while(a>>1);o(t,e[n+c])<0?l=c:a=c+1}return l}function ue(t,e){var n,r,i=ne,o=0,a=0;o=t.length;var s=[];function l(t,e){n[a]=t,r[a]=e,a+=1}function u(){while(a>1){var t=a-2;if(t>=1&&r[t-1]<=r[t]+r[t+1]||t>=2&&r[t-2]<=r[t]+r[t-1])r[t-1]r[t+1])break;h(t)}}function c(){while(a>1){var t=a-2;t>0&&r[t-1]=ne||p>=ne);if(d)break;g<0&&(g=0),g+=2}if(i=g,i<1&&(i=1),1===r){for(l=0;l=0;l--)t[p+l]=t[f+l];if(0===r){y=!0;break}}if(t[h--]=s[c--],1===--a){y=!0;break}if(v=a-se(t[u],s,0,a,a-1,e),0!==v){for(h-=v,c-=v,a-=v,p=h+1,f=c+1,l=0;l=ne||v>=ne);if(y)break;d<0&&(d=0),d+=2}if(i=d,i<1&&(i=1),1===a){for(h-=r,u-=r,p=h+1,f=u+1,l=r-1;l>=0;l--)t[p+l]=t[f+l];t[h]=s[c]}else{if(0===a)throw new Error;for(f=h-(a-1),l=0;l=0;l--)t[p+l]=t[f+l];t[h]=s[c]}else for(f=h-(a-1),l=0;ls&&(l=s),ae(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),i-=o,n+=o}while(0!==i);a.forceMergeRuns()}}var he=1,fe=2,pe=4,de=!1;function ge(){de||(de=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function ve(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var ye,me=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ve}return t.prototype.traverse=function(t,e){for(var n=0;n0&&(u.__clipPaths=[]),isNaN(u.z)&&(ge(),u.z=0),isNaN(u.z2)&&(ge(),u.z2=0),isNaN(u.zlevel)&&(ge(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,e,n);var h=t.getTextGuideLine();h&&this._updateAndAddDisplayable(h,e,n);var f=t.getTextContent();f&&this._updateAndAddDisplayable(f,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e=0&&this._roots.splice(r,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),be=me;ye=g["a"].hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)};var xe=ye,_e={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1,r=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=r/4):e=r*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/r))},elasticOut:function(t){var e,n=.1,r=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=r/4):e=r*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/r)+1)},elasticInOut:function(t){var e,n=.1,r=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=r/4):e=r*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/r)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/r)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-_e.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*_e.bounceIn(2*t):.5*_e.bounceOut(2*t-1)+.5}},we=_e,Se=Math.pow,Oe=Math.sqrt,Me=1e-8,Ae=1e-4,Ie=Oe(3),Te=1/3,Ce=y(),De=y(),ke=y();function Le(t){return t>-Me&&tMe||t<-Me}function Pe(t,e,n,r,i){var o=1-i;return o*o*(o*t+3*i*e)+i*i*(i*r+3*o*n)}function Ee(t,e,n,r,i){var o=1-i;return 3*(((e-t)*o+2*(n-e)*i)*o+(r-n)*i*i)}function Re(t,e,n,r,i,o){var a=r+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-i,c=s*s-3*a*l,h=s*l-9*a*u,f=l*l-3*s*u,p=0;if(Le(c)&&Le(h))if(Le(s))o[0]=0;else{var d=-l/s;d>=0&&d<=1&&(o[p++]=d)}else{var g=h*h-4*c*f;if(Le(g)){var v=h/c,y=(d=-s/a+v,-v/2);d>=0&&d<=1&&(o[p++]=d),y>=0&&y<=1&&(o[p++]=y)}else if(g>0){var m=Oe(g),b=c*s+1.5*a*(-h+m),x=c*s+1.5*a*(-h-m);b=b<0?-Se(-b,Te):Se(b,Te),x=x<0?-Se(-x,Te):Se(x,Te);d=(-s-(b+x))/(3*a);d>=0&&d<=1&&(o[p++]=d)}else{var _=(2*c*s-3*a*h)/(2*Oe(c*c*c)),w=Math.acos(_)/3,S=Oe(c),O=Math.cos(w),M=(d=(-s-2*S*O)/(3*a),y=(-s+S*(O+Ie*Math.sin(w)))/(3*a),(-s+S*(O-Ie*Math.sin(w)))/(3*a));d>=0&&d<=1&&(o[p++]=d),y>=0&&y<=1&&(o[p++]=y),M>=0&&M<=1&&(o[p++]=M)}}return p}function Ne(t,e,n,r,i){var o=6*n-12*e+6*t,a=9*e+3*r-3*t-9*n,s=3*e-3*t,l=0;if(Le(a)){if(je(o)){var u=-s/o;u>=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(Le(c))i[0]=-o/(2*a);else if(c>0){var h=Oe(c),f=(u=(-o+h)/(2*a),(-o-h)/(2*a));u>=0&&u<=1&&(i[l++]=u),f>=0&&f<=1&&(i[l++]=f)}}return l}function ze(t,e,n,r,i,o){var a=(e-t)*i+t,s=(n-e)*i+e,l=(r-n)*i+n,u=(s-a)*i+a,c=(l-s)*i+s,h=(c-u)*i+u;o[0]=t,o[1]=a,o[2]=u,o[3]=h,o[4]=h,o[5]=c,o[6]=l,o[7]=r}function Be(t,e,n,r,i,o,a,s,l,u,c){var h,f,p,d,g,v=.005,y=1/0;Ce[0]=l,Ce[1]=u;for(var m=0;m<1;m+=.05)De[0]=Pe(t,n,i,a,m),De[1]=Pe(e,r,o,s,m),d=R(Ce,De),d=0&&d=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(Le(c)){u=-a/(2*o);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var h=Oe(c),f=(u=(-a+h)/(2*o),(-a-h)/(2*o));u>=0&&u<=1&&(i[l++]=u),f>=0&&f<=1&&(i[l++]=f)}}return l}function We(t,e,n){var r=t+n-2*e;return 0===r?.5:(t-e)/r}function Ue(t,e,n,r,i){var o=(e-t)*r+t,a=(n-e)*r+e,s=(a-o)*r+o;i[0]=t,i[1]=o,i[2]=s,i[3]=s,i[4]=a,i[5]=n}function Ye(t,e,n,r,i,o,a,s,l){var u,c=.005,h=1/0;Ce[0]=a,Ce[1]=s;for(var f=0;f<1;f+=.05){De[0]=Fe(t,n,i,f),De[1]=Fe(e,r,o,f);var p=R(Ce,De);p=0&&p=1?1:Re(0,r,o,1,t,s)&&Pe(0,i,a,1,s[0])}}}var Ze=function(){function t(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||v["noop"],this.ondestroy=t.ondestroy||v["noop"],this.onrestart=t.onrestart||v["noop"],t.easing&&this.setEasing(t.easing)}return t.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),!this._paused){var n=this._life,r=t-this._startTime-this._pausedTime,i=r/n;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,a=o?o(i):i;if(this.onframe(a),1===i){if(!this.loop)return!0;var s=r%n;this._startTime=t-s,this._pausedTime=0,this.onrestart()}return!1}this._pausedTime+=e},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Object(v["isFunction"])(t)?t:we[t]||qe(t)},t}(),Ke=Ze,Je=n("41ef"),Qe=n("7a29"),tn=Array.prototype.slice;function en(t,e,n){return(e-t)*n+t}function nn(t,e,n,r){for(var i=e.length,o=0;or?e:t,o=Math.min(n,r),a=i[o-1]||{color:[0,0,0,0],offset:0},s=o;sa;if(s)r.length=a;else for(var l=o;l=1},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e,n){this._needsSort=!0;var r=this.keyframes,i=r.length,o=!1,a=mn,s=e;if(Object(v["isArrayLike"])(e)){var l=hn(e);a=l,(1===l&&!Object(v["isNumber"])(e[0])||2===l&&!Object(v["isNumber"])(e[0][0]))&&(o=!0)}else if(Object(v["isNumber"])(e)&&!Object(v["eqNaN"])(e))a=fn;else if(Object(v["isString"])(e))if(isNaN(+e)){var u=Je["parse"](e);u&&(s=u,a=gn)}else a=fn;else if(Object(v["isGradientObject"])(e)){var c=Object(v["extend"])({},s);c.colorStops=Object(v["map"])(e.colorStops,(function(t){return{offset:t.offset,color:Je["parse"](t.color)}})),Object(Qe["m"])(e)?a=vn:Object(Qe["o"])(e)&&(a=yn),s=c}0===i?this.valType=a:a===this.valType&&a!==mn||(o=!0),this.discrete=this.discrete||o;var h={time:t,value:s,rawValue:e,percent:0};return n&&(h.easing=n,h.easingFunc=Object(v["isFunction"])(n)?n:we[n]||qe(n)),r.push(h),h},t.prototype.prepare=function(t,e){var n=this.keyframes;this._needsSort&&n.sort((function(t,e){return t.time-e.time}));for(var r=this.valType,i=n.length,o=n[i-1],a=this.discrete,s=xn(r),l=bn(r),u=0;u=0;n--)if(l[n].percent<=e)break;n=p(n,u-2)}else{for(n=f;ne)break;n=p(n-1,u-2)}i=l[n+1],r=l[n]}if(r&&i){this._lastFr=n,this._lastFrP=e;var g=i.percent-r.percent,y=0===g?1:p((e-r.percent)/g,1);i.easingFunc&&(y=i.easingFunc(y));var m=o?this._additiveValue:h?_n:t[c];if(!xn(s)&&!h||m||(m=this._additiveValue=[]),this.discrete)t[c]=y<1?r.rawValue:i.rawValue;else if(xn(s))s===pn?nn(m,r[a],i[a],y):rn(m,r[a],i[a],y);else if(bn(s)){var b=r[a],x=i[a],_=s===vn;t[c]={type:_?"linear":"radial",x:en(b.x,x.x,y),y:en(b.y,x.y,y),colorStops:Object(v["map"])(b.colorStops,(function(t,e){var n=x.colorStops[e];return{offset:en(t.offset,n.offset,y),color:cn(nn([],t.color,n.color,y))}})),global:x.global},_?(t[c].x2=en(b.x2,x.x2,y),t[c].y2=en(b.y2,x.y2,y)):t[c].r=en(b.r,x.r,y)}else if(h)nn(m,r[a],i[a],y),o||(t[c]=cn(m));else{var w=en(r[a],i[a],y);o?this._additiveValue=w:t[c]=w}o&&this._addToTarget(t)}}},t.prototype._addToTarget=function(t){var e=this.valType,n=this.propName,r=this._additiveValue;e===fn?t[n]=t[n]+r:e===gn?(Je["parse"](t[n],_n),on(_n,_n,r,1),t[n]=cn(_n)):e===pn?on(t[n],t[n],r,1):e===dn&&an(t[n],t[n],r,1)},t}(),Sn=function(){function t(t,e,n,r){this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&r?Object(v["logError"])("Can' use additive animation on looped animation."):(this._additiveAnimators=r,this._allowDiscrete=n)}return t.prototype.getMaxTime=function(){return this._maxTime},t.prototype.getDelay=function(){return this._delay},t.prototype.getLoop=function(){return this._loop},t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e,n){return this.whenWithKeys(t,e,Object(v["keys"])(e),n)},t.prototype.whenWithKeys=function(t,e,n,r){for(var i=this._tracks,o=0;o0&&s.addKeyframe(0,un(l),r),this._trackKeys.push(a)}s.addKeyframe(t,un(e[a]),r)}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,n=0;n0)){this._started=1;for(var e=this,n=[],r=this._maxTime||0,i=0;i1){var a=o.pop();i.addKeyframe(a.time,t[r]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},t}(),On=Sn;function Mn(){return(new Date).getTime()}var An=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n}return d(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._head=n,n?n.prev=e:this._tail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){var e=Mn()-this._pausedTime,n=e-this._time,r=this._head;while(r){var i=r.next,o=r.step(e,n);o?(r.ondestroy(),this.removeClip(r),r=i):r=i}this._time=e,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;function e(){t._running&&(xe(e),!t._paused&&t.update())}this._running=!0,xe(e)},e.prototype.start=function(){this._running||(this._time=Mn(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=Mn(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=Mn()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){var t=this._head;while(t){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._head=this._tail=null},e.prototype.isFinished=function(){return null==this._head},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new On(t,e.loop);return this.addAnimator(n),n},e}(Y),In=An,Tn=300,Cn=g["a"].domSupported,Dn=function(){var t=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},r=v["map"](t,(function(t){var e=t.replace("mouse","pointer");return n.hasOwnProperty(e)?e:t}));return{mouse:t,touch:e,pointer:r}}(),kn={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Ln=!1;function jn(t){var e=t.pointerType;return"pen"===e||"touch"===e}function Pn(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}function En(t){t&&(t.zrByTouch=!0)}function Rn(t,e){return ft(t.dom,new zn(t,e),!0)}function Nn(t,e){var n=e,r=!1;while(n&&9!==n.nodeType&&!(r=n.domBelongToZr||n!==e&&n===t.painterRoot))n=n.parentNode;return r}var zn=function(){function t(t,e){this.stopPropagation=v["noop"],this.stopImmediatePropagation=v["noop"],this.preventDefault=v["noop"],this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY}return t}(),Bn={mousedown:function(t){t=ft(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=ft(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=ft(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){t=ft(this.dom,t);var e=t.toElement||t.relatedTarget;Nn(this,e)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Ln=!0,t=ft(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Ln||(t=ft(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){t=ft(this.dom,t),En(t),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),Bn.mousemove.call(this,t),Bn.mousedown.call(this,t)},touchmove:function(t){t=ft(this.dom,t),En(t),this.handler.processGesture(t,"change"),Bn.mousemove.call(this,t)},touchend:function(t){t=ft(this.dom,t),En(t),this.handler.processGesture(t,"end"),Bn.mouseup.call(this,t),+new Date-+this.__lastTouchMomenter||t<-er}var rr=[],ir=[],or=wt(),ar=Math.abs,sr=function(){function t(){}return t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return nr(this.rotation)||nr(this.x)||nr(this.y)||nr(this.scaleX-1)||nr(this.scaleY-1)||nr(this.skewX)||nr(this.skewY)},t.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),n=this.transform;e||t?(n=n||wt(),e?this.getLocalTransform(n):tr(n),t&&(e?Mt(n,t,n):Ot(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)):n&&tr(n)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(rr);var n=rr[0]<0?-1:1,r=rr[1]<0?-1:1,i=((rr[0]-n)*e+n)/rr[0]||0,o=((rr[1]-r)*e+r)/rr[1]||0;t[0]*=i,t[1]*=i,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||wt(),Ct(this.invTransform,t)},t.prototype.getComputedTransform=function(){var t=this,e=[];while(t)e.push(t),t=t.parent;while(t=e.pop())t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],r=Math.atan2(t[1],t[0]),i=Math.PI/2+r-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(i),e=Math.sqrt(e),this.skewX=i,this.skewY=0,this.rotation=-r,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Mt(ir,t.invTransform,e),e=ir);var n=this.originX,r=this.originY;(n||r)&&(or[4]=n,or[5]=r,Mt(ir,e,or),ir[4]-=n,ir[5]-=r,e=ir),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],r=this.invTransform;return r&&B(n,n,r),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],r=this.transform;return r&&B(n,n,r),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&ar(t[0]-1)>1e-10&&ar(t[3]-1)>1e-10?Math.sqrt(ar(t[0]*t[3]-t[2]*t[1])):1},t.prototype.copyTransform=function(t){ur(this,t)},t.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,r=t.originY||0,i=t.scaleX,o=t.scaleY,a=t.anchorX,s=t.anchorY,l=t.rotation||0,u=t.x,c=t.y,h=t.skewX?Math.tan(t.skewX):0,f=t.skewY?Math.tan(-t.skewY):0;if(n||r||a||s){var p=n+a,d=r+s;e[4]=-p*i-h*d*o,e[5]=-d*o-f*p*i}else e[4]=e[5]=0;return e[0]=i,e[3]=o,e[1]=f*i,e[2]=h*o,l&&It(e,e,l),e[4]+=n+u,e[5]+=r+c,e},t.initDefaultProps=function(){var e=t.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),t}(),lr=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function ur(t,e){for(var n=0;n=0?parseFloat(t)/100*e:parseFloat(t):t}function _r(t,e,n){var r=e.position||"inside",i=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,c="left",h="top";if(r instanceof Array)l+=xr(r[0],n.width),u+=xr(r[1],n.height),c=null,h=null;else switch(r){case"left":l-=i,u+=s,c="right",h="middle";break;case"right":l+=i+a,u+=s,h="middle";break;case"top":l+=a/2,u-=i,c="center",h="bottom";break;case"bottom":l+=a/2,u+=o+i,c="center";break;case"inside":l+=a/2,u+=s,c="center",h="middle";break;case"insideLeft":l+=i,u+=s,h="middle";break;case"insideRight":l+=a-i,u+=s,c="right",h="middle";break;case"insideTop":l+=a/2,u+=i,c="center";break;case"insideBottom":l+=a/2,u+=o-i,c="center",h="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=a-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=o-i,h="bottom";break;case"insideBottomRight":l+=a-i,u+=o-i,c="right",h="bottom";break}return t=t||{},t.x=l,t.y=u,t.align=c,t.verticalAlign=h,t}var wr="__zr_normal__",Sr=lr.concat(["ignore"]),Or=Object(v["reduce"])(lr,(function(t,e){return t[e]=!0,t}),{ignore:!1}),Mr={},Ar=new Gt(0,0,0,0),Ir=function(){function t(t){this.id=Object(v["guid"])(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0;break}var r=this.transform;r||(r=this.transform=[1,0,0,1,0,0]),r[4]+=t,r[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,r=n.local,i=e.innerTransformable,o=void 0,a=void 0,s=!1;i.parent=r?this:null;var l=!1;if(i.copyTransform(e),null!=n.position){var u=Ar;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),r||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Mr,n,u):_r(Mr,n,u),i.x=Mr.x,i.y=Mr.y,o=Mr.align,a=Mr.verticalAlign;var c=n.origin;if(c&&null!=n.rotation){var h=void 0,f=void 0;"center"===c?(h=.5*u.width,f=.5*u.height):(h=xr(c[0],u.width),f=xr(c[1],u.height)),l=!0,i.originX=-i.x+h+(r?0:u.x),i.originY=-i.y+f+(r?0:u.y)}}null!=n.rotation&&(i.rotation=n.rotation);var p=n.offset;p&&(i.x+=p[0],i.y+=p[1],l||(i.originX=-p[0],i.originY=-p[1]));var d=null==n.inside?"string"===typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),v=void 0,y=void 0,m=void 0;d&&this.canBeInsideText()?(v=n.insideFill,y=n.insideStroke,null!=v&&"auto"!==v||(v=this.getInsideTextFill()),null!=y&&"auto"!==y||(y=this.getInsideTextStroke(v),m=!0)):(v=n.outsideFill,y=n.outsideStroke,null!=v&&"auto"!==v||(v=this.getOutsideFill()),null!=y&&"auto"!==y||(y=this.getOutsideStroke(v),m=!0)),v=v||"#000",v===g.fill&&y===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=v,g.stroke=y,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),e.__dirty|=he,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Jn:Kn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"===typeof e&&Object(Je["parse"])(e);n||(n=[255,255,255,1]);for(var r=n[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*r+(i?0:255)*(1-r);return n[3]=1,Object(Je["stringify"])(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},Object(v["extend"])(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"===typeof t)this.attrKV(t,e);else if(Object(v["isObject"])(t))for(var n=t,r=Object(v["keys"])(n),i=0;i0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(wr,!1,t)},t.prototype.useState=function(t,e,n,r){var i=t===wr,o=this.hasState();if(o||!i){var a=this.currentStates,s=this.stateTransition;if(!(Object(v["indexOf"])(a,t)>=0)||!e&&1!==a.length){var l;if(this.stateProxy&&!i&&(l=this.stateProxy(t)),l||(l=this.states&&this.states[t]),l||i){i||this.saveCurrentToNormalState(l);var u=!!(l&&l.hoverLayer||r);u&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,l,this._normalState,e,!n&&!this.__inHover&&s&&s.duration>0,s);var c=this._textContent,h=this._textGuide;return c&&c.useState(t,e,n,u),h&&h.useState(t,e,n,u),i?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!u&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~he),l}Object(v["logError"])("State "+t+" not exists.")}}},t.prototype.useStates=function(t,e,n){if(t.length){var r=[],i=this.currentStates,o=t.length,a=o===i.length;if(a)for(var s=0;s0,p);var d=this._textContent,g=this._textGuide;d&&d.useStates(t,e,h),g&&g.useStates(t,e,h),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~he)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var r=this.currentStates.slice(),i=Object(v["indexOf"])(r,t),o=Object(v["indexOf"])(r,e)>=0;i>=0?o?r.splice(i,1):r[i]=e:n&&!o&&r.push(e),this.useStates(r)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},r=0;r=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,r=n.length,i=[],o=0;o0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var f=0;f0||i.force&&!a.length){var M=void 0,A=void 0,I=void 0;if(s){A={},f&&(M={});for(_=0;_=0&&(n.splice(r,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,e){var n=v["indexOf"](this._children,t);return n>=0&&this.replaceAt(e,n),this},e.prototype.replaceAt=function(t,e){var n=this._children,r=n[e];if(t&&t!==this&&t.parent!==this&&t!==r){n[e]=t,r.parent=null;var i=this.__zr;i&&r.removeSelfFromZr(i),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,r=v["indexOf"](n,t);return r<0||(n.splice(r,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e0){if(t<=i)return a;if(t>=o)return s}else{if(t>=i)return a;if(t<=o)return s}else{if(t===i)return a;if(t===o)return s}return(t-i)/l*u+a}function Qr(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%";break}return v["isString"](t)?Kr(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function ti(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),Zr),t=(+t).toFixed(e),n?t:+t}function ei(t){return t.sort((function(t,e){return t-e})),t}function ni(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;n<15;n++,e*=10)if(Math.round(t*e)/e===t)return n;return ri(t)}function ri(t){var e=t.toString().toLowerCase(),n=e.indexOf("e"),r=n>0?+e.slice(n+1):0,i=n>0?n:e.length,o=e.indexOf("."),a=o<0?0:i-1-o;return Math.max(0,a-r)}function ii(t,e){var n=Math.log,r=Math.LN10,i=Math.floor(n(t[1]-t[0])/r),o=Math.round(n(Math.abs(e[1]-e[0]))/r),a=Math.min(Math.max(-i+o,0),20);return isFinite(a)?a:20}function oi(t,e,n){if(!t[e])return 0;var r=ai(t,n);return r[e]||0}function ai(t,e){var n=v["reduce"](t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===n)return[];var r=Math.pow(10,e),i=v["map"](t,(function(t){return(isNaN(t)?0:t)/n*r*100})),o=100*r,a=v["map"](i,(function(t){return Math.floor(t)})),s=v["reduce"](a,(function(t,e){return t+e}),0),l=v["map"](i,(function(t,e){return t-a[e]}));while(su&&(u=l[h],c=h);++a[c],l[c]=0,++s}return v["map"](a,(function(t){return t/r}))}function si(t,e){var n=Math.max(ni(t),ni(e)),r=t+e;return n>Zr?r:ti(r,n)}var li=9007199254740991;function ui(t){var e=2*Math.PI;return(t%e+e)%e}function ci(t){return t>-qr&&t=10&&e++,e}function gi(t,e){var n,r=di(t),i=Math.pow(10,r),o=t/i;return n=e?o<1.5?1:o<2.5?2:o<4?3:o<7?5:10:o<1?1:o<2?2:o<3?3:o<5?5:10,t=n*i,r>=-20?+t.toFixed(r<0?-r:0):t}function vi(t,e){var n=(t.length-1)*e+1,r=Math.floor(n),i=+t[r-1],o=n-r;return o?i+o*(t[r]-i):i}function yi(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,r=0;r=0||i&&v["indexOf"](i,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var wo=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],So=_o(wo),Oo=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return So(this,t,e)},t}(),Mo=new hr["a"](50);function Ao(t){if("string"===typeof t){var e=Mo.get(t);return e&&e.image}return t}function Io(t,e,n,r,i){if(t){if("string"===typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Mo.get(t),a={hostEl:n,cb:r,cbPayload:i};return o?(e=o.image,!Co(e)&&o.pending.push(a)):(e=fr["d"].loadImage(t,To,To),e.__zrImageSrc=t,Mo.put(t,e.__cachedImgObj={image:e,pending:[a]})),e}return t}return e}function To(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=a;l++)s-=a;var u=dr(n,e);return u>s&&(n="",u=0),s=t-u,i.ellipsis=n,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=t,i}function jo(t,e){var n=e.containerWidth,r=e.font,i=e.contentWidth;if(!n)return"";var o=dr(t,r);if(o<=n)return t;for(var a=0;;a++){if(o<=i||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?Po(t,i,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*i/o):0;t=t.substr(0,s),o=dr(t,r)}return""===t&&(t=e.placeholder),t}function Po(t,e,n,r){for(var i=0,o=0,a=t.length;op&&c){var d=Math.floor(p/l);n=n.slice(0,d)}if(t&&a&&null!=h)for(var g=Lo(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),y=0;yl&&Vo(n,t.substring(l,u),e,s),Vo(n,r[2],e,s,r[1]),l=Do.lastIndex}lo){w>0?(b.tokens=b.tokens.slice(0,w),y(b,_,x),n.lines=n.lines.slice(0,m+1)):n.lines=n.lines.slice(0,m);break t}var C=O.width,D=null==C||"auto"===C;if("string"===typeof C&&"%"===C.charAt(C.length-1))S.percentWidth=C,c.push(S),S.contentWidth=dr(S.text,I);else{if(D){var k=O.backgroundColor,L=k&&k.image;L&&(L=Ao(L),Co(L)&&(S.width=Math.max(S.width,L.width*T/L.height)))}var j=d&&null!=i?i-_:null;null!=j&&j0&&d+r.accumWidth>r.width&&(o=e.split("\n"),h=!0),r.accumWidth=d}else{var g=Wo(e,c,r.width,r.breakAll,r.accumWidth);r.accumWidth=g.accumWidth+p,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var v=0;v=32&&e<=591||e>=880&&e<=4351||e>=4608&&e<=5119||e>=7680&&e<=8303}var Go=Object(v["reduce"])(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function Ho(t){return!Fo(t)||!!Go[t]}function Wo(t,e,n,r,i){for(var o=[],a=[],s="",l="",u=0,c=0,h=0;hn:i+c+p>n)?c?(s||l)&&(d?(s||(s=l,l="",u=0,c=u),o.push(s),a.push(c-u),l+=f,u+=p,s="",c=u):(l&&(s+=l,l="",u=0),o.push(s),a.push(c),s=f,c=p)):d?(o.push(l),a.push(u),l=f,u=p):(o.push(f),a.push(p)):(c+=p,d?(l+=f,u+=p):(l&&(s+=l,l="",u=0),s+=f))}else l&&(s+=l,c+=u),o.push(s),a.push(c),s="",l="",u=0,c=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(c)),1===o.length&&(c+=i),{accumWidth:c,lines:o,linesWidths:a}}var Uo="__zr_style_"+Math.round(10*Math.random()),Yo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},$o={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Yo[Uo]=!0;var Xo=["z","z2","invisible"],qo=["invisible"],Zo=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype._init=function(e){for(var n=Object(v["keys"])(e),r=0;r1e-4)return s[0]=t-n,s[1]=e-r,l[0]=t+n,void(l[1]=e+r);if(aa[0]=ia(i)*n+t,aa[1]=ra(i)*r+e,sa[0]=ia(o)*n+t,sa[1]=ra(o)*r+e,u(s,aa,sa),c(l,aa,sa),i%=oa,i<0&&(i+=oa),o%=oa,o<0&&(o+=oa),i>o&&!a?o+=oa:ii&&(la[0]=ia(p)*n+t,la[1]=ra(p)*r+e,u(s,la,s),c(l,la,l))}var va={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ya=[],ma=[],ba=[],xa=[],_a=[],wa=[],Sa=Math.min,Oa=Math.max,Ma=Math.cos,Aa=Math.sin,Ia=Math.abs,Ta=Math.PI,Ca=2*Ta,Da="undefined"!==typeof Float32Array,ka=[];function La(t){var e=Math.round(t/Ta*1e8)/1e8;return e%2*Ta}function ja(t,e){var n=La(t[0]);n<0&&(n+=Ca);var r=n-t[0],i=t[1];i+=r,!e&&i-n>=Ca?i=n+Ca:e&&n-i>=Ca?i=n-Ca:!e&&n>i?i=n+(Ca-La(n-i)):e&&n0&&(this._ux=Ia(n/qn/t)||0,this._uy=Ia(n/qn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(va.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=Ia(t-this._xi),r=Ia(e-this._yi),i=n>this._ux||r>this._uy;if(this.addData(va.L,t,e),this._ctx&&i&&this._ctx.lineTo(t,e),i)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=n*n+r*r;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(t,e,n,r,i,o){return this._drawPendingPt(),this.addData(va.C,t,e,n,r,i,o),this._ctx&&this._ctx.bezierCurveTo(t,e,n,r,i,o),this._xi=i,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,r){return this._drawPendingPt(),this.addData(va.Q,t,e,n,r),this._ctx&&this._ctx.quadraticCurveTo(t,e,n,r),this._xi=n,this._yi=r,this},t.prototype.arc=function(t,e,n,r,i,o){this._drawPendingPt(),ka[0]=r,ka[1]=i,ja(ka,o),r=ka[0],i=ka[1];var a=i-r;return this.addData(va.A,t,e,n,n,r,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,r,i,o),this._xi=Ma(i)*n+t,this._yi=Aa(i)*n+e,this},t.prototype.arcTo=function(t,e,n,r,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,e,n,r,i),this},t.prototype.rect=function(t,e,n,r){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,e,n,r),this.addData(va.R,t,e,n,r),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(va.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&t.closePath(),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!Da||(this.data=new Float32Array(e));for(var n=0;nu.length&&(this._expandData(),u=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){ba[0]=ba[1]=_a[0]=_a[1]=Number.MAX_VALUE,xa[0]=xa[1]=wa[0]=wa[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,r=0,i=0,o=0;for(t=0;tn||Ia(m)>r||h===e-1)&&(d=Math.sqrt(y*y+m*m),i=g,o=v);break;case va.C:var b=t[h++],x=t[h++],_=(g=t[h++],v=t[h++],t[h++]),w=t[h++];d=Ve(i,o,b,x,g,v,_,w,10),i=_,o=w;break;case va.Q:b=t[h++],x=t[h++],g=t[h++],v=t[h++];d=$e(i,o,b,x,g,v,10),i=g,o=v;break;case va.A:var S=t[h++],O=t[h++],M=t[h++],A=t[h++],I=t[h++],T=t[h++],C=T+I;h+=1;t[h++];p&&(a=Ma(I)*M+S,s=Aa(I)*A+O),d=Oa(M,A)*Sa(Ca,Math.abs(T)),i=Ma(C)*M+S,o=Aa(C)*A+O;break;case va.R:a=i=t[h++],s=o=t[h++];var D=t[h++],k=t[h++];d=2*D+2*k;break;case va.Z:y=a-i,m=s-o;d=Math.sqrt(y*y+m*m),i=a,o=s;break}d>=0&&(l[c++]=d,u+=d)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,r,i,o,a,s,l,u,c,h,f,p=this.data,d=this._ux,g=this._uy,v=this._len,y=e<1,m=0,b=0,x=0;if(!y||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=this._pathLen,c=e*u,c))t:for(var _=0;_0&&(t.lineTo(h,f),x=0),w){case va.M:n=i=p[_++],r=o=p[_++],t.moveTo(i,o);break;case va.L:a=p[_++],s=p[_++];var O=Ia(a-i),M=Ia(s-o);if(O>d||M>g){if(y){var A=l[b++];if(m+A>c){var I=(c-m)/A;t.lineTo(i*(1-I)+a*I,o*(1-I)+s*I);break t}m+=A}t.lineTo(a,s),i=a,o=s,x=0}else{var T=O*O+M*M;T>x&&(h=a,f=s,x=T)}break;case va.C:var C=p[_++],D=p[_++],k=p[_++],L=p[_++],j=p[_++],P=p[_++];if(y){A=l[b++];if(m+A>c){I=(c-m)/A;ze(i,C,k,j,I,ya),ze(o,D,L,P,I,ma),t.bezierCurveTo(ya[1],ma[1],ya[2],ma[2],ya[3],ma[3]);break t}m+=A}t.bezierCurveTo(C,D,k,L,j,P),i=j,o=P;break;case va.Q:C=p[_++],D=p[_++],k=p[_++],L=p[_++];if(y){A=l[b++];if(m+A>c){I=(c-m)/A;Ue(i,C,k,I,ya),Ue(o,D,L,I,ma),t.quadraticCurveTo(ya[1],ma[1],ya[2],ma[2]);break t}m+=A}t.quadraticCurveTo(C,D,k,L),i=k,o=L;break;case va.A:var E=p[_++],R=p[_++],N=p[_++],z=p[_++],B=p[_++],V=p[_++],F=p[_++],G=!p[_++],H=N>z?N:z,W=Ia(N-z)>.001,U=B+V,Y=!1;if(y){A=l[b++];m+A>c&&(U=B+V*(c-m)/A,Y=!0),m+=A}if(W&&t.ellipse?t.ellipse(E,R,N,z,F,B,U,G):t.arc(E,R,H,B,U,G),Y)break t;S&&(n=Ma(B)*N+E,r=Aa(B)*z+R),i=Ma(U)*N+E,o=Aa(U)*z+R;break;case va.R:n=i=p[_],r=o=p[_+1],a=p[_++],s=p[_++];var $=p[_++],X=p[_++];if(y){A=l[b++];if(m+A>c){var q=c-m;t.moveTo(a,s),t.lineTo(a+Sa(q,$),s),q-=$,q>0&&t.lineTo(a+$,s+Sa(q,X)),q-=X,q>0&&t.lineTo(a+Oa($-q,0),s+X),q-=$,q>0&&t.lineTo(a,s+Oa(X-q,0));break t}m+=A}t.rect(a,s,$,X);break;case va.Z:if(y){A=l[b++];if(m+A>c){I=(c-m)/A;t.lineTo(i*(1-I)+n*I,o*(1-I)+r*I);break t}m+=A}t.closePath(),i=n,o=r}}},t.prototype.clone=function(){var e=new t,n=this.data;return e.data=n.slice?n.slice():Array.prototype.slice.call(n),e._len=this._len,e},t.CMD=va,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}(),Ea=Pa;function Ra(t,e,n,r,i,o,a){if(0===i)return!1;var s=i,l=0,u=t;if(a>e+s&&a>r+s||at+s&&o>n+s||oe+h&&c>r+h&&c>o+h&&c>s+h||ct+h&&u>n+h&&u>i+h&&u>a+h||ue+u&&l>r+u&&l>o+u||lt+u&&s>n+u&&s>i+u||sn||c+ui&&(i+=Fa);var f=Math.atan2(l,s);return f<0&&(f+=Fa),f>=r&&f<=i||f+Fa>=r&&f+Fa<=i}function Ha(t,e,n,r,i,o){if(o>e&&o>r||oi?s:0}var Wa=Ea.CMD,Ua=2*Math.PI,Ya=1e-4;function $a(t,e){return Math.abs(t-e)e&&u>r&&u>o&&u>s||u1&&Za(),p=Pe(e,r,o,s,qa[0]),f>1&&(d=Pe(e,r,o,s,qa[1]))),2===f?ve&&s>r&&s>o||s=0&&u<=1){for(var c=0,h=Fe(e,r,o,u),f=0;fn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Xa[0]=-l,Xa[1]=l;var u=Math.abs(r-i);if(u<1e-4)return 0;if(u>=Ua-1e-4){r=0,i=Ua;var c=o?1:-1;return a>=Xa[0]+t&&a<=Xa[1]+t?c:0}if(r>i){var h=r;r=i,i=h}r<0&&(r+=Ua,i+=Ua);for(var f=0,p=0;p<2;p++){var d=Xa[p];if(d+t>a){var g=Math.atan2(s,d);c=o?1:-1;g<0&&(g=Ua+g),(g>=r&&g<=i||g+Ua>=r&&g+Ua<=i)&&(g>Math.PI/2&&g<1.5*Math.PI&&(c=-c),f+=c)}}return f}function ts(t,e,n,r,i){for(var o,a,s=t.data,l=t.len(),u=0,c=0,h=0,f=0,p=0,d=0;d1&&(n||(u+=Ha(c,h,f,p,r,i))),v&&(c=s[d],h=s[d+1],f=c,p=h),g){case Wa.M:f=s[d++],p=s[d++],c=f,h=p;break;case Wa.L:if(n){if(Ra(c,h,s[d],s[d+1],e,r,i))return!0}else u+=Ha(c,h,s[d],s[d+1],r,i)||0;c=s[d++],h=s[d++];break;case Wa.C:if(n){if(Na(c,h,s[d++],s[d++],s[d++],s[d++],s[d],s[d+1],e,r,i))return!0}else u+=Ka(c,h,s[d++],s[d++],s[d++],s[d++],s[d],s[d+1],r,i)||0;c=s[d++],h=s[d++];break;case Wa.Q:if(n){if(za(c,h,s[d++],s[d++],s[d],s[d+1],e,r,i))return!0}else u+=Ja(c,h,s[d++],s[d++],s[d],s[d+1],r,i)||0;c=s[d++],h=s[d++];break;case Wa.A:var y=s[d++],m=s[d++],b=s[d++],x=s[d++],_=s[d++],w=s[d++];d+=1;var S=!!(1-s[d++]);o=Math.cos(_)*b+y,a=Math.sin(_)*x+m,v?(f=o,p=a):u+=Ha(c,h,o,a,r,i);var O=(r-y)*x/b+y;if(n){if(Ga(y,m,x,_,_+w,S,e,O,i))return!0}else u+=Qa(y,m,x,_,_+w,S,O,i);c=Math.cos(_+w)*b+y,h=Math.sin(_+w)*x+m;break;case Wa.R:f=c=s[d++],p=h=s[d++];var M=s[d++],A=s[d++];if(o=f+M,a=p+A,n){if(Ra(f,p,o,p,e,r,i)||Ra(o,p,o,a,e,r,i)||Ra(o,a,f,a,e,r,i)||Ra(f,a,f,p,e,r,i))return!0}else u+=Ha(o,p,o,a,r,i),u+=Ha(f,a,f,p,r,i);break;case Wa.Z:if(n){if(Ra(c,h,f,p,e,r,i))return!0}else u+=Ha(c,h,f,p,r,i);c=f,h=p;break}}return n||$a(h,p)||(u+=Ha(c,h,f,p,r,i)||0),0!==u}function es(t,e,n){return ts(t,0,!1,e,n)}function ns(t,e,n,r){return ts(t,e,!0,n,r)}var rs=Object(v["defaults"])({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Yo),is={style:Object(v["defaults"])({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},$o.style)},os=lr.concat(["invisible","culling","z","z2","zlevel","parent"]),as=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var r=this.style;if(r.decal){var i=this._decalEl=this._decalEl||new e;i.buildPath===e.prototype.buildPath&&(i.buildPath=function(t){n.buildPath(t,n.shape)}),i.silent=!0;var o=i.style;for(var a in r)o[a]!==r[a]&&(o[a]=r[a]);o.fill=r.fill?r.decal:null,o.decal=null,o.shadowColor=null,r.strokeFirst&&(o.stroke=null);for(var s=0;s.5?Kn:e>.2?Qn:Jn}if(t)return Jn}return Kn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(Object(v["isString"])(e)){var n=this.__zr,r=!(!n||!n.isDarkMode()),i=Object(Je["lum"])(t,0)0))},e.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},e.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,n=!t;if(n){var r=!1;this.path||(r=!0,this.createPathProxy());var i=this.path;(r||this.__dirty&pe)&&(i.beginPath(),this.buildPath(i,this.shape,!1),this.pathUpdated()),t=i.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){o.copy(t);var a=e.strokeNoScale?this.getLineScale():1,s=e.lineWidth;if(!this.hasFill()){var l=this.strokeContainThreshold;s=Math.max(s,null==l?4:l)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),r=this.getBoundingRect(),i=this.style;if(t=n[0],e=n[1],r.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=i.lineWidth,s=i.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),ns(o,a/s,t,e)))return!0}if(this.hasFill())return es(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=pe,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"===typeof t?n[t]=e:Object(v["extend"])(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&pe)},e.prototype.createStyle=function(t){return Object(v["createObject"])(rs,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=Object(v["extend"])({},this.shape))},e.prototype._applyStateObj=function(e,n,r,i,o,a){t.prototype._applyStateObj.call(this,e,n,r,i,o,a);var s,l=!(n&&i);if(n&&n.shape?o?i?s=n.shape:(s=Object(v["extend"])({},r.shape),Object(v["extend"])(s,n.shape)):(s=Object(v["extend"])({},i?this.shape:r.shape),Object(v["extend"])(s,n.shape)):l&&(s=r.shape),s)if(o){this.shape=Object(v["extend"])({},this.shape);for(var u={},c=Object(v["keys"])(s),h=0;h0},e.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},e.prototype.createStyle=function(t){return Object(v["createObject"])(ls,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=vr(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var r=t.lineWidth;n.x-=r/2,n.y-=r/2,n.width+=r,n.height+=r}this._rect=n}return this._rect},e.initDefaultProps=function(){var t=e.prototype;t.dirtyRectTolerance=10}(),e}(ta);us.prototype.type="tspan";var cs=us,hs=Object(v["defaults"])({x:0,y:0},Yo),fs={style:Object(v["defaults"])({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},$o.style)};function ps(t){return!!(t&&"string"!==typeof t&&t.width&&t.height)}var ds=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.createStyle=function(t){return Object(v["createObject"])(hs,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var r=ps(e.image)?e.image:this.__image;if(!r)return 0;var i="width"===t?"height":"width",o=e[i];return null==o?r[t]:r[t]/r[i]*o},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return fs},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Gt(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(ta);ds.prototype.type="image";var gs=ds;function vs(t,e){var n,r,i,o,a,s=e.x,l=e.y,u=e.width,c=e.height,h=e.r;u<0&&(s+=u,u=-u),c<0&&(l+=c,c=-c),"number"===typeof h?n=r=i=o=h:h instanceof Array?1===h.length?n=r=i=o=h[0]:2===h.length?(n=i=h[0],r=o=h[1]):3===h.length?(n=h[0],r=o=h[1],i=h[2]):(n=h[0],r=h[1],i=h[2],o=h[3]):n=r=i=o=0,n+r>u&&(a=n+r,n*=u/a,r*=u/a),i+o>u&&(a=i+o,i*=u/a,o*=u/a),r+i>c&&(a=r+i,r*=c/a,i*=c/a),n+o>c&&(a=n+o,n*=c/a,o*=c/a),t.moveTo(s+n,l),t.lineTo(s+u-r,l),0!==r&&t.arc(s+u-r,l+r,r,-Math.PI/2,0),t.lineTo(s+u,l+c-i),0!==i&&t.arc(s+u-i,l+c-i,i,0,Math.PI/2),t.lineTo(s+o,l+c),0!==o&&t.arc(s+o,l+c-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}var ys=Math.round;function ms(t,e,n){if(e){var r=e.x1,i=e.x2,o=e.y1,a=e.y2;t.x1=r,t.x2=i,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(ys(2*r)===ys(2*i)&&(t.x1=t.x2=xs(r,s,!0)),ys(2*o)===ys(2*a)&&(t.y1=t.y2=xs(o,s,!0)),t):t}}function bs(t,e,n){if(e){var r=e.x,i=e.y,o=e.width,a=e.height;t.x=r,t.y=i,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=xs(r,s,!0),t.y=xs(i,s,!0),t.width=Math.max(xs(r+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(xs(i+a,s,!1)-t.y,0===a?0:1),t):t}}function xs(t,e,n){if(!e)return t;var r=ys(2*t);return(r+ys(e))%2===0?r/2:(r+(n?1:-1))/2}var _s=function(){function t(){this.x=0,this.y=0,this.width=0,this.height=0}return t}(),ws={},Ss=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.getDefaultShape=function(){return new _s},e.prototype.buildPath=function(t,e){var n,r,i,o;if(this.subPixelOptimize){var a=bs(ws,e,this.style);n=a.x,r=a.y,i=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,r=e.y,i=e.width,o=e.height;e.r?vs(t,e):t.rect(n,r,i,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(ss);Ss.prototype.type="rect";var Os=Ss,Ms={fill:"#000"},As=2,Is={style:Object(v["defaults"])({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},$o.style)},Ts=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Ms,n.attr(e),n}return d(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;e0,A=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),I=i.calculatedLineHeight,T=0;T=0&&(T=x[I],"right"===T.align))this._placeToken(T,t,w,g,A,"right",y),S-=T.width,A-=T.width,I--;M+=(r-(M-d)-(v-A)-S)/2;while(O<=I)T=x[O],this._placeToken(T,t,w,g,M+T.width/2,"center",y),M+=T.width,O++;g+=w}},e.prototype._placeToken=function(t,e,n,r,i,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=r+n/2;"top"===l?u=r+t.height/2:"bottom"===l&&(u=r+n-t.height/2);var c=!t.isLineHolder&&Fs(s);c&&this._renderBackground(s,e,"right"===o?i-t.width:"center"===o?i-t.width/2:i,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,f=t.textPadding;f&&(i=Bs(i,o,f),u-=t.height/2-f[0]-t.innerHeight/2);var p=this._getOrCreateChild(cs),d=p.createStyle();p.useStyle(d);var g=this._defaultStyle,y=!1,m=0,b=zs("fill"in s?s.fill:"fill"in e?e.fill:(y=!0,g.fill)),x=Ns("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||g.autoStroke&&!y?null:(m=As,g.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=i,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||fr["a"],d.opacity=Object(v["retrieve3"])(s.opacity,e.opacity,1),js(d,s),x&&(d.lineWidth=Object(v["retrieve3"])(s.lineWidth,e.lineWidth,m),d.lineDash=Object(v["retrieve2"])(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=x),b&&(d.fill=b);var w=t.contentWidth,S=t.contentHeight;p.setBoundingRect(new Gt(yr(d.x,w,d.textAlign),mr(d.y,S,d.textBaseline),w,S))},e.prototype._renderBackground=function(t,e,n,r,i,o){var a,s,l=t.backgroundColor,u=t.borderWidth,c=t.borderColor,h=l&&l.image,f=l&&!h,p=t.borderRadius,d=this;if(f||t.lineHeight||u&&c){a=this._getOrCreateChild(Os),a.useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=r,g.width=i,g.height=o,g.r=p,a.dirtyShape()}if(f){var y=a.style;y.fill=l||null,y.fillOpacity=Object(v["retrieve2"])(t.fillOpacity,1)}else if(h){s=this._getOrCreateChild(gs),s.onload=function(){d.dirtyStyle()};var m=s.style;m.image=l.image,m.x=n,m.y=r,m.width=i,m.height=o}if(u&&c){y=a.style;y.lineWidth=u,y.stroke=c,y.strokeOpacity=Object(v["retrieve2"])(t.strokeOpacity,1),y.lineDash=t.borderDash,y.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var b=(a||s).style;b.shadowBlur=t.shadowBlur||0,b.shadowColor=t.shadowColor||"transparent",b.shadowOffsetX=t.shadowOffsetX||0,b.shadowOffsetY=t.shadowOffsetY||0,b.opacity=Object(v["retrieve3"])(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";return Ps(t)&&(e=[t.fontStyle,t.fontWeight,Ls(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),e&&Object(v["trim"])(e)||t.textFont||t.font},e}(ta),Cs={left:!0,right:1,center:1},Ds={top:1,bottom:1,middle:1},ks=["fontStyle","fontWeight","fontSize","fontFamily"];function Ls(t){return"string"!==typeof t||-1===t.indexOf("px")&&-1===t.indexOf("rem")&&-1===t.indexOf("em")?isNaN(+t)?fr["c"]+"px":t+"px":t}function js(t,e){for(var n=0;n=0,o=!1;if(t instanceof ss){var a=$s(t),s=i&&a.selectFill||a.normalFill,l=i&&a.selectStroke||a.normalStroke;if(sl(s)||sl(l)){r=r||{};var u=r.style||{};"inherit"===u.fill?(o=!0,r=Object(v["extend"])({},r),u=Object(v["extend"])({},u),u.fill=s):!sl(u.fill)&&sl(s)?(o=!0,r=Object(v["extend"])({},r),u=Object(v["extend"])({},u),u.fill=ul(s)):!sl(u.stroke)&&sl(l)&&(o||(r=Object(v["extend"])({},r),u=Object(v["extend"])({},u)),u.stroke=ul(l)),r.style=u}}if(r&&null==r.z2){o||(r=Object(v["extend"])({},r));var c=t.z2EmphasisLift;r.z2=t.z2+(null!=c?c:tl)}return r}function wl(t,e,n){if(n&&null==n.z2){n=Object(v["extend"])({},n);var r=t.z2SelectLift;n.z2=t.z2+(null!=r?r:el)}return n}function Sl(t,e,n){var r=Object(v["indexOf"])(t.currentStates,e)>=0,i=t.style.opacity,o=r?null:xl(t,["opacity"],e,{opacity:1});n=n||{};var a=n.style||{};return null==a.opacity&&(n=Object(v["extend"])({},n),a=Object(v["extend"])({opacity:r?i:.1*o.opacity},a),n.style=a),n}function Ol(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return _l(this,t,e,n);if("blur"===t)return Sl(this,t,n);if("select"===t)return wl(this,t,n)}return n}function Ml(t){t.stateProxy=Ol;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Ol),n&&(n.stateProxy=Ol)}function Al(t,e){!Pl(t,e)&&!t.__highByOuter&&ml(t,hl)}function Il(t,e){!Pl(t,e)&&!t.__highByOuter&&ml(t,fl)}function Tl(t,e){t.__highByOuter|=1<<(e||0),ml(t,hl)}function Cl(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&ml(t,fl)}function Dl(t){ml(t,pl)}function kl(t){ml(t,dl)}function Ll(t){ml(t,gl)}function jl(t){ml(t,vl)}function Pl(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function El(t){var e=t.getModel(),n=[],r=[];e.eachComponent((function(e,i){var o=Xs(i),a="series"===e,s=a?t.getViewOfSeriesModel(i):t.getViewOfComponentModel(i);!a&&r.push(s),o.isBlured&&(s.group.traverse((function(t){dl(t)})),a&&n.push(i)),o.isBlured=!1})),Object(v["each"])(r,(function(t){t&&t.toggleBlurSeries&&t.toggleBlurSeries(n,!1,e)}))}function Rl(t,e,n,r){var i=r.getModel();function o(t,e){for(var n=0;n0){var o={dataIndex:i,seriesIndex:t.seriesIndex};null!=r&&(o.dataType=r),e.push(o)}}))})),e}function Ul(t,e,n){Jl(t,!0),ml(t,Ml),Xl(t,e,n)}function Yl(t){Jl(t,!1)}function $l(t,e,n,r){r?Yl(t):Ul(t,e,n)}function Xl(t,e,n){var r=Hs(t);null!=e?(r.focus=e,r.blurScope=n):r.focus&&(r.focus=null)}var ql=["emphasis","blur","select"],Zl={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Kl(t,e,n,r){n=n||"itemStyle";for(var i=0;i0){var h=c.duration,f=c.delay,p=c.easing,d={duration:h,delay:f||0,easing:p,done:o,force:!!o||!!a,setToFinal:!u,scope:t,during:a};l?e.animateFrom(n,d):e.animateTo(n,d)}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function lu(t,e,n,r,i,o){su("update",t,e,n,r,i,o)}function uu(t,e,n,r,i,o){su("enter",t,e,n,r,i,o)}function cu(t){if(!t.__zr)return!0;for(var e=0;e=0&&n.push(t)})),n}t.topologicalTravel=function(t,e,r,i){if(t.length){var o=n(e),a=o.graph,s=o.noEntryList,l={};v["each"](t,(function(t){l[t]=!0}));while(s.length){var u=s.pop(),c=a[u],h=!!l[u];h&&(r.call(i,u,c.originalDeps.slice()),delete l[u]),v["each"](c.successor,h?p:f)}v["each"](l,(function(){var t="";throw new Error(t)}))}function f(t){a[t].entryCount--,0===a[t].entryCount&&s.push(t)}function p(t){l[t]=!0,f(t)}}}function Zu(t,e){return v["merge"](v["merge"]({},t,!0),e,!0)}var Ku={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Ju={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},Qu="ZH",tc="EN",ec=tc,nc={},rc={},ic=g["a"].domSupported?function(){var t=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return t.indexOf(Qu)>-1?Qu:ec}():ec;function oc(t,e){t=t.toUpperCase(),rc[t]=new Uu(e),nc[t]=e}function ac(t){if(Object(v["isString"])(t)){var e=nc[t.toUpperCase()]||{};return t===Qu||t===tc?Object(v["clone"])(e):Object(v["merge"])(Object(v["clone"])(e),Object(v["clone"])(nc[ec]),!1)}return Object(v["merge"])(Object(v["clone"])(t),Object(v["clone"])(nc[ec]),!1)}function sc(t){return rc[t]}function lc(){return rc[ec]}oc(tc,Ku),oc(Qu,Ju);var uc=1e3,cc=60*uc,hc=60*cc,fc=24*hc,pc=365*fc,dc={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},gc="{yyyy}-{MM}-{dd}",vc={year:"{yyyy}",month:"{yyyy}-{MM}",day:gc,hour:gc+" "+dc.hour,minute:gc+" "+dc.minute,second:gc+" "+dc.second,millisecond:dc.none},yc=["year","month","day","hour","minute","second","millisecond"],mc=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function bc(t,e){return t+="","0000".substr(0,e-t.length)+t}function xc(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function _c(t){return t===xc(t)}function wc(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Sc(t,e,n,r){var i=fi(t),o=i[Ic(n)](),a=i[Tc(n)]()+1,s=Math.floor((a-1)/3)+1,l=i[Cc(n)](),u=i["get"+(n?"UTC":"")+"Day"](),c=i[Dc(n)](),h=(c-1)%12+1,f=i[kc(n)](),p=i[Lc(n)](),d=i[jc(n)](),g=r instanceof Uu?r:sc(r||ic)||lc(),v=g.getModel("time"),y=v.get("month"),m=v.get("monthAbbr"),b=v.get("dayOfWeek"),x=v.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,m[a-1]).replace(/{MM}/g,bc(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,bc(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,b[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,bc(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,bc(h+"",2)).replace(/{h}/g,h+"").replace(/{mm}/g,bc(f,2)).replace(/{m}/g,f+"").replace(/{ss}/g,bc(p,2)).replace(/{s}/g,p+"").replace(/{SSS}/g,bc(d,3)).replace(/{S}/g,d+"")}function Oc(t,e,n,r,i){var o=null;if(v["isString"](n))o=n;else if(v["isFunction"](n))o=n(t.value,e,{level:t.level});else{var a=v["extend"]({},dc);if(t.level>0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(v["isArray"](o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;h=Math.min(h,o.length-1),o=o[h]}}return Sc(new Date(t.value),o,i,r)}function Mc(t,e){var n=fi(t),r=n[Tc(e)]()+1,i=n[Cc(e)](),o=n[Dc(e)](),a=n[kc(e)](),s=n[Lc(e)](),l=n[jc(e)](),u=0===l,c=u&&0===s,h=c&&0===a,f=h&&0===o,p=f&&1===i,d=p&&1===r;return d?"year":p?"month":f?"day":h?"hour":c?"minute":u?"second":"millisecond"}function Ac(t,e,n){var r=v["isNumber"](t)?fi(t):t;switch(e=e||Mc(t,n),e){case"year":return r[Ic(n)]();case"half-year":return r[Tc(n)]()>=6?1:0;case"quarter":return Math.floor((r[Tc(n)]()+1)/4);case"month":return r[Tc(n)]();case"day":return r[Cc(n)]();case"half-day":return r[Dc(n)]()/24;case"hour":return r[Dc(n)]();case"minute":return r[kc(n)]();case"second":return r[Lc(n)]();case"millisecond":return r[jc(n)]()}}function Ic(t){return t?"getUTCFullYear":"getFullYear"}function Tc(t){return t?"getUTCMonth":"getMonth"}function Cc(t){return t?"getUTCDate":"getDate"}function Dc(t){return t?"getUTCHours":"getHours"}function kc(t){return t?"getUTCMinutes":"getMinutes"}function Lc(t){return t?"getUTCSeconds":"getSeconds"}function jc(t){return t?"getUTCMilliseconds":"getMilliseconds"}function Pc(t){return t?"setUTCFullYear":"setFullYear"}function Ec(t){return t?"setUTCMonth":"setMonth"}function Rc(t){return t?"setUTCDate":"setDate"}function Nc(t){return t?"setUTCHours":"setHours"}function zc(t){return t?"setUTCMinutes":"setMinutes"}function Bc(t){return t?"setUTCSeconds":"setSeconds"}function Vc(t){return t?"setUTCMilliseconds":"setMilliseconds"}function Fc(t,e,n,r,i,o,a,s){var l=new Gs({style:{text:t,font:e,align:n,verticalAlign:r,padding:i,rich:o,overflow:a?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function Gc(t){if(!bi(t))return v["isString"](t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Hc(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Wc=v["normalizeCssArray"];function Uc(t,e,n){var r="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(t){return t&&v["trim"](t)?t:"-"}function o(t){return!(null==t||isNaN(t)||!isFinite(t))}var a="time"===e,s=t instanceof Date;if(a||s){var l=a?fi(t):t;if(!isNaN(+l))return Sc(l,r,n);if(s)return"-"}if("ordinal"===e)return v["isStringSafe"](t)?i(t):v["isNumber"](t)&&o(t)?t+"":"-";var u=mi(t);return o(u)?Gc(u):v["isStringSafe"](t)?i(t):"boolean"===typeof t?t+"":"-"}var Yc=["a","b","c","d","e","f","g"],$c=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Xc(t,e,n){v["isArray"](e)||(e=[e]);var r=e.length;if(!r)return"";for(var i=e[0].$vars||[],o=0;o':'';var a=n.markerId||"markerX";return{renderMode:o,content:"{"+a+"|} ",style:"subItem"===i?{width:4,height:4,borderRadius:2,backgroundColor:r}:{width:10,height:10,borderRadius:5,backgroundColor:r}}}function Kc(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var r=fi(e),i=n?"getUTC":"get",o=r[i+"FullYear"](),a=r[i+"Month"]()+1,s=r[i+"Date"](),l=r[i+"Hours"](),u=r[i+"Minutes"](),c=r[i+"Seconds"](),h=r[i+"Milliseconds"]();return t=t.replace("MM",bc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",bc(o%100+"",2)).replace("dd",bc(s,2)).replace("d",s).replace("hh",bc(l,2)).replace("h",l).replace("mm",bc(u,2)).replace("m",u).replace("ss",bc(c,2)).replace("s",c).replace("SSS",bc(h,3)),t}function Jc(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function Qc(t,e){return e=e||"transparent",v["isString"](t)?t:v["isObject"](t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function th(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var eh=v["each"],nh=["left","right","top","bottom","width","height"],rh=[["width","left","right"],["height","top","bottom"]];function ih(t,e,n,r,i){var o=0,a=0;null==r&&(r=1/0),null==i&&(i=1/0);var s=0;e.eachChild((function(l,u){var c,h,f=l.getBoundingRect(),p=e.childAt(u+1),d=p&&p.getBoundingRect();if("horizontal"===t){var g=f.width+(d?-d.x+f.x:0);c=o+g,c>r||l.newline?(o=0,c=g,a+=s+n,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(d?-d.y+f.y:0);h=a+v,h>i||l.newline?(o+=s+n,a=0,h=v,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=c+n:a=h+n)}))}var oh=ih;v["curry"](ih,"vertical"),v["curry"](ih,"horizontal");function ah(t,e,n){var r=e.width,i=e.height,o=Qr(t.left,r),a=Qr(t.top,i),s=Qr(t.right,r),l=Qr(t.bottom,i);return(isNaN(o)||isNaN(parseFloat(t.left)))&&(o=0),(isNaN(s)||isNaN(parseFloat(t.right)))&&(s=r),(isNaN(a)||isNaN(parseFloat(t.top)))&&(a=0),(isNaN(l)||isNaN(parseFloat(t.bottom)))&&(l=i),n=Wc(n||0),{width:Math.max(s-o-n[1]-n[3],0),height:Math.max(l-a-n[0]-n[2],0)}}function sh(t,e,n){n=Wc(n||0);var r=e.width,i=e.height,o=Qr(t.left,r),a=Qr(t.top,i),s=Qr(t.right,r),l=Qr(t.bottom,i),u=Qr(t.width,r),c=Qr(t.height,i),h=n[2]+n[0],f=n[1]+n[3],p=t.aspect;switch(isNaN(u)&&(u=r-s-f-o),isNaN(c)&&(c=i-l-h-a),null!=p&&(isNaN(u)&&isNaN(c)&&(p>r/i?u=.8*r:c=.8*i),isNaN(u)&&(u=p*c),isNaN(c)&&(c=u/p)),isNaN(o)&&(o=r-s-u-f),isNaN(a)&&(a=i-l-c-h),t.left||t.right){case"center":o=r/2-u/2-n[3];break;case"right":o=r-u-f;break}switch(t.top||t.bottom){case"middle":case"center":a=i/2-c/2-n[0];break;case"bottom":a=i-c-h;break}o=o||0,a=a||0,isNaN(u)&&(u=r-f-o-(s||0)),isNaN(c)&&(c=i-h-a-(l||0));var d=new Gt(o+n[3],a+n[0],u,c);return d.margin=n,d}function lh(t,e,n,r,i,o){var a,s=!i||!i.hv||i.hv[0],l=!i||!i.hv||i.hv[1],u=i&&i.boundingMode||"all";if(o=o||t,o.x=t.x,o.y=t.y,!s&&!l)return!1;if("raw"===u)a="group"===t.type?new Gt(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(a=t.getBoundingRect(),t.needLocalTransform()){var c=t.getLocalTransform();a=a.clone(),a.applyTransform(c)}var h=sh(v["defaults"]({width:a.width,height:a.height},e),n,r),f=s?h.x-a.x:0,p=l?h.y-a.y:0;return"raw"===u?(o.x=f,o.y=p):(o.x+=f,o.y+=p),o===t&&t.markRedraw(),!0}function uh(t,e){return null!=t[rh[e][0]]||null!=t[rh[e][1]]&&null!=t[rh[e][2]]}function ch(t){var e=t.layoutMode||t.constructor.layoutMode;return v["isObject"](e)?e:e?{type:e}:null}function hh(t,e,n){var r=n&&n.ignoreSize;!v["isArray"](r)&&(r=[r,r]);var i=a(rh[0],0),o=a(rh[1],1);function a(n,i){var o={},a=0,u={},c=0,h=2;if(eh(n,(function(e){u[e]=t[e]})),eh(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&c++})),r[i])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(c!==h&&a){if(a>=h)return o;for(var f=0;f=0;a--)o=v["merge"](o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",r=t+"Id";return to(this.ecModel,t,{index:this.get(n,!0),id:this.get(r,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Uu);function vh(t){var e=[];return v["each"](gh.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=v["map"](e,(function(t){return uo(t).main})),"dataset"!==t&&v["indexOf"](e,"dataset")<=0&&e.unshift("dataset"),e}go(gh,Uu),xo(gh),Xu(gh),qu(gh,vh);var yh=gh,mh="";"undefined"!==typeof navigator&&(mh=navigator.platform||"");var bh="rgba(0, 0, 0, 0.2)",xh={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:bh,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:bh,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:bh,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:bh,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:bh,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:bh,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:mh.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},_h=Object(v["createHashMap"])(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),wh="original",Sh="arrayRows",Oh="objectRows",Mh="keyedColumns",Ah="typedArray",Ih="unknown",Th="column",Ch="row",Dh={Must:1,Might:2,Not:3},kh=Xi();function Lh(t){kh(t).datasetMap=Object(v["createHashMap"])()}function jh(t,e,n){var r={},i=Eh(e);if(!i||!t)return r;var o,a,s=[],l=[],u=e.ecModel,c=kh(u).datasetMap,h=i.uid+"_"+n.seriesLayoutBy;t=t.slice(),Object(v["each"])(t,(function(e,n){var i=Object(v["isObject"])(e)?e:t[n]={name:e};"ordinal"===i.type&&null==o&&(o=n,a=d(i)),r[i.name]=[]}));var f=c.get(h)||c.set(h,{categoryWayDim:a,valueWayDim:0});function p(t,e,n){for(var r=0;re)return t[r];return t[n-1]}function $h(t,e,n,r,i,o,a){o=o||t;var s=e(o),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=null!=a&&r?Yh(r,a):n;if(c=c||n,c&&c.length){var h=c[l];return i&&(u[i]=h),s.paletteIdx=(l+1)%c.length,h}}function Xh(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}var qh,Zh,Kh;"undefined"!==typeof console&&console.warn&&console.log;function Jh(t){0}function Qh(t){throw new Error(t)}var tf="\0_ec_inner",ef=1;var nf=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.init=function(t,e,n,r,i,o){r=r||{},this.option=null,this._theme=new Uu(r),this._locale=new Uu(i),this._optionManager=o},e.prototype.setOption=function(t,e,n){var r=lf(e);this._optionManager.setOption(t,n,r),this._resetOption(null,r)},e.prototype.resetOption=function(t,e){return this._resetOption(t,lf(e))},e.prototype._resetOption=function(t,e){var n=!1,r=this._optionManager;if(!t||"recreate"===t){var i=r.mountOption("recreate"===t);0,this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(i,e)):Kh(this,i),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=r.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=r.getMediaOption(this);a.length&&Object(v["each"])(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,r=this._componentsMap,i=this._componentsCount,o=[],a=Object(v["createHashMap"])(),s=e&&e.replaceMergeMainTypeMap;function l(e){var o=Fh(this,e,Ai(t[e])),a=r.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=ki(a,o,l);Wi(u,e,yh),n[e]=null,r.set(e,null),i.set(e,0);var c,h=[],f=[],p=0;Object(v["each"])(u,(function(t,n){var r=t.existing,i=t.newOption;if(i){var o="series"===e,a=yh.getClass(e,t.keyInfo.subType,!o);if(!a)return;if("tooltip"===e){if(c)return void 0;c=!0}if(r&&r.constructor===a)r.name=t.keyInfo.name,r.mergeOption(i,this),r.optionUpdated(i,!1);else{var s=Object(v["extend"])({componentIndex:n},t.keyInfo);r=new a(i,this,this,s),Object(v["extend"])(r,s),t.brandNew&&(r.__requireNewView=!0),r.init(i,this,this),r.optionUpdated(null,!0)}}else r&&(r.mergeOption({},this),r.optionUpdated({},!1));r?(h.push(r.option),f.push(r),p++):(h.push(void 0),f.push(void 0))}),this),n[e]=h,r.set(e,f),i.set(e,p),"series"===e&&qh(this)}Lh(this),Object(v["each"])(t,(function(t,e){null!=t&&(yh.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?Object(v["clone"])(t):Object(v["merge"])(n[e],t,!0))})),s&&s.each((function(t,e){yh.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),yh.topologicalTravel(o,yh.getAllClassMainTypes(),l,this),this._seriesIndices||qh(this)},e.prototype.getOption=function(){var t=Object(v["clone"])(this.option);return Object(v["each"])(t,(function(e,n){if(yh.hasClass(n)){for(var r=Ai(e),i=r.length,o=!1,a=i-1;a>=0;a--)r[a]&&!Gi(r[a])?o=!0:(r[a]=null,!o&&i--);r.length=i,t[n]=r}})),delete t[tf],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var r=n[e||0];if(r)return r;if(null==e)for(var i=0;i=e:"max"===n?t<=e:t===e}function _f(t,e){return t.join(",")===e.join(",")}var wf=yf,Sf=v["each"],Of=v["isObject"],Mf=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Af(t){var e=t&&t.itemStyle;if(e)for(var n=0,r=Mf.length;n=0;g--){var v=t[g];if(s||(f=v.data.rawIndexOf(v.stackedByDimension,h)),f>=0){var y=v.data.getByRawIndex(v.stackResultDimension,f);if("all"===l||"positive"===l&&y>0||"negative"===l&&y<0||"samesign"===l&&p>=0&&y>0||"samesign"===l&&p<=0&&y<0){p=si(p,y),d=y;break}}}return r[0]=p,r[1]=d,r}))}))}var qf,Zf,Kf,Jf,Qf,tp=function(){function t(t){this.data=t.data||(t.sourceFormat===Mh?{}:[]),this.sourceFormat=t.sourceFormat||Ih,this.seriesLayoutBy=t.seriesLayoutBy||Th,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var e=this.dimensionsDefine=t.dimensionsDefine;if(e)for(var n=0;nu&&(u=p)}s[0]=l,s[1]=u}},r=function(){return this._data?this._data.length/this._dimSize:0};function i(t){for(var e=0;e=0&&(s=o.interpolatedValue[l])}return null!=s?s+"":""}))}},t.prototype.getRawValue=function(t,e){return wp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function Mp(t){var e,n;return v["isObject"](t)?t.type&&(n=t):e=t,{text:e,frag:n}}function Ap(t){return new Ip(t)}var Ip=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,r=t&&t.skip;if(this._dirty&&n){var i=this.context;i.data=i.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!r&&(e=this._plan(this.context));var o,a=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;function c(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(r)),this._modBy=l,this._modDataCount=u;var h=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var f=this._dueIndex,p=Math.min(null!=h?this._dueIndex+h:1/0,this._dueEnd);if(!r&&(o||f1&&r>0?s:a}};return o;function a(){return e=t?null:oe},gte:function(t,e){return t>=e}},jp=function(){function t(t,e){if(!Object(v["isNumber"])(e)){var n="";0,Qh(n)}this._opFn=Lp[t],this._rvalFloat=mi(e)}return t.prototype.evaluate=function(t){return Object(v["isNumber"])(t)?this._opFn(t,this._rvalFloat):this._opFn(mi(t),this._rvalFloat)},t}(),Pp=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=Object(v["isNumber"])(t)?t:mi(t),r=Object(v["isNumber"])(e)?e:mi(e),i=isNaN(n),o=isNaN(r);if(i&&(n=this._incomparable),o&&(r=this._incomparable),i&&o){var a=Object(v["isString"])(t),s=Object(v["isString"])(e);a&&(n=s?t:0),s&&(r=a?e:0)}return nr?-this._resultLT:0},t}(),Ep=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=mi(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=mi(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Rp(t,e){return"eq"===t||"ne"===t?new Ep("eq"===t,e):Object(v["hasOwn"])(Lp,t)?new jp(t,e):null}var Np=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return Cp(t,e)},t}();function zp(t,e){var n=new Np,r=t.data,i=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==Th&&Qh(a);var s=[],l={},u=t.dimensionsDefine;if(u)Object(v["each"])(u,(function(t,e){var n=t.name,r={index:e,name:n,displayName:t.displayName};if(s.push(r),null!=n){var i="";Object(v["hasOwn"])(l,n)&&Qh(i),l[n]=r}}));else for(var c=0;c65535?Zp:Kp}function nd(){return[1/0,-1/0]}function rd(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function id(t,e,n,r,i){var o=td[n||"float"];if(i){var a=t[e],s=a&&a.length;if(s!==r){for(var l=new o(r),u=0;ug[1]&&(g[1]=d)}return this._rawCount=this._count=s,{start:a,end:s}},t.prototype._initDataFromProvider=function(t,e,n){for(var r=this._provider,i=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,l=Object(v["map"])(o,(function(t){return t.property})),u=0;uy[1]&&(y[1]=g)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent=[]},t.prototype.count=function(){return this._count},t.prototype.get=function(t,e){if(!(e>=0&&e=0&&e=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;i=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var r=this._chunks,i=r[t],o=[];if(!i)return o;null==n&&(n=1/0);for(var a=1/0,s=-1,l=0,u=0,c=this.count();u=0&&s<0)&&(a=p,s=f,l=0),f===s&&(o[l++]=u))}return o.length=l,o},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,r=this._count;if(n===Array){t=new n(r);for(var i=0;i=c&&m<=h||isNaN(m))&&(s[l++]=d),d++}p=!0}else if(2===i){g=f[r[0]];var b=f[r[1]],x=t[r[1]][0],_=t[r[1]][1];for(y=0;y=c&&m<=h||isNaN(m))&&(w>=x&&w<=_||isNaN(w))&&(s[l++]=d),d++}p=!0}}if(!p)if(1===i)for(y=0;y=c&&m<=h||isNaN(m))&&(s[l++]=S)}else for(y=0;yt[A][1])&&(O=!1)}O&&(s[l++]=e.getRawIndex(y))}return lv[1]&&(v[1]=g)}}}},t.prototype.lttbDownSample=function(t,e){var n,r,i,o=this.clone([t],!0),a=o._chunks,s=a[t],l=this.count(),u=0,c=Math.floor(1/e),h=this.getRawIndex(0),f=new(ed(this._rawCount))(Math.min(2*(Math.ceil(l/c)+2),l));f[u++]=h;for(var p=1;pn&&(n=r,i=b))}A>0&&Au-p&&(s=u-p,a.length=s);for(var d=0;dc[1]&&(c[1]=v),h[f++]=y}return i._count=f,i._indices=h,i._updateGetRawIdx(),i},t.prototype.each=function(t,e){if(this._count)for(var n=t.length,r=this._chunks,i=0,o=this.count();is&&(s=c)}return r=[a,s],this._extent[t]=r,r},t.prototype.getRawDataItem=function(t){var e=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(e);for(var n=[],r=this._chunks,i=0;i=0?this._indices[t]:-1},t.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},t.internalField=function(){function t(t,e,n,r){return Cp(t[r],this._dimensions[r])}Xp={arrayRows:t,objectRows:function(t,e,n,r){return Cp(t[e],this._dimensions[r])},keyedColumns:t,original:function(t,e,n,r){var i=t&&(null==t.value?t:t.value);return Cp(i instanceof Array?i[r]:i,this._dimensions[r])},typedArray:function(t,e,n,r){return t[r]}}}(),t}(),ad=od,sd=function(){function t(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,r=this._getUpstreamSourceManagers(),i=!!r.length;if(ud(n)){var o=n,a=void 0,s=void 0,l=void 0;if(i){var u=r[0];u.prepareSource(),l=u.getSource(),a=l.data,s=l.sourceFormat,e=[u._getVersionSign()]}else a=o.get("data",!0),s=Object(v["isTypedArray"])(a)?Ah:wh,e=[];var c=this._getSourceMetaRawOption()||{},h=l&&l.metaRawOption||{},f=Object(v["retrieve2"])(c.seriesLayoutBy,h.seriesLayoutBy)||null,p=Object(v["retrieve2"])(c.sourceHeader,h.sourceHeader),d=Object(v["retrieve2"])(c.dimensions,h.dimensions),g=f!==h.seriesLayoutBy||!!p!==!!h.sourceHeader||d;t=g?[np(a,{seriesLayoutBy:f,sourceHeader:p,dimensions:d},s)]:[]}else{var y=n;if(i){var m=this._applyTransform(r);t=m.sourceList,e=m.upstreamSignList}else{var b=y.get("source",!0);t=[np(b,this._getSourceMetaRawOption(),null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,r=n.get("transform",!0),i=n.get("fromTransformResult",!0);if(null!=i){var o="";1!==t.length&&cd(o)}var a=[],s=[];return Object(v["each"])(t,(function(t){t.prepareSource();var e=t.getSource(i||0),n="";null==i||e||cd(n),a.push(e),s.push(t._getVersionSign())})),r?e=Up(r,a,{datasetIndex:n.componentIndex}):null!=i&&(e=[ip(a[0])]),{sourceList:e,upstreamSignList:s}},t.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e1||n>0&&!t.noHeader;return Object(v["each"])(t.blocks,(function(t){var n=md(t);n>=e&&(e=n+ +(r&&(!n||vd(t)&&!t.noHeader)))})),e}return 0}function bd(t,e,n,r){var i=e.noHeader,o=wd(md(e)),a=[],s=e.blocks||[];Object(v["assert"])(!s||Object(v["isArray"])(s)),s=s||[];var l=t.orderMode;if(e.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Object(v["hasOwn"])(u,l)){var c=new Pp(u[l],null);s.sort((function(t,e){return c.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===l&&s.reverse()}Object(v["each"])(s,(function(n,i){var s=e.valueFormatter,l=yd(n)(s?Object(v["extend"])(Object(v["extend"])({},t),{valueFormatter:s}):t,n,i>0?o.html:0,r);null!=l&&a.push(l)}));var h="richText"===t.renderMode?a.join(o.richText):Sd(a.join(""),i?n:o.html);if(i)return h;var f=Uc(e.header,"ordinal",t.useUTC),p=fd(r,t.renderMode).nameStyle;return"richText"===t.renderMode?Ad(t,f,p)+o.richText+h:Sd('
'+ot(f)+"
"+h,n)}function xd(t,e,n,r){var i=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=t.useUTC,c=e.valueFormatter||t.valueFormatter||function(t){return t=Object(v["isArray"])(t)?t:[t],Object(v["map"])(t,(function(t,e){return Uc(t,Object(v["isArray"])(p)?p[e]:p,u)}))};if(!o||!a){var h=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",i),f=o?"":Uc(l,"ordinal",u),p=e.valueType,d=a?[]:c(e.value),g=!s||!o,y=!s&&o,m=fd(r,i),b=m.nameStyle,x=m.valueStyle;return"richText"===i?(s?"":h)+(o?"":Ad(t,f,b))+(a?"":Id(t,d,g,y,x)):Sd((s?"":h)+(o?"":Od(f,!s,b))+(a?"":Md(d,g,y,x)),n)}}function _d(t,e,n,r,i,o){if(t){var a=yd(t),s={useUTC:i,renderMode:n,orderMode:r,markupStyleCreator:e,valueFormatter:t.valueFormatter};return a(s,t,0,o)}}function wd(t){return{html:pd[t],richText:dd[t]}}function Sd(t,e){var n='
',r="margin: "+e+"px 0 0";return'
'+t+n+"
"}function Od(t,e,n){var r=e?"margin-left:2px":"";return''+ot(t)+""}function Md(t,e,n,r){var i=n?"10px":"20px",o=e?"float:right;margin-left:"+i:"";return t=Object(v["isArray"])(t)?t:[t],''+Object(v["map"])(t,(function(t){return ot(t)})).join("  ")+""}function Ad(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Id(t,e,n,r,i){var o=[i],a=r?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(Object(v["isArray"])(e)?e.join(" "):e,o)}function Td(t,e){var n=t.getData().getItemVisual(e,"style"),r=n[t.visualDrawType];return Qc(r)}function Cd(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var Dd=function(){function t(){this.richTextStyles={},this._nextStyleNameId=xi()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var r="richText"===n?this._generateStyleName():null,i=Zc({color:e,type:t,renderMode:n,markerId:r});return Object(v["isString"])(i)?i:(this.richTextStyles[r]=i.style,i.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};Object(v["isArray"])(e)?Object(v["each"])(e,(function(t){return Object(v["extend"])(n,t)})):Object(v["extend"])(n,e);var r=this._generateStyleName();return this.richTextStyles[r]=n,"{"+r+"|"+t+"}"},t}();function kd(t){var e,n,r,i,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),c=u.length,h=o.getRawValue(a),f=Object(v["isArray"])(h),p=Td(o,a);if(c>1||f&&!c){var d=Ld(h,o,a,u,p);e=d.inlineValues,n=d.inlineValueTypes,r=d.blocks,i=d.inlineValues[0]}else if(c){var g=l.getDimensionInfo(u[0]);i=e=wp(l,a,u[0]),n=g.type}else i=e=f?h[0]:h;var y=Fi(o),m=y&&o.name||"",b=l.getName(a),x=s?m:b;return gd("section",{header:m,noHeader:s||!y,sortParam:i,blocks:[gd("nameValue",{markerType:"item",markerColor:p,name:x,noName:!Object(v["trim"])(x),value:e,valueType:n})].concat(r||[])})}function Ld(t,e,n,r,i){var o=e.getData(),a=Object(v["reduce"])(t,(function(t,e,n){var r=o.getDimensionInfo(n);return t||r&&!1!==r.tooltip&&null!=r.displayName}),!1),s=[],l=[],u=[];function c(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(gd("nameValue",{markerType:"subItem",markerColor:i,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return r.length?Object(v["each"])(r,(function(t){c(wp(o,n,t),t)})):Object(v["each"])(t,c),{inlineValues:s,inlineValueTypes:l,blocks:u}}var jd=Xi();function Pd(t,e){return t.getName(e)||t.getId(e)}var Ed="__universalTransitionEnabled",Rd=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return d(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=Ap({count:Bd,reset:Vd}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n);var r=jd(this).sourceManager=new sd(this);r.prepareSource();var i=this.getInitialData(t,n);Gd(i,this),this.dataTask.context.data=i,jd(this).dataBeforeProcessed=i,Nd(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=ch(this),r=n?fh(t):{},i=this.subType;yh.hasClass(i)&&(i+="Series"),v["merge"](t,e.getTheme().get(this.subType)),v["merge"](t,this.getDefaultOption()),Ii(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&hh(t,r,n)},e.prototype.mergeOption=function(t,e){t=v["merge"](this.option,t,!0),this.fillDataTextStyle(t.data);var n=ch(this);n&&hh(this.option,t,n);var r=jd(this).sourceManager;r.dirty(),r.prepareSource();var i=this.getInitialData(t,e);Gd(i,this),this.dataTask.dirty(),this.dataTask.context.data=i,jd(this).dataBeforeProcessed=i,Nd(this),this._initSelectedMapFromData(i)},e.prototype.fillDataTextStyle=function(t){if(t&&!v["isTypedArray"](t))for(var e=["show"],n=0;nthis.getShallow("animationThreshold")&&(e=!1),!!e},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var r=this.ecModel,i=Wh.prototype.getColorFromPalette.call(this,t,e,n);return i||(i=r.getColorFromPalette(t,e,n)),i},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var r=this.option.selectedMode,i=this.getData(e);if("series"===r||"all"===n)return this.option.selectedMap={},void(this._selectedDataIndicesMap={});for(var o=0;o=0&&n.push(i)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;if(!n)return!1;var r=this.getData(e);return("all"===n||n[Pd(r,t)])&&!r.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this[Ed])return!0;var t=this.option.universalTransition;return!!t&&(!0===t||t&&t.enabled)},e.prototype._innerSelect=function(t,e){var n,r,i=this.option,o=i.selectedMode,a=e.length;if(o&&a)if("series"===o)i.selectedMap="all";else if("multiple"===o){v["isObject"](i.selectedMap)||(i.selectedMap={});for(var s=i.selectedMap,l=0;l0&&this._innerSelect(t,e)}},e.registerClass=function(t){return yh.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(yh);function Nd(t){var e=t.name;Fi(t)||(t.name=zd(t)||e)}function zd(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),r=[];return v["each"](n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&r.push(n.displayName)})),r.join(" ")}function Bd(t){return t.model.getRawData().count()}function Vd(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Fd}function Fd(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Gd(t,e){v["each"](v["concatArray"](t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,v["curry"](Hd,e))}))}function Hd(t,e){var n=Wd(t);return n&&n.setOutputEnd((e||this).count()),e}function Wd(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var r=n.currentTask;if(r){var i=r.agentStubMap;i&&(r=i.get(t.uid))}return r}}v["mixin"](Rd,Op),v["mixin"](Rd,Wh),go(Rd,yh);var Ud=Rd,Yd=function(){function t(){this.group=new Nr,this.uid=$u("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,r){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,r){},t.prototype.updateLayout=function(t,e,n,r){},t.prototype.updateVisual=function(t,e,n,r){},t.prototype.toggleBlurSeries=function(t,e,n){},t.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)},t}();fo(Yd),xo(Yd);var $d=Yd;function Xd(){var t=Xi();return function(e){var n=t(e),r=e.pipelineContext,i=!!n.large,o=!!n.progressiveRender,a=n.large=!(!r||!r.large),s=n.progressiveRender=!(!r||!r.progressiveRender);return!(i===a&&o===s)&&"reset"}}var qd=Ea.CMD,Zd=[[],[],[]],Kd=Math.sqrt,Jd=Math.atan2;function Qd(t,e){if(e){var n,r,i,o,a,s,l=t.data,u=t.len(),c=qd.M,h=qd.C,f=qd.L,p=qd.R,d=qd.A,g=qd.Q;for(i=0,o=0;i1&&(a*=tg(d),s*=tg(d));var g=(i===o?-1:1)*tg((a*a*(s*s)-a*a*(p*p)-s*s*(f*f))/(a*a*(p*p)+s*s*(f*f)))||0,v=g*a*p/s,y=g*-s*f/a,m=(t+n)/2+ng(h)*v-eg(h)*y,b=(e+r)/2+eg(h)*v+ng(h)*y,x=ag([1,0],[(f-v)/a,(p-y)/s]),_=[(f-v)/a,(p-y)/s],w=[(-1*f-v)/a,(-1*p-y)/s],S=ag(_,w);if(og(_,w)<=-1&&(S=rg),og(_,w)>=1&&(S=0),S<0){var O=Math.round(S/rg*1e6)/1e6;S=2*rg+O%2*rg}c.addData(u,m,b,a,s,x,S,h,o)}var lg=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,ug=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function cg(t){var e=new Ea;if(!t)return e;var n,r=0,i=0,o=r,a=i,s=Ea.CMD,l=t.match(lg);if(!l)return e;for(var u=0;uD*D+k*k&&(O=A,M=I),{cx:O,cy:M,x0:-c,y0:-h,x1:O*(i/_-1),y1:M*(i/_-1)}}function Ng(t){var e;if(Object(v["isArray"])(t)){var n=t.length;if(!n)return t;e=1===n?[t[0],t[0],0,0]:2===n?[t[0],t[0],t[1],t[1]]:3===n?t.concat(t[2]):t}else e=[t,t,t,t];return e}function zg(t,e){var n,r=Lg(e.r,0),i=Lg(e.r0||0,0),o=r>0,a=i>0;if(o||a){if(o||(r=i,i=0),i>r){var s=r;r=i,i=s}var l=e.startAngle,u=e.endAngle;if(!isNaN(l)&&!isNaN(u)){var c=e.cx,h=e.cy,f=!!e.clockwise,p=Dg(u-l),d=p>Mg&&p%Mg;if(d>Pg&&(p=d),r>Pg)if(p>Mg-Pg)t.moveTo(c+r*Ig(l),h+r*Ag(l)),t.arc(c,h,r,l,u,!f),i>Pg&&(t.moveTo(c+i*Ig(u),h+i*Ag(u)),t.arc(c,h,i,u,l,f));else{var g=void 0,v=void 0,y=void 0,m=void 0,b=void 0,x=void 0,_=void 0,w=void 0,S=void 0,O=void 0,M=void 0,A=void 0,I=void 0,T=void 0,C=void 0,D=void 0,k=r*Ig(l),L=r*Ag(l),j=i*Ig(u),P=i*Ag(u),E=p>Pg;if(E){var R=e.cornerRadius;R&&(n=Ng(R),g=n[0],v=n[1],y=n[2],m=n[3]);var N=Dg(r-i)/2;if(b=jg(N,y),x=jg(N,m),_=jg(N,g),w=jg(N,v),M=S=Lg(b,x),A=O=Lg(_,w),(S>Pg||O>Pg)&&(I=r*Ig(u),T=r*Ag(u),C=i*Ig(l),D=i*Ag(l),pPg){var U=jg(y,M),Y=jg(m,M),$=Rg(C,D,k,L,r,U,f),X=Rg(I,T,j,P,r,Y,f);t.moveTo(c+$.cx+$.x0,h+$.cy+$.y0),M0&&t.arc(c+$.cx,h+$.cy,U,Cg($.y0,$.x0),Cg($.y1,$.x1),!f),t.arc(c,h,r,Cg($.cy+$.y1,$.cx+$.x1),Cg(X.cy+X.y1,X.cx+X.x1),!f),Y>0&&t.arc(c+X.cx,h+X.cy,Y,Cg(X.y1,X.x1),Cg(X.y0,X.x0),!f))}else t.moveTo(c+k,h+L),t.arc(c,h,r,l,u,!f);else t.moveTo(c+k,h+L);if(i>Pg&&E)if(A>Pg){U=jg(g,A),Y=jg(v,A),$=Rg(j,P,I,T,i,-Y,f),X=Rg(k,L,C,D,i,-U,f);t.lineTo(c+$.cx+$.x0,h+$.cy+$.y0),A0&&t.arc(c+$.cx,h+$.cy,Y,Cg($.y0,$.x0),Cg($.y1,$.x1),!f),t.arc(c,h,i,Cg($.cy+$.y1,$.cx+$.x1),Cg(X.cy+X.y1,X.cx+X.x1),f),U>0&&t.arc(c+X.cx,h+X.cy,U,Cg(X.y1,X.x1),Cg(X.y0,X.x0),!f))}else t.lineTo(c+j,h+P),t.arc(c,h,i,u,l,f);else t.lineTo(c+j,h+P)}else t.moveTo(c,h);t.closePath()}}}var Bg=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0}return t}(),Vg=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.getDefaultShape=function(){return new Bg},e.prototype.buildPath=function(t,e){zg(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(ss);Vg.prototype.type="sector";var Fg=Vg,Gg=function(){function t(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return t}(),Hg=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.getDefaultShape=function(){return new Gg},e.prototype.buildPath=function(t,e){var n=e.cx,r=e.cy,i=2*Math.PI;t.moveTo(n+e.r,r),t.arc(n,r,e.r,0,i,!1),t.moveTo(n+e.r0,r),t.arc(n,r,e.r0,0,i,!0)},e}(ss);Hg.prototype.type="ring";var Wg=Hg;function Ug(t,e,n,r){var i,o,a,s,l=[],u=[],c=[],h=[];if(r){a=[1/0,1/0],s=[-1/0,-1/0];for(var f=0,p=t.length;f=2){if(r){var o=Ug(i,r,n,e.smoothConstraint);t.moveTo(i[0][0],i[0][1]);for(var a=i.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],c=i[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{t.moveTo(i[0][0],i[0][1]);s=1;for(var h=i.length;sxv[1]){if(a=!1,i)return a;var u=Math.abs(xv[0]-bv[1]),c=Math.abs(bv[0]-xv[1]);Math.min(u,c)>r.len()&&(uMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function $v(t){return!t.isGroup}function Xv(t){return null!=t.shape}function qv(t,e,n){if(t&&e){var r=i(t);e.traverse((function(t){if($v(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),lu(t,i,n,Hs(t).dataIndex)}}}))}function i(t){var e={};return t.traverse((function(t){$v(t)&&t.anid&&(e[t.anid]=t)})),e}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return Xv(t)&&(e.shape=Object(v["extend"])({},t.shape)),e}}function Zv(t,e){return Object(v["map"])(t,(function(t){var n=t[0];n=Tv(n,e.x),n=Cv(n,e.x+e.width);var r=t[1];return r=Tv(r,e.y),r=Cv(r,e.y+e.height),[n,r]}))}function Kv(t,e){var n=Tv(t.x,e.x),r=Cv(t.x+t.width,e.x+e.width),i=Tv(t.y,e.y),o=Cv(t.y+t.height,e.y+e.height);if(r>=n&&o>=i)return{x:n,y:i,width:r-n,height:o-i}}function Jv(t,e,n){var r=Object(v["extend"])({rectHover:!0},e),i=r.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(i.image=t.slice(8),Object(v["defaults"])(i,n),new gs(r)):Rv(t.replace("path://",""),r,n,"center")}function Qv(t,e,n,r,i){for(var o=0,a=i[i.length-1];o1)return!1;var v=ey(p,d,c,h)/f;return!(v<0||v>1)}function ey(t,e,n,r){return t*r-n*e}function ny(t){return t<=1e-6&&t>=-1e-6}function ry(t){var e=t.itemTooltipOption,n=t.componentModel,r=t.itemName,i=Object(v["isString"])(e)?{formatter:e}:e,o=n.mainType,a=n.componentIndex,s={componentType:o,name:r,$vars:["name"]};s[o+"Index"]=a;var l=t.formatterParamsExtra;l&&Object(v["each"])(Object(v["keys"])(l),(function(t){Object(v["hasOwn"])(s,t)||(s[t]=l[t],s.$vars.push(t))}));var u=Hs(t.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:r,option:Object(v["defaults"])({content:r,formatterParams:s},i)}}function iy(t,e){var n;t.isGroup&&(n=e(t)),n||t.traverse(e)}function oy(t,e){if(t)if(Object(v["isArray"])(t))for(var n=0;n=0?h():c=setTimeout(h,-i),l=r};return f.clear=function(){c&&(clearTimeout(c),c=null)},f.debounceNextCall=function(t){s=t},f}function by(t,e,n,r){var i=t[e];if(i){var o=i[gy]||i,a=i[yy],s=i[vy];if(s!==n||a!==r){if(null==n||!r)return t[e]=o;i=t[e]=my(o,n,"debounce"===r),i[gy]=o,i[yy]=r,i[vy]=n}return i}}function xy(t,e){var n=t[e];n&&n[gy]&&(n.clear&&n.clear(),t[e]=n[gy])}var _y=Xi(),wy={itemStyle:_o(Fu,!0),lineStyle:_o(zu,!0)},Sy={lineStyle:"stroke",itemStyle:"fill"};function Oy(t,e){var n=t.visualStyleMapper||wy[e];return n||(console.warn("Unknown style type '"+e+"'."),wy.itemStyle)}function My(t,e){var n=t.visualDrawType||Sy[e];return n||(console.warn("Unknown style type '"+e+"'."),"fill")}var Ay={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),r=t.visualStyleAccessPath||"itemStyle",i=t.getModel(r),o=Oy(t,r),a=o(i),s=i.getShallow("decal");s&&(n.setVisual("decal",s),s.dirty=!0);var l=My(t,r),u=a[l],c=Object(v["isFunction"])(u)?u:null,h="auto"===a.fill||"auto"===a.stroke;if(!a[l]||c||h){var f=t.getColorFromPalette(t.name,null,e.getSeriesCount());a[l]||(a[l]=f,n.setVisual("colorFromPalette",!0)),a.fill="auto"===a.fill||Object(v["isFunction"])(a.fill)?f:a.fill,a.stroke="auto"===a.stroke||Object(v["isFunction"])(a.stroke)?f:a.stroke}if(n.setVisual("style",a),n.setVisual("drawType",l),!e.isSeriesFiltered(t)&&c)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var r=t.getDataParams(n),i=Object(v["extend"])({},a);i[l]=c(r),e.setItemVisual(n,"style",i)}}}},Iy=new Uu,Ty={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),r=t.visualStyleAccessPath||"itemStyle",i=Oy(t,r),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[r]){Iy.option=n[r];var a=i(Iy),s=t.ensureUniqueItemVisual(e,"style");Object(v["extend"])(s,a),Iy.option.decal&&(t.setItemVisual(e,"decal",Iy.option.decal),Iy.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Cy={performRawSeries:!0,overallReset:function(t){var e=Object(v["createHashMap"])();t.eachSeries((function(t){var n=t.getColorBy();if(!t.isColorBySeries()){var r=t.type+"-"+n,i=e.get(r);i||(i={},e.set(r,i)),_y(t).scope=i}})),t.eachSeries((function(e){if(!e.isColorBySeries()&&!t.isSeriesFiltered(e)){var n=e.getRawData(),r={},i=e.getData(),o=_y(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=My(e,a);i.each((function(t){var e=i.getRawIndex(t);r[e]=t})),n.each((function(t){var a=r[t],l=i.getItemVisual(a,"colorFromPalette");if(l){var u=i.ensureUniqueItemVisual(a,"style"),c=n.getName(t)||t+"",h=n.count();u[s]=e.getColorFromPalette(c,o,h)}}))}}))}},Dy=Math.PI;function ky(t,e){e=e||{},v["defaults"](e,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Nr,r=new Os({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(r);var i,o=new Gs({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new Os({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&(i=new cv({shape:{startAngle:-Dy/2,endAngle:-Dy/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),i.animateShape(!0).when(1e3,{endAngle:3*Dy/2}).start("circularInOut"),i.animateShape(!0).when(1e3,{startAngle:3*Dy/2}).delay(300).start("circularInOut"),n.add(i)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&i.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),r.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n}var Ly=function(){function t(t,e,n,r){this._stageTaskMap=Object(v["createHashMap"])(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),r=this._visualHandlers=r.slice(),this._allHandlers=n.concat(r)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),r=n.context,i=!e&&n.progressiveEnabled&&(!r||r.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=i?n.step:null,a=r&&r.modDataCount,s=null!=a?Math.ceil(a/o):null;return{step:o,modBy:s,modDataCount:a}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),r=t.getData(),i=r.count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,a=t.get("large")&&i>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:a}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=Object(v["createHashMap"])();t.eachSeries((function(t){var r=t.getProgressive(),i=t.uid;n.set(i,{id:i,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:r&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(r||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;Object(v["each"])(this._allHandlers,(function(r){var i=t.get(r.uid)||t.set(r.uid,{}),o="";Object(v["assert"])(!(r.reset&&r.overallReset),o),r.reset&&this._createSeriesStageTask(r,i,e,n),r.overallReset&&this._createOverallStageTask(r,i,e,n)}),this)},t.prototype.prepareView=function(t,e,n,r){var i=t.renderTask,o=i.context;o.model=e,o.ecModel=n,o.api=r,i.__block=!t.incrementalPrepareRender,this._pipe(e,i)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,r){r=r||{};var i=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}Object(v["each"])(t,(function(t,s){if(!r.visualType||r.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,c=l.overallTask;if(c){var h,f=c.agentStubMap;f.each((function(t){a(r,t)&&(t.dirty(),h=!0)})),h&&c.dirty(),o.updatePayload(c,n);var p=o.getPerformArgs(c,r.block);f.each((function(t){t.perform(p)})),c.perform(p)&&(i=!0)}else u&&u.each((function(s,l){a(r,s)&&s.dirty();var u=o.getPerformArgs(s,r.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(i=!0)}))}})),this.unfinished=i||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,r){var i=this,o=e.seriesTaskMap,a=e.seriesTaskMap=Object(v["createHashMap"])(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||Ap({plan:Ny,reset:zy,count:Fy}));l.context={model:e,ecModel:n,api:r,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:i},i._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,r).each(u)},t.prototype._createOverallStageTask=function(t,e,n,r){var i=this,o=e.overallTask=e.overallTask||Ap({reset:jy});o.context={ecModel:n,api:r,overallReset:t.overallReset,scheduler:i};var a=o.agentStubMap,s=o.agentStubMap=Object(v["createHashMap"])(),l=t.seriesType,u=t.getTargetSeries,c=!0,h=!1,f="";function p(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(h=!0,Ap({reset:Py,onDirty:Ry})));n.context={model:t,overallProgress:c},n.agent=o,n.__block=c,i._pipe(t,n)}Object(v["assert"])(!t.createOnAllSeries,f),l?n.eachRawSeriesByType(l,p):u?u(n,r).each(p):(c=!1,Object(v["each"])(n.getSeries(),p)),h&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,r=this._pipelineMap.get(n);!r.head&&(r.head=e),r.tail&&r.tail.pipe(e),r.tail=e,e.__idxInPipeline=r.count++,e.__pipeline=r},t.wrapStageHandler=function(t,e){return Object(v["isFunction"])(t)&&(t={overallReset:t,seriesType:Gy(t)}),t.uid=$u("stageHandler"),e&&(t.visualType=e),t},t}();function jy(t){t.overallReset(t.ecModel,t.api,t.payload)}function Py(t){return t.overallProgress&&Ey}function Ey(){this.agent.dirty(),this.getDownstream().dirty()}function Ry(){this.agent&&this.agent.dirty()}function Ny(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function zy(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Ai(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?Object(v["map"])(e,(function(t,e){return Vy(e)})):By}var By=Vy(0);function Vy(t){return function(e,n){var r=n.data,i=n.resetDefines[t];if(i&&i.dataEach)for(var o=e.start;o0&&c===i.length-u.length){var h=i.slice(0,c);"data"!==h&&(e.mainType=h,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(i)&&(n[i]=t,s=!0),s||(r[i]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:r}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,i=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,i,"name")&&u(l,i,"dataIndex")&&u(l,i,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,r,i));function u(t,e,n,r){return null==t[n]||e[r||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),rm=["symbol","symbolSize","symbolRotate","symbolOffset"],im=rm.concat(["symbolKeepAspect"]),om={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendIcon&&n.setVisual("legendIcon",t.legendIcon),t.hasSymbolVisual){for(var r={},i={},o=!1,a=0;a=0&&Dm(l)?l:.5;var u=t.createRadialGradient(a,s,0,a,s,l);return u}function jm(t,e,n){for(var r="radial"===e.type?Lm(t,e,n):km(t,e,n),i=e.colorStops,o=0;o0?"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:Object(v["isNumber"])(t)?[t]:Object(v["isArray"])(t)?t:null:null}function zm(t){var e=t.style,n=e.lineDash&&e.lineWidth>0&&Nm(e.lineDash,e.lineWidth),r=e.lineDashOffset;if(n){var i=e.strokeNoScale&&t.getLineScale?t.getLineScale():1;i&&1!==i&&(n=Object(v["map"])(n,(function(t){return t/i})),r/=i)}return[n,r]}var Bm=new Ea(!0);function Vm(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Fm(t){return"string"===typeof t&&"none"!==t}function Gm(t){var e=t.fill;return null!=e&&"none"!==e}function Hm(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Wm(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Um(t,e,n){var r=Io(e.image,e.__image,n);if(Co(r)){var i=t.createPattern(r,e.repeat||"repeat");if("function"===typeof DOMMatrix&&i&&i.setTransform){var o=new DOMMatrix;o.translateSelf(e.x||0,e.y||0),o.rotateSelf(0,0,(e.rotation||0)*v["RADIAN_TO_DEGREE"]),o.scaleSelf(e.scaleX||1,e.scaleY||1),i.setTransform(o)}return i}}function Ym(t,e,n,r){var i,o=Vm(n),a=Gm(n),s=n.strokePercent,l=s<1,u=!e.path;e.silent&&!l||!u||e.createPathProxy();var c=e.path||Bm,h=e.__dirty;if(!r){var f=n.fill,p=n.stroke,d=a&&!!f.colorStops,g=o&&!!p.colorStops,v=a&&!!f.image,y=o&&!!p.image,m=void 0,b=void 0,x=void 0,_=void 0,w=void 0;(d||g)&&(w=e.getBoundingRect()),d&&(m=h?jm(t,f,w):e.__canvasFillGradient,e.__canvasFillGradient=m),g&&(b=h?jm(t,p,w):e.__canvasStrokeGradient,e.__canvasStrokeGradient=b),v&&(x=h||!e.__canvasFillPattern?Um(t,f,e):e.__canvasFillPattern,e.__canvasFillPattern=x),y&&(_=h||!e.__canvasStrokePattern?Um(t,p,e):e.__canvasStrokePattern,e.__canvasStrokePattern=x),d?t.fillStyle=m:v&&(x?t.fillStyle=x:a=!1),g?t.strokeStyle=b:y&&(_?t.strokeStyle=_:o=!1)}var S,O,M=e.getGlobalScale();c.setScale(M[0],M[1],e.segmentIgnoreThreshold),t.setLineDash&&n.lineDash&&(i=zm(e),S=i[0],O=i[1]);var A=!0;(u||h&pe)&&(c.setDPR(t.dpr),l?c.setContext(null):(c.setContext(t),A=!1),c.reset(),e.buildPath(c,e.shape,r),c.toStatic(),e.pathUpdated()),A&&c.rebuildPath(t,l?s:1),S&&(t.setLineDash(S),t.lineDashOffset=O),r||(n.strokeFirst?(o&&Wm(t,n),a&&Hm(t,n)):(a&&Hm(t,n),o&&Wm(t,n))),S&&t.setLineDash([])}function $m(t,e,n){var r=e.__image=Io(n.image,e.__image,e,e.onload);if(r&&Co(r)){var i=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=r.width/r.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=r.width,s=r.height),n.sWidth&&n.sHeight){var u=n.sx||0,c=n.sy||0;t.drawImage(r,u,c,n.sWidth,n.sHeight,i,o,a,s)}else if(n.sx&&n.sy){u=n.sx,c=n.sy;var h=a-u,f=s-c;t.drawImage(r,u,c,h,f,i,o,a,s)}else t.drawImage(r,i,o,a,s)}}function Xm(t,e,n){var r,i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||fr["a"],t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var o=void 0,a=void 0;t.setLineDash&&n.lineDash&&(r=zm(e),o=r[0],a=r[1]),o&&(t.setLineDash(o),t.lineDashOffset=a),n.strokeFirst?(Vm(n)&&t.strokeText(i,n.x,n.y),Gm(n)&&t.fillText(i,n.x,n.y)):(Gm(n)&&t.fillText(i,n.x,n.y),Vm(n)&&t.strokeText(i,n.x,n.y)),o&&t.setLineDash([])}}var qm=["shadowBlur","shadowOffsetX","shadowOffsetY"],Zm=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Km(t,e,n,r,i){var o=!1;if(!r&&(n=n||{},e===n))return!1;if(r||e.opacity!==n.opacity){lb(t,i),o=!0;var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?Yo.opacity:a}(r||e.blend!==n.blend)&&(o||(lb(t,i),o=!0),t.globalCompositeOperation=e.blend||Yo.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,e,n){if(!this[$b])if(this._disposed)Ix(this.id);else{var r,i,o;if(Object(v["isObject"])(e)&&(n=e.lazyUpdate,r=e.silent,i=e.replaceMerge,o=e.transition,e=e.notMerge),this[$b]=!0,!this._model||e){var a=new wf(this._api),s=this._theme,l=this._model=new uf;l.scheduler=this._scheduler,l.ssr=this._ssr,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:i},kx);var u={seriesTransition:o,optionChanged:!0};if(n)this[Xb]={silent:r,updateParams:u},this[$b]=!1,this.getZr().wakeUp();else{try{ix(this),sx.update.call(this,null,u)}catch(c){throw this[Xb]=null,this[$b]=!1,c}this._ssr||this._zr.flush(),this[Xb]=null,this[$b]=!1,hx.call(this,r),fx.call(this,r)}}},e.prototype.setTheme=function(){Jh("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||g["a"].hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){t=t||{};var e=this._zr.painter;return e.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){t=t||{};var e=this._zr.painter;return e.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(g["a"].svgSupported){var t=this._zr,e=t.storage.getDisplayList();return Object(v["each"])(e,(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){t=t||{};var e=t.excludeComponents,n=this._model,r=[],i=this;Object(v["each"])(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=i._componentsMap[t.__viewId];e.group.ignore||(r.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Object(v["each"])(r,(function(t){t.group.ignore=!1})),o}Ix(this.id)},e.prototype.getConnectedDataURL=function(t){if(!this._disposed){var e="svg"===t.type,n=this.group,r=Math.min,i=Math.max,o=1/0;if(Rx[n]){var a=o,s=o,l=-o,u=-o,c=[],h=t&&t.pixelRatio||this.getDevicePixelRatio();Object(v["each"])(Ex,(function(o,h){if(o.group===n){var f=e?o.getZr().painter.getSvgDom().innerHTML:o.renderToCanvas(Object(v["clone"])(t)),p=o.getDom().getBoundingClientRect();a=r(p.left,a),s=r(p.top,s),l=i(p.right,l),u=i(p.bottom,u),c.push({dom:f,left:p.left,top:p.top})}})),a*=h,s*=h,l*=h,u*=h;var f=l-a,p=u-s,d=fr["d"].createCanvas(),g=Hr(d,{renderer:e?"svg":"canvas"});if(g.resize({width:f,height:p}),e){var y="";return Object(v["each"])(c,(function(t){var e=t.left-a,n=t.top-s;y+=''+t.dom+""})),g.painter.getSvgRoot().innerHTML=y,t.connectedBackgroundColor&&g.painter.setBackgroundColor(t.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}return t.connectedBackgroundColor&&g.add(new Os({shape:{x:0,y:0,width:f,height:p},style:{fill:t.connectedBackgroundColor}})),Object(v["each"])(c,(function(t){var e=new gs({style:{x:t.left*h-a,y:t.top*h-s,image:t.dom}});g.add(e)})),g.refreshImmediately(),d.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}Ix(this.id)},e.prototype.convertToPixel=function(t,e){return lx(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return lx(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){if(!this._disposed){var n,r=this._model,i=Zi(r,t);return Object(v["each"])(i,(function(t,r){r.indexOf("Models")>=0&&Object(v["each"])(t,(function(t){var i=t.coordinateSystem;if(i&&i.containPoint)n=n||!!i.containPoint(e);else if("seriesModels"===r){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n}Ix(this.id)},e.prototype.getVisual=function(t,e){var n=this._model,r=Zi(n,t,{defaultMainType:"series"}),i=r.seriesModel;var o=i.getData(),a=r.hasOwnProperty("dataIndexInside")?r.dataIndexInside:r.hasOwnProperty("dataIndex")?o.indexOfRawIndex(r.dataIndex):null;return null!=a?sm(o,a,e):lm(o,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t=this;Object(v["each"])(Ax,(function(e){var n=function(n){var r,i=t.getModel(),o=n.target,a="globalout"===e;if(a?r={}:o&&pm(o,(function(t){var e=Hs(t);if(e&&null!=e.dataIndex){var n=e.dataModel||i.getSeriesByIndex(e.seriesIndex);return r=n&&n.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return r=Object(v["extend"])({},e.eventData),!0}),!0),r){var s=r.componentType,l=r.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=r.seriesIndex);var u=s&&null!=l&&i.getComponent(s,l),c=u&&t["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,r.event=n,r.type=e,t._$eventProcessor.eventInfo={targetEl:o,packedEvent:r,model:u,view:c},t.trigger(e,r)}};n.zrEventfulCallAtLast=!0,t._zr.on(e,n,t)})),Object(v["each"])(Cx,(function(e,n){t._messageCenter.on(n,(function(t){this.trigger(n,t)}),t)})),Object(v["each"])(["selectchanged"],(function(e){t._messageCenter.on(e,(function(t){this.trigger(e,t)}),t)})),fm(this._messageCenter,this,this._api)},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Ix(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Ix(this.id);else{this._disposed=!0;var t=this.getDom();t&&eo(this.getDom(),Bx,"");var e=this,n=e._api,r=e._model;Object(v["each"])(e._componentsViews,(function(t){t.dispose(r,n)})),Object(v["each"])(e._chartsViews,(function(t){t.dispose(r,n)})),e._zr.dispose(),e._dom=e._model=e._chartsMap=e._componentsMap=e._chartsViews=e._componentsViews=e._scheduler=e._api=e._zr=e._throttledZrFlush=e._theme=e._coordSysMgr=e._messageCenter=null,delete Ex[e.id]}},e.prototype.resize=function(t){if(!this[$b])if(this._disposed)Ix(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),r=t&&t.silent;this[Xb]&&(null==r&&(r=this[Xb].silent),n=!0,this[Xb]=null),this[$b]=!0;try{n&&ix(this),sx.update.call(this,{type:"resize",animation:Object(v["extend"])({duration:0},t&&t.animation)})}catch(i){throw this[$b]=!1,i}this[$b]=!1,hx.call(this,r),fx.call(this,r)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Ix(this.id);else if(Object(v["isObject"])(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Px[t]){var n=Px[t](this._api,e),r=this._zr;this._loadingFX=n,r.add(n)}},e.prototype.hideLoading=function(){this._disposed?Ix(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=Object(v["extend"])({},t);return e.type=Cx[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Ix(this.id);else if(Object(v["isObject"])(e)||(e={silent:!!e}),Tx[t.type]&&this._model)if(this[$b])this._pendingActions.push(t);else{var n=e.silent;cx.call(this,t,n);var r=e.flush;r?this._zr.flush():!1!==r&&g["a"].browser.weChat&&this._throttledZrFlush(),hx.call(this,n),fx.call(this,n)}},e.prototype.updateLabelLayout=function(){Ob.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed)Ix(this.id);else{var e=t.seriesIndex,n=this.getModel(),r=n.getSeriesByIndex(e);0,r.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))}function e(t){var e=[],n=[],r=!1;if(t.eachComponent((function(t,i){var o=i.get("zlevel")||0,a=i.get("z")||0,s=i.getZLevelKey();r=r||!!s,("series"===t?n:e).push({zlevel:o,z:a,idx:i.componentIndex,type:t,key:s})})),r){var i,o,a=e.concat(n);ce(a,(function(t,e){return t.zlevel===e.zlevel?t.z-e.z:t.zlevel-e.zlevel})),Object(v["each"])(a,(function(e){var n=t.getComponent(e.type,e.idx),r=e.zlevel,a=e.key;null!=i&&(r=Math.max(i,r)),a?(r===i&&a!==o&&r++,o=a):o&&(r===i&&r++,o=""),i=r,n.setZLevel(r)}))}}function n(t){for(var e=[],n=t.currentStates,r=0;re.get("hoverLayerThreshold")&&!g["a"].node&&!g["a"].worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.eachRendered((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}function i(t,e){var n=t.get("blendMode")||null;e.eachRendered((function(t){t.isGroup||(t.style.blend=n)}))}function o(t,e){if(!t.preventAutoZ){var n=t.get("z")||0,r=t.get("zlevel")||0;e.eachRendered((function(t){return a(t,n,r,-1/0),!0}))}}function a(t,e,n,r){var i=t.getTextContent(),o=t.getTextGuideLine(),s=t.isGroup;if(s)for(var l=t.childrenRef(),u=0;u0?{duration:o,delay:r.get("delay"),easing:r.get("easing")}:null;e.eachRendered((function(t){if(t.states&&t.states.emphasis){if(cu(t))return;if(t instanceof ss&&iu(t),t.__dirty){var e=t.prevStates;e&&t.useStates(e)}if(i){t.stateTransition=a;var r=t.getTextContent(),o=t.getTextGuideLine();r&&(r.stateTransition=a),o&&(o.stateTransition=a)}t.__dirty&&n(t)}}))}ix=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),ox(t,!0),ox(t,!1),e.plan()},ox=function(t,e){for(var n=t._model,r=t._scheduler,i=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l=0)){i_.push(n);var o=$y.wrapStageHandler(n,i);o.__prio=e,o.__raw=n,t.push(o)}}function a_(t,e){Px[t]=e}function s_(t){Object(fr["e"])({createCanvas:t})}function l_(t,e,n){var r=Ib("registerMap");r&&r(t,e,n)}function u_(t){var e=Ib("getMap");return e&&e(t)}var c_=Wp;r_(zb,Ay),r_(Fb,Ty),r_(Fb,Cy),r_(zb,om),r_(Fb,am),r_(Ub,wb),Xx(Yf),qx(Lb,$f),a_("default",ky),Qx({type:nl,event:nl,update:nl},v["noop"]),Qx({type:rl,event:rl,update:rl},v["noop"]),Qx({type:il,event:il,update:il},v["noop"]),Qx({type:ol,event:ol,update:ol},v["noop"]),Qx({type:al,event:al,update:al},v["noop"]),$x("light",qy),$x("dark",em);var h_={},f_=[],p_={registerPreprocessor:Xx,registerProcessor:qx,registerPostInit:Zx,registerPostUpdate:Kx,registerUpdateLifecycle:Jx,registerAction:Qx,registerCoordinateSystem:t_,registerLayout:n_,registerVisual:r_,registerTransform:c_,registerLoading:a_,registerMap:l_,registerImpl:Ab,PRIORITY:Yb,ComponentModel:yh,ComponentView:$d,SeriesModel:Ud,ChartView:dy,registerComponentModel:function(t){yh.registerClass(t)},registerComponentView:function(t){$d.registerClass(t)},registerSeriesModel:function(t){Ud.registerClass(t)},registerChartView:function(t){dy.registerClass(t)},registerSubTypeDefaulter:function(t,e){yh.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){$r(t,e)}};function d_(t){Object(v["isArray"])(t)?Object(v["each"])(t,(function(t){d_(t)})):Object(v["indexOf"])(f_,t)>=0||(f_.push(t),Object(v["isFunction"])(t)&&(t={install:t}),t.install(p_))}function g_(t){return null==t?0:t.length||1}function v_(t){return t}var y_=function(){function t(t,e,n,r,i,o){this._old=t,this._new=e,this._oldKeyGetter=n||v_,this._newKeyGetter=r||v_,this.context=i,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},r=new Array(t.length),i=new Array(e.length);this._initIndexMap(t,null,r,"_oldKeyGetter"),this._initIndexMap(e,n,i,"_newKeyGetter");for(var o=0;o1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(i,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},r={},i=[],o=[];this._initIndexMap(t,n,i,"_oldKeyGetter"),this._initIndexMap(e,r,o,"_newKeyGetter");for(var a=0;a1&&1===h)this._updateManyToOne&&this._updateManyToOne(u,l),r[s]=null;else if(1===c&&h>1)this._updateOneToMany&&this._updateOneToMany(u,l),r[s]=null;else if(1===c&&1===h)this._update&&this._update(u,l),r[s]=null;else if(c>1&&h>1)this._updateManyToMany&&this._updateManyToMany(u,l),r[s]=null;else if(c>1)for(var f=0;f1)for(var a=0;a30}var j_,P_,E_,R_,N_,z_,B_,V_=v["isObject"],F_=v["map"],G_="undefined"===typeof Int32Array?Array:Int32Array,H_="e\0\0",W_=-1,U_=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],Y_=["_approximateExtent"],$_=function(){function t(t,e){var n;this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var r=!1;C_(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(r=!0,n=t),n=n||["x","y"];for(var i={},o=[],a={},s=!1,l={},u=0;u=e)){var n=this._store,r=n.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,a=r.getSource().sourceFormat,s=a===wh;if(s&&!r.pure)for(var l=[],u=t;u0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,r=n[t];r||(r=n[t]={});var i=r[e];return null==i&&(i=this.getVisual(e),v["isArray"](i)?i=i.slice():V_(i)&&(i=v["extend"]({},i)),r[e]=i),i},t.prototype.setItemVisual=function(t,e,n){var r=this._itemVisuals[t]||{};this._itemVisuals[t]=r,V_(e)?v["extend"](r,e):r[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){V_(t)?v["extend"](this._layout,t):this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?v["extend"](this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel&&this.hostModel.seriesIndex;Ws(n,this.dataType,t,e),this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){v["each"](this._graphicEls,(function(n,r){n&&t&&t.call(e,n,r)}))},t.prototype.cloneShallow=function(e){return e||(e=new t(this._schema?this._schema:F_(this.dimensions,this._getDimInfo,this),this.hostModel)),N_(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(t,e){var n=this[t];v["isFunction"](n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(v["slice"](arguments)))})},t.internalField=function(){j_=function(t){var e=t._invertedIndicesMap;v["each"](e,(function(n,r){var i=t._dimInfos[r],o=i.ordinalMeta,a=t._store;if(o){n=e[r]=new G_(o.categories.length);for(var s=0;s1&&(s+="__ec__"+u),r[e]=s}}}(),t}(),X_=$_;function q_(t,e){return Z_(t,e).dimensions}function Z_(t,e){ep(t)||(t=rp(t)),e=e||{};var n=e.coordDimensions||[],r=e.dimensionsDefine||t.dimensionsDefine||[],i=Object(v["createHashMap"])(),o=[],a=J_(t,n,r,e.dimensionsCount),s=e.canOmitUnusedDimensions&&L_(a),l=r===t.dimensionsDefine,u=l?k_(t):D_(r),c=e.encodeDefine;!c&&e.encodeDefaulter&&(c=e.encodeDefaulter(t,a));for(var h=Object(v["createHashMap"])(c),f=new Jp(a),p=0;p0&&(r.name=i+(o-1)),o++,e.set(i,o)}}function J_(t,e,n,r){var i=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,r||0);return Object(v["each"])(e,(function(t){var e;Object(v["isObject"])(t)&&(e=t.dimsDef)&&(i=Math.max(i,e.length))})),i}function Q_(t,e,n){if(n||e.hasKey(t)){var r=0;while(e.hasKey(t+r))r++;t+=r}return e.set(t,!0),t}var tw=function(){function t(t){this.coordSysDims=[],this.axisMap=Object(v["createHashMap"])(),this.categoryAxisMap=Object(v["createHashMap"])(),this.coordSysName=t}return t}();function ew(t){var e=t.get("coordinateSystem"),n=new tw(e),r=nw[e];if(r)return r(t,n,n.axisMap,n.categoryAxisMap),n}var nw={cartesian2d:function(t,e,n,r){var i=t.getReferringComponents("xAxis",Ji).models[0],o=t.getReferringComponents("yAxis",Ji).models[0];e.coordSysDims=["x","y"],n.set("x",i),n.set("y",o),rw(i)&&(r.set("x",i),e.firstCategoryDimIndex=0),rw(o)&&(r.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,r){var i=t.getReferringComponents("singleAxis",Ji).models[0];e.coordSysDims=["single"],n.set("single",i),rw(i)&&(r.set("single",i),e.firstCategoryDimIndex=0)},polar:function(t,e,n,r){var i=t.getReferringComponents("polar",Ji).models[0],o=i.findAxisModel("radiusAxis"),a=i.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),rw(o)&&(r.set("radius",o),e.firstCategoryDimIndex=0),rw(a)&&(r.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,r){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,r){var i=t.ecModel,o=i.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();Object(v["each"])(o.parallelAxisIndex,(function(t,o){var s=i.getComponent("parallelAxis",t),l=a[o];n.set(l,s),rw(s)&&(r.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function rw(t){return"category"===t.get("type")}function iw(t,e,n){n=n||{};var r,i,o,a=n.byIndex,s=n.stackedCoordDimension;ow(e)?r=e:(i=e.schema,r=i.dimensions,o=e.store);var l,u,c,h,f=!(!t||!t.get("stack"));if(Object(v["each"])(r,(function(t,e){Object(v["isString"])(t)&&(r[e]=t={name:t}),f&&!t.isExtraCoord&&(a||l||!t.ordinalMeta||(l=t),u||"ordinal"===t.type||"time"===t.type||s&&s!==t.coordDim||(u=t))})),!u||a||l||(a=!0),u){c="__\0ecstackresult_"+t.id,h="__\0ecstackedover_"+t.id,l&&(l.createInvertedIndices=!0);var p=u.coordDim,d=u.type,g=0;Object(v["each"])(r,(function(t){t.coordDim===p&&g++}));var y={name:c,coordDim:p,coordDimIndex:g,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:r.length},m={name:h,coordDim:h,coordDimIndex:g+1,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:r.length+1};i?(o&&(y.storeDimIndex=o.ensureCalculationDimension(h,d),m.storeDimIndex=o.ensureCalculationDimension(c,d)),i.appendCalculationDimension(y),i.appendCalculationDimension(m)):(r.push(y),r.push(m))}return{stackedDimension:u&&u.name,stackedByDimension:l&&l.name,isStackedByIndex:a,stackedOverDimension:h,stackResultDimension:c}}function ow(t){return!C_(t.schema)}function aw(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function sw(t,e){return aw(t,e)?t.getCalculationInfo("stackResultDimension"):e}function lw(t,e){var n,r=t.get("coordinateSystem"),i=gf.get(r);return e&&e.coordSysDims&&(n=v["map"](e.coordSysDims,(function(t){var n={name:t},r=e.axisMap.get(t);if(r){var i=r.get("type");n.type=w_(i)}return n}))),n||(n=i&&(i.getDimensionsInfo?i.getDimensionsInfo():i.dimensions.slice())||["x","y"]),n}function uw(t,e,n){var r,i;return n&&v["each"](t,(function(t,o){var a=t.coordDim,s=n.categoryAxisMap.get(a);s&&(null==r&&(r=o),t.ordinalMeta=s.getOrdinalMeta(),e&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(i=!0)})),i||null==r||(t[r].otherDims.itemName=0),r}function cw(t,e,n){n=n||{};var r,i=e.getSourceManager(),o=!1;t?(o=!0,r=rp(t)):(r=i.getSource(),o=r.sourceFormat===wh);var a=ew(e),s=lw(e,a),l=n.useEncodeDefaulter,u=v["isFunction"](l)?l:l?v["curry"](jh,s,e):null,c={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!o},h=Z_(r,c),f=uw(h.dimensions,n.createInvertedIndices,a),p=o?null:i.getSharedDataStore(h),d=iw(e,{schema:h,store:p}),g=new X_(h,e);g.setCalculationInfo(d);var y=null!=f&&hw(r)?function(t,e,n,r){return r===f?n:this.defaultDimValueGetter(t,e,n,r)}:null;return g.hasItemOption=!1,g.initData(o?r:p,null,y),g}function hw(t){if(t.sourceFormat===wh){var e=fw(t.data||[]);return!v["isArray"](Ci(e))}}function fw(t){var e=0;while(ee[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();xo(dw);var gw=dw,vw=0,yw=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++vw}return t.createByAxisModel=function(e){var n=e.option,r=n.data,i=r&&Object(v["map"])(r,mw);return new t({categories:i,needCollect:!i,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if(!Object(v["isString"])(t)&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var r=this._getOrCreateMap();return e=r.get(t),null==e&&(n?(e=this.categories.length,this.categories[e]=t,r.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=Object(v["createHashMap"])(this.categories))},t}();function mw(t){return Object(v["isObject"])(t)&&null!=t.value?t.value:t+""}var bw=yw;function xw(t){return"interval"===t.type||"log"===t.type}function _w(t,e,n,r){var i={},o=t[1]-t[0],a=i.interval=gi(o/e,!0);null!=n&&ar&&(a=i.interval=r);var s=i.intervalPrecision=Sw(a),l=i.niceTickExtent=[ti(Math.ceil(t[0]/a)*a,s),ti(Math.floor(t[1]/a)*a,s)];return Mw(l,t),i}function ww(t){var e=Math.pow(10,di(t)),n=t/e;return n?2===n?n=3:3===n?n=5:n*=2:n=1,ti(n*e)}function Sw(t){return ni(t)+2}function Ow(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Mw(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Ow(t,0,e),Ow(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Aw(t,e){return t>=e[0]&&t<=e[1]}function Iw(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Tw(t,e){return t*(e[1]-e[0])+e[0]}var Cw=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var r=n.getSetting("ordinalMeta");return r||(r=new bw({})),Object(v["isArray"])(r)&&(r=new bw({categories:Object(v["map"])(r,(function(t){return Object(v["isObject"])(t)?t.value:t}))})),n._ordinalMeta=r,n._extent=n.getSetting("extent")||[0,r.categories.length-1],n}return d(e,t),e.prototype.parse=function(t){return null==t?NaN:Object(v["isString"])(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return t=this.parse(t),Aw(t,this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return t=this._getTickNumber(this.parse(t)),Iw(t,this._extent)},e.prototype.scale=function(t){return t=Math.round(Tw(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){var t=[],e=this._extent,n=e[0];while(n<=e[1])t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],r=this._ticksByOrdinalNumber=[],i=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);i=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(gw);gw.registerClass(Cw);var Dw=Cw,kw=ti,Lw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return d(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Aw(t,this._extent)},e.prototype.normalize=function(t){return Iw(t,this._extent)},e.prototype.scale=function(t){return Tw(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Sw(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,r=this._niceExtent,i=this._intervalPrecision,o=[];if(!e)return o;var a=1e4;n[0]a)return[]}var l=o.length?o[o.length-1].value:r[1];return n[1]>l&&(t?o.push({value:kw(l+e,i)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],r=this.getExtent(),i=1;ir[0]&&h0&&(o=null===o?s:Math.min(o,s))}n[r]=o}}return n}function Hw(t){var e=Gw(t),n=[];return Object(v["each"])(t,(function(t){var r,i=t.coordinateSystem,o=i.getBaseAxis(),a=o.getExtent();if("category"===o.type)r=o.getBandWidth();else if("value"===o.type||"time"===o.type){var s=o.dim+"_"+o.index,l=e[s],u=Math.abs(a[1]-a[0]),c=o.scale.getExtent(),h=Math.abs(c[1]-c[0]);r=l?u/h*l:u}else{var f=t.getData();r=Math.abs(a[1]-a[0])/f.count()}var p=Qr(t.get("barWidth"),r),d=Qr(t.get("barMaxWidth"),r),g=Qr(t.get("barMinWidth")||(qw(t)?.5:1),r),v=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:r,barWidth:p,barMaxWidth:d,barMinWidth:g,barGap:v,barCategoryGap:y,axisKey:Bw(o),stackId:zw(t)})})),Ww(n)}function Ww(t){var e={};Object(v["each"])(t,(function(t,n){var r=t.axisKey,i=t.bandWidth,o=e[r]||{bandWidth:i,remainedWidth:i,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[r]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var c=t.barMinWidth;c&&(a[s].minWidth=c);var h=t.barGap;null!=h&&(o.gap=h);var f=t.barCategoryGap;null!=f&&(o.categoryGap=f)}));var n={};return Object(v["each"])(e,(function(t,e){n[e]={};var r=t.stacks,i=t.bandWidth,o=t.categoryGap;if(null==o){var a=Object(v["keys"])(r).length;o=Math.max(35-4*a,15)+"%"}var s=Qr(o,i),l=Qr(t.gap,1),u=t.remainedWidth,c=t.autoWidthCount,h=(u-s)/(c+(c-1)*l);h=Math.max(h,0),Object(v["each"])(r,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){r=t.width;e&&(r=Math.min(r,e)),n&&(r=Math.max(r,n)),t.width=r,u-=r+l*r,c--}else{var r=h;e&&er&&(r=n),r!==h&&(t.width=r,u-=r+l*r,c--)}})),h=(u-s)/(c+(c-1)*l),h=Math.max(h,0);var f,p=0;Object(v["each"])(r,(function(t,e){t.width||(t.width=h),f=t,p+=t.width*(1+l)})),f&&(p-=f.width*l);var d=-p/2;Object(v["each"])(r,(function(t,r){n[e][r]=n[e][r]||{bandWidth:i,offset:d,width:t.width},d+=t.width*(1+l)}))})),n}function Uw(t,e,n){if(t&&e){var r=t[Bw(e)];return null!=r&&null!=n?r[zw(n)]:r}}function Yw(t,e){var n=Fw(t,e),r=Hw(n);Object(v["each"])(n,(function(t){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),o=zw(t),a=r[Bw(i)][o],s=a.offset,l=a.width;e.setLayout({bandWidth:a.bandWidth,offset:s,size:l})}))}function $w(t){return{seriesType:t,plan:Xd(),reset:function(t){if(Xw(t)){var e=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),i=n.getOtherAxis(r),o=e.getDimensionIndex(e.mapDimension(i.dim)),a=e.getDimensionIndex(e.mapDimension(r.dim)),s=t.get("showBackground",!0),l=e.mapDimension(i.dim),u=e.getCalculationInfo("stackResultDimension"),c=aw(e,l)&&!!e.getCalculationInfo("stackedOnSeries"),h=i.isHorizontal(),f=Zw(r,i),p=qw(t),d=t.get("barMinHeight")||0,g=u&&e.getDimensionIndex(u),v=e.getLayout("size"),y=e.getLayout("offset");return{progress:function(t,e){var r,i=t.count,l=p&&Rw(3*i),u=p&&s&&Rw(3*i),m=p&&Rw(i),b=n.master.getRect(),x=h?b.width:b.height,_=e.getStore(),w=0;while(null!=(r=t.next())){var S=_.get(c?g:o,r),O=_.get(a,r),M=f,A=void 0;c&&(A=+S-_.get(o,r));var I=void 0,T=void 0,C=void 0,D=void 0;if(h){var k=n.dataToPoint([S,O]);if(c){var L=n.dataToPoint([A,O]);M=L[0]}I=M,T=k[1]+y,C=k[0]-M,D=v,Math.abs(C)>>1;t[i][1]n&&(this._approxInterval=n);var o=Qw.length,a=Math.min(Kw(Qw,this._approxInterval,0,o),o-1);this._interval=Qw[a][1],this._minLevelUnit=Qw[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return Object(v["isNumber"])(t)?t:+fi(t)},e.prototype.contain=function(t){return Aw(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Iw(this.parse(t),this._extent)},e.prototype.scale=function(t){return Tw(t,this._extent)},e.type="time",e}(jw),Qw=[["second",uc],["minute",cc],["hour",hc],["quarter-day",6*hc],["half-day",12*hc],["day",1.2*fc],["half-week",3.5*fc],["week",7*fc],["month",31*fc],["quarter",95*fc],["half-year",pc/2],["year",pc]];function tS(t,e,n,r){var i=fi(e),o=fi(n),a=function(t){return Ac(i,t,r)===Ac(o,t,r)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},c=function(){return u()&&a("hour")},h=function(){return c()&&a("minute")},f=function(){return h()&&a("second")},p=function(){return f()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return h();case"second":return f();case"millisecond":return p()}}function eS(t,e){return t/=fc,t>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function nS(t){var e=30*fc;return t/=e,t>6?6:t>3?3:t>2?2:1}function rS(t){return t/=hc,t>12?12:t>6?6:t>3.5?4:t>2?2:1}function iS(t,e){return t/=e?cc:uc,t>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function oS(t){return gi(t,!0)}function aS(t,e,n){var r=new Date(t);switch(xc(e)){case"year":case"month":r[Ec(n)](0);case"day":r[Rc(n)](1);case"hour":r[Nc(n)](0);case"minute":r[zc(n)](0);case"second":r[Bc(n)](0),r[Vc(n)](0)}return r.getTime()}function sS(t,e,n,r){var i=1e4,o=mc,a=0;function s(t,e,n,i,o,a,s){var l=new Date(e),u=e,c=l[i]();while(u1&&0===u&&o.unshift({value:o[0].value-f})}}for(u=0;u=r[0]&&b<=r[1]&&h++)}var x=(r[1]-r[0])/e;if(h>1.5*x&&f>x/1.5)break;if(u.push(y),h>x||t===o[p])break}c=[]}}}var _=Object(v["filter"])(Object(v["map"])(u,(function(t){return Object(v["filter"])(t,(function(t){return t.value>=r[0]&&t.value<=r[1]&&!t.notAdd}))})),(function(t){return t.length>0})),w=[],S=_.length-1;for(p=0;p<_.length;++p)for(var O=_[p],M=0;M0)r*=10;var o=[ti(pS(e[0]/r)*r),ti(fS(e[1]/r)*r)];this._interval=r,this._niceExtent=o}},e.prototype.calcNiceExtent=function(t){cS.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return t=gS(t)/gS(this.base),Aw(t,this._extent)},e.prototype.normalize=function(t){return t=gS(t)/gS(this.base),Iw(t,this._extent)},e.prototype.scale=function(t){return t=Tw(t,this._extent),dS(this.base,t)},e.type="log",e}(gw),yS=vS.prototype;function mS(t,e){return hS(t,ni(e))}yS.getMinorTicks=cS.getMinorTicks,yS.getLabel=cS.getLabel,gw.registerClass(vS);var bS=vS,xS=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var h=this._determinedMin,f=this._determinedMax;return null!=h&&(a=h,l=!0),null!=f&&(s=f,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:c}},t.prototype.modifyDataMinMax=function(t,e){this[wS[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=_S[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),_S={min:"_determinedMin",max:"_determinedMax"},wS={min:"_dataMin",max:"_dataMax"};function SS(t,e,n){var r=t.rawExtentInfo;return r||(r=new xS(t,e,n),t.rawExtentInfo=r,r)}function OS(t,e){return null==e?null:Object(v["eqNaN"])(e)?NaN:t.parse(e)}function MS(t,e){var n=t.type,r=SS(t,e,t.getExtent()).calculate();t.setBlank(r.isBlank);var i=r.min,o=r.max,a=e.ecModel;if(a&&"time"===n){var s=Fw("bar",a),l=!1;if(v["each"](s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Hw(s),c=AS(i,o,e,u);i=c.min,o=c.max}}return{extent:[i,o],fixMin:r.minFixed,fixMax:r.maxFixed}}function AS(t,e,n,r){var i=n.axis.getExtent(),o=i[1]-i[0],a=Uw(r,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;v["each"](a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;v["each"](a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=e-t,h=1-(s+l)/o,f=c/h-c;return e+=f*(l/u),t-=f*(s/u),{min:t,max:e}}function IS(t,e){var n=e,r=MS(t,n),i=r.extent,o=n.get("splitNumber");t instanceof bS&&(t.base=n.get("logBase"));var a=t.type,s=n.get("interval"),l="interval"===a||"time"===a;t.setExtent(i[0],i[1]),t.calcNiceExtent({splitNumber:o,fixMin:r.fixMin,fixMax:r.fixMax,minInterval:l?n.get("minInterval"):null,maxInterval:l?n.get("maxInterval"):null}),null!=s&&t.setInterval&&t.setInterval(s)}function TS(t,e){if(e=e||t.get("type"),e)switch(e){case"category":return new Dw({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new lS({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(gw.getClass(e)||jw)}}function CS(t){var e=t.scale.getExtent(),n=e[0],r=e[1];return!(n>0&&r>0||n<0&&r<0)}function DS(t){var e=t.getLabelModel().get("formatter"),n="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?function(e){return function(n,r){return t.scale.getFormattedLabel(n,r,e)}}(e):v["isString"](e)?function(e){return function(n){var r=t.scale.getLabel(n),i=e.replace("{value}",null!=r?r:"");return i}}(e):v["isFunction"](e)?function(e){return function(r,i){return null!=n&&(i=r.value-n),e(kS(t,r),i,null!=r.level?{level:r.level}:null)}}(e):function(e){return t.scale.getLabel(e)}}function kS(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function LS(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var r,i,o=n.getExtent();n instanceof Dw?i=n.count():(r=n.getTicks(),i=r.length);var a,s=t.getLabelModel(),l=DS(t),u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;ct[1]&&(t[1]=r[1])}))}var zS=function(){function t(){}return t.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},t.prototype.getCoordSysModel=function(){},t}();function BS(t){return pw(null,t)}var VS={isDimensionStacked:aw,enableDataStack:iw,getStackedDimension:sw};function FS(t,e){var n=e;e instanceof Uu||(n=new Uu(e));var r=TS(n);return r.setExtent(t[0],t[1]),IS(r,n),r}function GS(t){v["mixin"](t,zS)}function HS(t,e){return e=e||{},_u(t,null,null,"normal"!==e.state)}var WS=1e-8;function US(t,e){return Math.abs(t-e)n&&(t=i,n=a)}if(t)return ZS(t.exterior);var s=this.getBoundingRect();return[s.x+s.width/2,s.y+s.height/2]},e.prototype.getBoundingRect=function(t){var e=this._rect;if(e&&!t)return e;var n=[1/0,1/0],r=[-1/0,-1/0],i=this.geometries;return Object(v["each"])(i,(function(e){"polygon"===e.type?qS(e.exterior,n,r,t):Object(v["each"])(e.points,(function(e){qS(e,n,r,t)}))})),isFinite(n[0])&&isFinite(n[1])&&isFinite(r[0])&&isFinite(r[1])||(n[0]=n[1]=r[0]=r[1]=0),e=new Gt(n[0],n[1],r[0]-n[0],r[1]-n[1]),t||(this._rect=e),e},e.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var r=0,i=n.length;r>1^-(1&s),l=l>>1^-(1&l),s+=i,l+=o,i=s,o=l,r.push([s/n,l/n])}return r}function oO(t,e){return t=nO(t),v["map"](v["filter"](t.features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,r=t.geometry,i=[];switch(r.type){case"Polygon":var o=r.coordinates;i.push(new JS(o[0],o.slice(1)));break;case"MultiPolygon":v["each"](r.coordinates,(function(t){t[0]&&i.push(new JS(t[0],t.slice(1)))}));break;case"LineString":i.push(new QS([r.coordinates]));break;case"MultiLineString":i.push(new QS(r.coordinates))}var a=new tO(n[e||"name"],i,n.cp);return a.properties=n,a}))}var aO=Xi();function sO(t){return"category"===t.type?uO(t):fO(t)}function lO(t,e){return"category"===t.type?hO(t,e):{ticks:v["map"](t.scale.getTicks(),(function(t){return t.value}))}}function uO(t){var e=t.getLabelModel(),n=cO(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}function cO(t,e){var n,r,i=pO(t,"labels"),o=PS(e),a=dO(i,o);return a||(v["isFunction"](o)?n=xO(t,o):(r="auto"===o?vO(t):o,n=bO(t,r)),gO(i,o,{labels:n,labelCategoryInterval:r}))}function hO(t,e){var n,r,i=pO(t,"ticks"),o=PS(e),a=dO(i,o);if(a)return a;if(e.get("show")&&!t.scale.isBlank()||(n=[]),v["isFunction"](o))n=xO(t,o,!0);else if("auto"===o){var s=cO(t,t.getLabelModel());r=s.labelCategoryInterval,n=v["map"](s.labels,(function(t){return t.tickValue}))}else r=o,n=bO(t,r,!0);return gO(i,o,{ticks:n,tickCategoryInterval:r})}function fO(t){var e=t.scale.getTicks(),n=DS(t);return{labels:v["map"](e,(function(e,r){return{level:e.level,formattedLabel:n(e,r),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}function pO(t,e){return aO(t)[e]||(aO(t)[e]=[])}function dO(t,e){for(var n=0;n40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),c=Math.abs(u*Math.cos(r)),h=Math.abs(u*Math.sin(r)),f=0,p=0;l<=o[1];l+=s){var d=0,g=0,v=vr(n({value:l}),e.font,"center","top");d=1.3*v.width,g=1.3*v.height,f=Math.max(f,d,7),p=Math.max(p,g,7)}var y=f/c,m=p/h;isNaN(y)&&(y=1/0),isNaN(m)&&(m=1/0);var b=Math.max(0,Math.floor(Math.min(y,m))),x=aO(t.model),_=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-b)<=1&&Math.abs(S-a)<=1&&w>b&&x.axisExtent0===_[0]&&x.axisExtent1===_[1]?b=w:(x.lastTickCount=a,x.lastAutoInterval=b,x.axisExtent0=_[0],x.axisExtent1=_[1]),b}function mO(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function bO(t,e,n){var r=DS(t),i=t.scale,o=i.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],c=i.count();0!==u&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var h=ES(t),f=a.get("showMinLabel")||h,p=a.get("showMaxLabel")||h;f&&u!==o[0]&&g(o[0]);for(var d=u;d<=o[1];d+=l)g(d);function g(t){var e={value:t};s.push(n?t:{formattedLabel:r(e),rawLabel:i.getLabel(e),tickValue:t})}return p&&d-l!==o[1]&&g(o[1]),s}function xO(t,e,n){var r=t.scale,i=DS(t),o=[];return v["each"](r.getTicks(),(function(t){var a=r.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:i(t),rawLabel:a,tickValue:s})})),o}var _O=[0,1],wO=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),r=Math.max(e[0],e[1]);return t>=n&&t<=r},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return ii(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,r=this.scale;return t=r.normalize(t),this.onBand&&"ordinal"===r.type&&(n=n.slice(),SO(n,r.count())),Jr(t,_O,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,r=this.scale;this.onBand&&"ordinal"===r.type&&(n=n.slice(),SO(n,r.count()));var i=Jr(t,n,_O,e);return this.scale.scale(i)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){t=t||{};var e=t.tickModel||this.getTickModel(),n=lO(this,e),r=n.ticks,i=Object(v["map"])(r,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this),o=e.get("alignWithLabel");return OO(this,i,o,t.clamp),i},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick"),e=t.get("splitNumber");e>0&&e<100||(e=5);var n=this.scale.getMinorTicks(e),r=Object(v["map"])(n,(function(t){return Object(v["map"])(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this);return r},t.prototype.getViewLabels=function(){return sO(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var r=Math.abs(t[1]-t[0]);return Math.abs(r)/n},t.prototype.calculateCategoryInterval=function(){return yO(this)},t}();function SO(t,e){var n=t[1]-t[0],r=e,i=n/r/2;t[0]+=i,t[1]-=i}function OO(t,e,n,r){var i=e.length;if(t.onBand&&!n&&i){var o,a,s=t.getExtent();if(1===i)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[i-1].tickValue-e[0].tickValue,u=(e[i-1].coord-e[0].coord)/l;Object(v["each"])(e,(function(t){t.coord-=u/2}));var c=t.scale.getExtent();a=1+c[1]-e[i-1].tickValue,o={coord:e[i-1].coord+u*a},e.push(o)}var h=s[0]>s[1];f(e[0].coord,s[0])&&(r?e[0].coord=s[0]:e.shift()),r&&f(s[0],e[0].coord)&&e.unshift({coord:s[0]}),f(s[1],o.coord)&&(r?o.coord=s[1]:e.pop()),r&&f(o.coord,s[1])&&e.push({coord:s[1]})}function f(t,e){return t=ti(t),e=ti(e),h?t>e:ti&&(i+=DO);var p=Math.atan2(s,a);if(p<0&&(p+=DO),p>=r&&p<=i||p+DO>=r&&p+DO<=i)return l[0]=c,l[1]=h,u-n;var d=n*Math.cos(r)+t,g=n*Math.sin(r)+e,v=n*Math.cos(i)+t,y=n*Math.sin(i)+e,m=(d-a)*(d-a)+(g-s)*(g-s),b=(v-a)*(v-a)+(y-s)*(y-s);return m0){e=e/180*Math.PI,VO.fromArray(t[0]),FO.fromArray(t[1]),GO.fromArray(t[2]),Lt.sub(HO,VO,FO),Lt.sub(WO,GO,FO);var n=HO.len(),r=WO.len();if(!(n<.001||r<.001)){HO.scale(1/n),WO.scale(1/r);var i=HO.dot(WO),o=Math.cos(e);if(o1&&Lt.copy($O,GO),$O.toArray(t[1])}}}}function qO(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,VO.fromArray(t[0]),FO.fromArray(t[1]),GO.fromArray(t[2]),Lt.sub(HO,FO,VO),Lt.sub(WO,GO,FO);var r=HO.len(),i=WO.len();if(!(r<.001||i<.001)){HO.scale(1/r),WO.scale(1/i);var o=HO.dot(e),a=Math.cos(n);if(o=l)Lt.copy($O,GO);else{$O.scaleAndAdd(WO,s/Math.tan(Math.PI/2-c));var h=GO.x!==FO.x?($O.x-FO.x)/(GO.x-FO.x):($O.y-FO.y)/(GO.y-FO.y);if(isNaN(h))return;h<0?Lt.copy($O,FO):h>1&&Lt.copy($O,GO)}$O.toArray(t[1])}}}}function ZO(t,e,n,r){var i="normal"===n,o=i?t:t.ensureState(n);o.ignore=e;var a=r.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=r.getModel("lineStyle").getLineStyle();i?t.useStyle(s):o.style=s}function KO(t,e){var n=e.smooth,r=e.points;if(r)if(t.moveTo(r[0][0],r[0][1]),n>0&&r.length>=3){var i=P(r[0],r[1]),o=P(r[1],r[2]);if(!i||!o)return t.lineTo(r[1][0],r[1][1]),void t.lineTo(r[2][0],r[2][1]);var a=Math.min(i,o)*n,s=z([],r[1],r[0],a/i),l=z([],r[1],r[2],a/o),u=z([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],r[2][0],r[2][1])}else for(var c=1;c0&&o&&w(-h/a,0,a);var v,y,m=t[0],b=t[a-1];return x(),v<0&&S(-v,.8),y<0&&S(y,.8),x(),_(v,y,1),_(y,v,-1),x(),v<0&&O(-v),y<0&&O(y),u}function x(){v=m.rect[e]-r,y=i-b.rect[e]-b.rect[n]}function _(t,e,n){if(t<0){var r=Math.min(e,-t);if(r>0){w(r*n,0,a);var i=r+t;i<0&&S(-i*n,1)}else S(-t*n,1)}}function w(n,r,i){0!==n&&(u=!0);for(var o=r;o0)for(l=0;l0;l--){f=o[l-1]*h;w(-f,l,a)}}}function O(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),r=0;r0?w(n,0,r+1):w(-n,a-r-1,a),t-=n,t<=0)return}}function nM(t,e,n,r){return eM(t,"x","width",e,n,r)}function rM(t,e,n,r){return eM(t,"y","height",e,n,r)}function iM(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Gt(0,0,0,0);function r(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var i=0;i=0&&n.attr(i.oldLayoutSelect),Object(v["indexOf"])(c,"emphasis")>=0&&n.attr(i.oldLayoutEmphasis)),lu(n,l,e,s)}else if(n.attr(l),!Du(n).valueAnimation){var h=Object(v["retrieve2"])(n.style.opacity,1);n.style.opacity=0,uu(n,{style:{opacity:h}},e,s)}if(i.oldLayout=l,n.states.select){var f=i.oldLayoutSelect={};hM(f,l,fM),hM(f,n.states.select,fM)}if(n.states.emphasis){var p=i.oldLayoutEmphasis={};hM(p,l,fM),hM(p,n.states.emphasis,fM)}Lu(n,s,u,e,e)}if(r&&!r.ignore&&!r.invisible){i=cM(r),o=i.oldLayout;var d={points:r.shape.points};o?(r.attr({shape:o}),lu(r,{shape:d},e)):(r.setShape(d),r.style.strokePercent=0,uu(r,{style:{strokePercent:1}},e)),i.oldLayout=d}},t}(),dM=pM,gM=Xi();function vM(t){t.registerUpdateLifecycle("series:beforeupdate",(function(t,e,n){var r=gM(e).labelManager;r||(r=gM(e).labelManager=new dM),r.clearLabels()})),t.registerUpdateLifecycle("series:layoutlabels",(function(t,e,n){var r=gM(e).labelManager;n.updatedSeries.forEach((function(t){r.addLabelsOfSeries(e.getViewOfSeriesModel(t))})),r.updateLayoutConfig(e),r.layout(e),r.processLabelsOverall()}))}function yM(t,e,n){var r=fr["d"].createCanvas(),i=e.getWidth(),o=e.getHeight(),a=r.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=i+"px",a.height=o+"px",r.setAttribute("data-zr-dom-id",t)),r.width=i*n,r.height=o*n,r}d_(vM);var mM=function(t){function e(e,n,r){var i,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,r=r||qn,"string"===typeof e?i=yM(e,n,r):v["isObject"](e)&&(i=e,e=i.id),o.id=e,o.dom=i;var a=i.style;return a&&(v["disableUserSelect"](i),i.onselectstart=function(){return!1},a.padding="0",a.margin="0",a.borderWidth="0"),o.painter=n,o.dpr=r,o}return d(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=yM("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,r){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var i,o=[],a=this.maxRepaintRectCount,s=!1,l=new Gt(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){var e=new Gt(0,0,0,0);e.copy(t),o.push(e)}else{for(var n=!1,r=1/0,i=0,u=0;u=a)}}for(var c=this.__startIndex;c15)break}}n.prevElClipPaths&&h.restore()};if(p)if(0===p.length)s=l.__endIndex;else for(var x=f.dpr,_=0;_0&&t>r[0]){for(s=0;st)break;a=n[r[s]]}if(r.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,r=0;r0?wM:0),this._needsManuallyCompositing),u.__builtin__||v["logError"]("ZLevel "+l+" has been used by unkown layer "+u.id),u!==a&&(u.__used=!0,u.__startIndex!==o&&(u.__dirty=!0),u.__startIndex=o,u.incremental?u.__drawIndex=-1:u.__drawIndex=o,e(o),a=u),r.__dirty&he&&!r.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=o))}e(o),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,v["each"](this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?v["merge"](n[t],e,!0):n[t]=e;for(var r=0;r=LM:-l>=LM),f=l>0?l%LM:l%LM+LM,p=!1;p=!!h||!Object(Qe["j"])(c)&&f>=kM===!!u;var d=t+n*DM(o),g=e+r*CM(o);this._start&&this._add("M",d,g);var v=Math.round(i*jM);if(h){var y=1/this._p,m=(u?1:-1)*(LM-y);this._add("A",n,r,v,1,+u,t+n*DM(o+m),e+r*CM(o+m)),y>.01&&this._add("A",n,r,v,0,+u,d,g)}else{var b=t+n*DM(a),x=e+r*CM(a);this._add("A",n,r,v,+p,+u,b,x)}},t.prototype.rect=function(t,e,n,r){this._add("M",t,e),this._add("l",n,0),this._add("l",0,r),this._add("l",-n,0),this._add("Z")},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,r,i,o,a,s,l){for(var u=[],c=this._p,h=1;h"}function ZM(t){return""}function KM(t,e){e=e||{};var n=e.newline?"\n":"";function r(t){var e=t.children,i=t.tag,o=t.attrs,a=t.text;return qM(i,o)+("style"!==i?ot(a):a||"")+(e?""+n+Object(v["map"])(e,(function(t){return r(t)})).join(n)+n:"")+ZM(i)}return r(t)}function JM(t,e,n){n=n||{};var r=n.newline?"\n":"",i=" {"+r,o=r+"}",a=Object(v["map"])(Object(v["keys"])(t),(function(e){return e+i+Object(v["map"])(Object(v["keys"])(t[e]),(function(n){return n+":"+t[e][n]+";"})).join(r)+o})).join(r),s=Object(v["map"])(Object(v["keys"])(e),(function(t){return"@keyframes "+t+i+Object(v["map"])(Object(v["keys"])(e[t]),(function(n){return n+i+Object(v["map"])(Object(v["keys"])(e[t][n]),(function(r){var i=e[t][n][r];return"d"===r&&(i='path("'+i+'")'),r+":"+i+";"})).join(r)+o})).join(r)+o})).join(r);return a||s?[""].join(r):""}function QM(t){return{zrId:t,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssClassIdx:0,cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function tA(t,e,n,r){return XM("svg","root",{width:t,height:e,xmlns:HM,"xmlns:xlink":WM,version:"1.1",baseProfile:"full",viewBox:!!r&&"0 0 "+t+" "+e},n)}var eA={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},nA="transform-origin";function rA(t,e,n){var r=Object(v["extend"])({},t.shape);Object(v["extend"])(r,e),t.buildPath(n,r);var i=new EM;return i.reset(Object(Qe["f"])(t)),n.rebuildPath(i,1),i.generateStr(),i.getStr()}function iA(t,e){var n=e.originX,r=e.originY;(n||r)&&(t[nA]=n+"px "+r+"px")}var oA={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function aA(t,e){var n=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[n]=t,n}function sA(t,e,n){var r,i,o=t.shape.paths,a={};if(Object(v["each"])(o,(function(t){var e=QM(n.zrId);e.animation=!0,uA(t,{},e,!0);var o=e.cssAnims,s=e.cssNodes,l=Object(v["keys"])(o),u=l.length;if(u){i=l[u-1];var c=o[i];for(var h in c){var f=c[h];a[h]=a[h]||{d:""},a[h].d+=f.d||""}for(var p in s){var d=s[p].animation;d.indexOf(i)>=0&&(r=d)}}})),r){e.d=!1;var s=aA(a,n);return r.replace(i,s)}}function lA(t){return Object(v["isString"])(t)?eA[t]?"cubic-bezier("+eA[t]+")":qe(t)?t:"":""}function uA(t,e,n,r){var i=t.animators,o=i.length,a=[];if(t instanceof fv){var s=sA(t,e,n);if(s)a.push(s);else if(!o)return}else if(!o)return;for(var l={},u=0;u0})).length){var D=aA(c,n);return D+" "+i[0]+" both"}}for(var y in l){s=g(l[y]);s&&a.push(s)}if(a.length){var m=n.zrId+"-cls-"+n.cssClassIdx++;n.cssNodes["."+m]={animation:a.join(",")},e["class"]=m}}var cA=Math.round;function hA(t){return t&&Object(v["isString"])(t.src)}function fA(t){return t&&Object(v["isFunction"])(t.toDataURL)}function pA(t,e,n,r){GM((function(i,o){var a="fill"===i||"stroke"===i;a&&Object(Qe["k"])(o)?IA(e,t,i,r):a&&Object(Qe["n"])(o)?TA(n,t,i,r):t[i]=o}),e,n,!1),AA(n,t,r)}function dA(t){return Object(Qe["j"])(t[0]-1)&&Object(Qe["j"])(t[1])&&Object(Qe["j"])(t[2])&&Object(Qe["j"])(t[3]-1)}function gA(t){return Object(Qe["j"])(t[4])&&Object(Qe["j"])(t[5])}function vA(t,e,n){if(e&&(!gA(e)||!dA(e))){var r=n?10:1e4;t.transform=dA(e)?"translate("+cA(e[4]*r)/r+" "+cA(e[5]*r)/r+")":Object(Qe["e"])(e)}}function yA(t,e,n){for(var r=t.points,i=[],o=0;ou?(a=null==n[f+1]?null:n[f+1].elm,UA(t,a,n,l,f)):YA(t,e,s,u))}function qA(t,e){var n=e.elm=t.elm,r=t.children,i=e.children;t!==e&&($A(t,e),VA(e.text)?FA(r)&&FA(i)?r!==i&&XA(n,r,i):FA(i)?(FA(t.text)&&RA(n,""),UA(n,null,i,0,i.length-1)):FA(r)?YA(n,r,0,r.length-1):FA(t.text)&&RA(n,""):t.text!==e.text&&(FA(r)&&YA(n,r,0,r.length-1),RA(n,e.text)))}function ZA(t,e){if(HA(t,e))qA(t,e);else{var n=t.elm,r=PA(n);WA(e),null!==r&&(kA(r,e.elm,EA(n)),YA(r,[t],0,0))}return e}var KA=0,JA=function(){function t(t,e,n){if(this.type="svg",this.refreshHover=QA("refreshHover"),this.configLayer=QA("configLayer"),this.storage=e,this._opts=n=Object(v["extend"])({},n),this.root=t,this._id="zr"+KA++,this._oldVNode=tA(n.width,n.height),t&&!n.ssr){var r=this._viewport=document.createElement("div");r.style.cssText="position:relative;overflow:hidden";var i=this._svgDom=this._oldVNode.elm=$M("svg");$A(null,this._oldVNode),r.appendChild(i),t.appendChild(r)}this.resize(n.width,n.height)}return t.prototype.getType=function(){return this.type},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style="position:absolute;left:0;top:0;user-select:none",ZA(this._oldVNode,t),this._oldVNode=t}},t.prototype.renderOneToVNode=function(t){return MA(t,QM(this._id))},t.prototype.renderToVNode=function(t){t=t||{};var e=this.storage.getDisplayList(!0),n=this._width,r=this._height,i=QM(this._id);i.animation=t.animation,i.willUpdate=t.willUpdate,i.compress=t.compress;var o=[],a=this._bgVNode=tI(n,r,this._backgroundColor,i);a&&o.push(a);var s=t.compress?null:this._mainVNode=XM("g","main",{},[]);this._paintList(e,i,s?s.children:o),s&&o.push(s);var l=Object(v["map"])(Object(v["keys"])(i.defs),(function(t){return i.defs[t]}));if(l.length&&o.push(XM("defs","defs",{},l)),t.animation){var u=JM(i.cssNodes,i.cssAnims,{newline:!0});if(u){var c=XM("style","stl",{},[],u);o.push(c)}}return tA(n,r,o,t.useViewBox)},t.prototype.renderToString=function(t){return t=t||{},KM(this.renderToVNode({animation:Object(v["retrieve2"])(t.cssAnimation,!0),willUpdate:!1,compress:!0,useViewBox:Object(v["retrieve2"])(t.useViewBox,!0)}),{newline:!0})},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t},t.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},t.prototype._paintList=function(t,e,n){for(var r,i,o=t.length,a=[],s=0,l=0,u=0;u=0;d--)if(h&&i&&h[d]===i[d])break;for(var g=p-1;g>d;g--)s--,r=a[s-1];for(var v=d+1;v-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},e}(Ud),iI=rI;function oI(t,e){var n=t.mapDimensionsAll("defaultedLabel"),r=n.length;if(1===r){var i=wp(t,e,n[0]);return null!=i?i+"":null}if(r){for(var o=[],a=0;a=0&&r.push(e[o])}return r.join(" ")}var sI=function(t){function e(e,n,r,i){var o=t.call(this)||this;return o.updateData(e,n,r,i),o}return d(e,t),e.prototype._createSymbol=function(t,e,n,r,i){this.removeAll();var o=Im(t,-1,-1,2,2,null,i);o.attr({z2:100,culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),o.drift=lI,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Tl(this.childAt(0))},e.prototype.downplay=function(){Cl(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},e.prototype.updateData=function(t,n,r,i){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=i&&i.disableAnimation;if(l){var c=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,c)}else{var h=this.childAt(0);h.silent=!1;var f={scaleX:s[0]/2,scaleY:s[1]/2};u?h.attr(f):lu(h,f,a,n),du(h)}if(this._updateCommon(t,n,s,r,i),l){h=this.childAt(0);if(!u){f={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:h.style.opacity}};h.scaleX=h.scaleY=0,h.style.opacity=0,uu(h,f,a,n)}}u&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,e,n,r,i){var o,a,s,l,u,c,h,f,p,d=this.childAt(0),g=t.hostModel;if(r&&(o=r.emphasisItemStyle,a=r.blurItemStyle,s=r.selectItemStyle,l=r.focus,u=r.blurScope,h=r.labelStatesModels,f=r.hoverScale,p=r.cursorStyle,c=r.emphasisDisabled),!r||t.hasItemOption){var y=r&&r.itemModel?r.itemModel:t.getItemModel(e),m=y.getModel("emphasis");o=m.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=m.get("focus"),u=m.get("blurScope"),c=m.get("disabled"),h=xu(y),f=m.getShallow("scale"),p=y.getShallow("cursor")}var b=t.getItemVisual(e,"symbolRotate");d.attr("rotation",(b||0)*Math.PI/180||0);var x=Cm(t.getItemVisual(e,"symbolOffset"),n);x&&(d.x=x[0],d.y=x[1]),p&&d.attr("cursor",p);var _=t.getItemVisual(e,"style"),w=_.fill;if(d instanceof gs){var S=d.style;d.useStyle(Object(v["extend"])({image:S.image,x:S.x,y:S.y,width:S.width,height:S.height},_))}else d.__isEmptyBrush?d.useStyle(Object(v["extend"])({},_)):d.useStyle(_),d.style.decal=null,d.setColor(w,i&&i.symbolInnerColor),d.style.strokeNoScale=!0;var O=t.getItemVisual(e,"liftZ"),M=this._z2;null!=O?null==M&&(this._z2=d.z2,d.z2+=O):null!=M&&(d.z2=M,this._z2=null);var A=i&&i.useNameLabel;function I(e){return A?t.getName(e):oI(t,e)}bu(d,h,{labelFetcher:g,labelDataIndex:e,defaultText:I,inheritColor:w,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=d.ensureState("emphasis");T.style=o,d.ensureState("select").style=s,d.ensureState("blur").style=a;var C=null==f||!0===f?Math.max(1.1,3/this._sizeY):isFinite(f)&&f>0?+f:1;T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C,this.setSymbolScale(1),$l(this,l,u,c)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e,n){var r=this.childAt(0),i=Hs(this).dataIndex,o=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var a=r.getTextContent();a&&hu(a,{style:{opacity:0}},e,{dataIndex:i,removeOpt:o,cb:function(){r.removeTextContent()}})}else r.removeTextContent();hu(r,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:i,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){return Tm(t.getItemVisual(e,"symbolSize"))},e}(Nr);function lI(t,e){this.parent.drift(t,e)}var uI=sI;function cI(t,e,n,r){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(r.isIgnore&&r.isIgnore(n))&&!(r.clipShape&&!r.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function hI(t){return null==t||Object(v["isObject"])(t)||(t={isIgnore:t}),t||{}}function fI(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:xu(e),cursorStyle:e.get("cursor")}}var pI=function(){function t(t){this.group=new Nr,this._SymbolCtor=t||uI}return t.prototype.updateData=function(t,e){this._progressiveEls=null,e=hI(e);var n=this.group,r=t.hostModel,i=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=fI(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};i||n.removeAll(),t.diff(i).add((function(r){var i=u(r);if(cI(t,i,r,e)){var a=new o(t,r,s,l);a.setPosition(i),t.setItemGraphicEl(r,a),n.add(a)}})).update((function(c,h){var f=i.getItemGraphicEl(h),p=u(c);if(cI(t,p,c,e)){var d=t.getItemVisual(c,"symbol")||"circle",g=f&&f.getSymbolType&&f.getSymbolType();if(!f||g&&g!==d)n.remove(f),f=new o(t,c,s,l),f.setPosition(p);else{f.updateData(t,c,s,l);var v={x:p[0],y:p[1]};a?f.attr(v):lu(f,v,r)}n.add(f),t.setItemGraphicEl(c,f)}else n.remove(f)})).remove((function(t){var e=i.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}),r)})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var r=t._getSymbolPoint(n);e.setPosition(r),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=fI(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function r(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[],n=hI(n);for(var i=t.start;i0?n=r[0]:r[1]<0&&(n=r[1]),n}function yI(t,e,n,r){var i=NaN;t.stacked&&(i=n.get(n.getCalculationInfo("stackedOverDimension"),r)),isNaN(i)&&(i=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,r),a[1-o]=i,e.dataToPoint(a)}function mI(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}function bI(t,e,n,r,i,o,a,s){for(var l=mI(t,e),u=[],c=[],h=[],f=[],p=[],d=[],g=[],v=gI(i,e,a),y=t.getLayout("points")||[],m=e.getLayout("points")||[],b=0;b=i||g<0)break;if(wI(y,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](y,m),h=y,f=m;else{var b=y-u,x=m-c;if(b*b+x*x<.5){g+=o;continue}if(a>0){var _=g+o,w=e[2*_],S=e[2*_+1];while(w===y&&S===m&&v=r||wI(w,S))p=y,d=m;else{A=w-u,I=S-c;var D=y-u,k=w-y,L=m-c,j=S-m,P=void 0,E=void 0;if("x"===s){P=Math.abs(D),E=Math.abs(k);var R=A>0?1:-1;p=y-R*P*a,d=m,T=y+R*E*a,C=m}else if("y"===s){P=Math.abs(L),E=Math.abs(j);var N=I>0?1:-1;p=y,d=m-N*P*a,T=y,C=m+N*E*a}else P=Math.sqrt(D*D+L*L),E=Math.sqrt(k*k+j*j),M=E/(E+P),p=y-A*a*(1-M),d=m-I*a*(1-M),T=y+A*a*M,C=m+I*a*M,T=xI(T,_I(w,y)),C=xI(C,_I(S,m)),T=_I(T,xI(w,y)),C=_I(C,xI(S,m)),A=T-y,I=C-m,p=y-A*P/E,d=m-I*P/E,p=xI(p,_I(u,y)),d=xI(d,_I(c,m)),p=_I(p,xI(u,y)),d=_I(d,xI(c,m)),A=y-p,I=m-d,T=y+A*E/P,C=m+I*E/P}t.bezierCurveTo(h,f,p,d,y,m),h=T,f=C}else t.lineTo(y,m)}u=y,c=m,g+=o}return v}var OI=function(){function t(){this.smooth=0,this.smoothConstraint=!0}return t}(),MI=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return d(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new OI},e.prototype.buildPath=function(t,e){var n=e.points,r=0,i=n.length/2;if(e.connectNulls){for(;i>0;i--)if(!wI(n[2*i-2],n[2*i-1]))break;for(;r=0){var m=s?(f-r)*y+r:(h-n)*y+n;return s?[t,m]:[m,t]}n=h,r=f;break;case a.C:h=o[u++],f=o[u++],p=o[u++],d=o[u++],g=o[u++],v=o[u++];var b=s?Re(n,h,p,g,t,l):Re(r,f,d,v,t,l);if(b>0)for(var x=0;x=0){m=s?Pe(r,f,d,v,_):Pe(n,h,p,g,_);return s?[t,m]:[m,t]}}n=g,r=v;break}}},e}(ss),AI=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e}(OI),II=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return d(e,t),e.prototype.getDefaultShape=function(){return new AI},e.prototype.buildPath=function(t,e){var n=e.points,r=e.stackedOnPoints,i=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0;o--)if(!wI(n[2*o-2],n[2*o-1]))break;for(;ie){r?i.push(a(r,l,e)):n&&i.push(a(n,l,0),a(n,l,e));break}n&&(i.push(a(n,l,0)),n=null),i.push(l),r=l}}return i}function BI(t,e,n){var r=t.getVisual("visualMeta");if(r&&r.length&&t.count()&&"cartesian2d"===e.type){for(var i,o,a=r.length-1;a>=0;a--){var s=t.getDimensionInfo(r[a].dimension);if(i=s&&s.coordDim,"x"===i||"y"===i){o=r[a];break}}if(o){var l=e.getAxis(i),u=v["map"](o.stops,(function(t){return{coord:l.toGlobalCoord(l.dataToCoord(t.value)),color:t.color}})),c=u.length,h=o.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),h.reverse());var f=zI(u,"x"===i?n.getWidth():n.getHeight()),p=f.length;if(!p&&c)return u[0].coord<0?h[1]?h[1]:u[c-1].color:h[0]?h[0]:u[0].color;var d=10,g=f[0].coord-d,y=f[p-1].coord+d,m=y-g;if(m<.001)return"transparent";v["each"](f,(function(t){t.offset=(t.coord-g)/m})),f.push({offset:p?f[p-1].offset:.5,color:h[1]||"transparent"}),f.unshift({offset:p?f[0].offset:.5,color:h[0]||"transparent"});var b=new vv(0,0,0,0,f,!0);return b[i]=g,b[i+"2"]=y,b}}}function VI(t,e,n){var r=t.get("showAllSymbol"),i="auto"===r;if(!r||i){var o=n.getAxesByScale("ordinal")[0];if(o&&(!i||!FI(o,e))){var a=e.mapDimension(o.dim),s={};return v["each"](o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function FI(t,e){var n=t.getExtent(),r=Math.abs(n[1]-n[0])/t.scale.count();isNaN(r)&&(r=0);for(var i=e.count(),o=Math.max(1,Math.round(i/5)),a=0;ar)return!1;return!0}function GI(t,e){return isNaN(t)||isNaN(e)}function HI(t){for(var e=t.length/2;e>0;e--)if(!GI(t[2*e-2],t[2*e-1]))break;return e-1}function WI(t,e){return[t[2*e],t[2*e+1]]}function UI(t,e,n){for(var r,i,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u=e||r>=e&&i<=e){l=u;break}s=u,r=i}else r=i;return{range:[s,l],t:(e-r)/(i-r)}}function YI(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;e0&&"bolder"===t.get(["emphasis","lineStyle","width"])){var E=p.getState("emphasis").style;E.lineWidth=+p.style.lineWidth+1}Hs(p).seriesIndex=t.seriesIndex,$l(p,L,j,P);var R=EI(t.get("smooth")),N=t.get("smoothMonotone");if(p.setShape({smooth:R,smoothMonotone:N,connectNulls:S}),d){var z=a.getCalculationInfo("stackedOnSeries"),B=0;d.useStyle(v["defaults"](l.getAreaStyle(),{fill:T,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),z&&(B=EI(z.get("smooth"))),d.setShape({smooth:R,stackedOnSmooth:B,smoothMonotone:N,connectNulls:S}),Kl(d,t,"areaStyle"),Hs(d).seriesIndex=t.seriesIndex,$l(d,L,j,P)}var V=function(t){r._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=V)})),this._polyline.onHoverStateChange=V,this._data=a,this._coordSys=i,this._stackedOnPoints=_,this._points=u,this._step=I,this._valueOrigin=b,t.get("triggerLineEvent")&&(this.packEventData(t,p),d&&this.packEventData(t,d))},e.prototype.packEventData=function(t,e){Hs(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,e,n,r){var i=t.getData(),o=$i(i,r);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=i.getLayout("points"),s=i.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;var c=t.get("zlevel")||0,h=t.get("z")||0;s=new uI(i,o),s.x=l,s.y=u,s.setZ(c,h);var f=s.getSymbolPath().getTextContent();f&&(f.zlevel=c,f.z=h,f.z2=this._polyline.z2+1),s.__temp=!0,i.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else dy.prototype.highlight.call(this,t,e,n,r)},e.prototype.downplay=function(t,e,n,r){var i=t.getData(),o=$i(i,r);if(this._changePolyState("normal"),null!=o&&o>=0){var a=i.getItemGraphicEl(o);a&&(a.__temp?(i.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else dy.prototype.downplay.call(this,t,e,n,r)},e.prototype._changePolyState=function(t){var e=this._polygon;bl(this._polyline,t),e&&bl(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MI({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new II({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var r,i,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(r=o.isHorizontal(),i=!1):"polar"===e.type&&(r="angle"===o.dim,i=!0);var s=t.hostModel,l=s.get("animationDuration");v["isFunction"](l)&&(l=l(null));var u=s.get("animationDelay")||0,c=v["isFunction"](u)?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var h=[t.x,t.y],f=void 0,p=void 0,d=void 0;if(n)if(i){var g=n,y=e.pointToCoord(h);r?(f=g.startAngle,p=g.endAngle,d=-y[1]/180*Math.PI):(f=g.r0,p=g.r,d=y[0])}else{var m=n;r?(f=m.x,p=m.x+m.width,d=t.x):(f=m.y+m.height,p=m.y,d=t.y)}var b=p===f?0:(d-f)/(p-f);a&&(b=1-b);var x=v["isFunction"](u)?u(o):l*b+c,_=s.getSymbolPath(),w=_.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:x}),w&&w.animateFrom({style:{opacity:0}},{duration:300,delay:x}),_.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e,n){var r=t.getModel("endLabel");if(YI(t)){var i=t.getData(),o=this._polyline,a=i.getLayout("points");if(!a)return o.removeTextContent(),void(this._endLabel=null);var s=this._endLabel;s||(s=this._endLabel=new Gs({z2:200}),s.ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var l=HI(a);l>=0&&(bu(o,xu(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:l,defaultText:function(t,e,n){return null!=n?aI(i,n):oI(i,t)},enableTextSetter:!0},XI(r,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,r,i,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==r.originalX&&(r.originalX=s.x,r.originalY=s.y);var u=n.getLayout("points"),c=n.hostModel,h=c.get("connectNulls"),f=o.get("precision"),p=o.get("distance")||0,d=a.getBaseAxis(),g=d.isHorizontal(),v=d.inverse,y=e.shape,m=v?g?y.x:y.y+y.height:g?y.x+y.width:y.y,b=(g?p:0)*(v?-1:1),x=(g?0:-p)*(v?-1:1),_=g?"x":"y",w=UI(u,m,_),S=w.range,O=S[1]-S[0],M=void 0;if(O>=1){if(O>1&&!h){var A=WI(u,S[0]);s.attr({x:A[0]+b,y:A[1]+x}),i&&(M=c.getRawValue(S[0]))}else{A=l.getPointOn(m,_);A&&s.attr({x:A[0]+b,y:A[1]+x});var I=c.getRawValue(S[0]),T=c.getRawValue(S[1]);i&&(M=oo(n,f,I,T,w.t))}r.lastFrameIndex=S[0]}else{var C=1===t||r.lastFrameIndex>0?S[0]:0;A=WI(u,C);i&&(M=c.getRawValue(C)),s.attr({x:A[0]+b,y:A[1]+x})}i&&Du(s).setLabelText(M)}},e.prototype._doUpdateAnimation=function(t,e,n,r,i,o,a){var s=this._polyline,l=this._polygon,u=t.hostModel,c=bI(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=c.current,f=c.stackedOnCurrent,p=c.next,d=c.stackedOnNext;if(i&&(h=NI(c.current,n,i,a),f=NI(c.stackedOnCurrent,n,i,a),p=NI(c.next,n,i,a),d=NI(c.stackedOnNext,n,i,a)),PI(h,p)>3e3||l&&PI(f,d)>3e3)return s.stopAnimation(),s.setShape({points:p}),void(l&&(l.stopAnimation(),l.setShape({points:p,stackedOnPoints:d})));s.shape.__points=c.current,s.shape.points=h;var g={shape:{points:p}};c.current!==h&&(g.shape.__points=c.next),s.stopAnimation(),lu(s,g,u),l&&(l.setShape({points:h,stackedOnPoints:f}),l.stopAnimation(),lu(l,{shape:{stackedOnPoints:d}},u),s.shape.points!==l.shape.points&&(l.shape.points=s.shape.points));for(var v=[],y=c.status,m=0;me&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n10&&"cartesian2d"===o.type&&i){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),c=n.getDevicePixelRatio(),h=Math.abs(u[1]-u[0])*(c||1),f=Math.round(a/h);if(isFinite(f)&&f>1){"lttb"===i&&t.setData(r.lttbDownSample(r.mapDimension(l.dim),1/f));var p=void 0;Object(v["isString"])(i)?p=JI[i]:Object(v["isFunction"])(i)&&(p=i),p&&t.setData(r.downSample(r.mapDimension(l.dim),1/f,p,QI))}}}}}function eT(t){t.registerChartView(ZI),t.registerSeriesModel(iI),t.registerLayout(KI("line",!0)),t.registerVisual({seriesType:"line",reset:function(t){var e=t.getData(),n=t.getModel("lineStyle").getLineStyle();n&&!n.stroke&&(n.stroke=e.getVisual("style").fill),e.setVisual("legendLineStyle",n)}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,tT("line"))}var nT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.getInitialData=function(t,e){return pw(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t,e,n){var r=this.coordinateSystem;if(r&&r.clampData){var i=r.clampData(t),o=r.dataToPoint(i);if(n)Object(v["each"])(r.getAxes(),(function(t,n){if("category"===t.type&&null!=e){var r=t.getTicksCoords(),a=i[n],s="x1"===e[n]||"y1"===e[n];if(s&&(a+=1),r.length<2)return;if(2===r.length)return void(o[n]=t.toGlobalCoord(t.getExtent()[s?1:0]));for(var l=void 0,u=void 0,c=1,h=0;ha){u=(f+l)/2;break}1===h&&(c=p-r[0].tickValue)}null==u&&(l?l&&(u=r[r.length-1].coord):u=r[0].coord),o[n]=t.toGlobalCoord(u)}}));else{var a=this.getData(),s=a.getLayout("offset"),l=a.getLayout("size"),u=r.getBaseAxis().isHorizontal()?0:1;o[u]+=s+l/2}return o}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Ud);Ud.registerClass(nT);var rT=nT,iT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.getInitialData=function(){return pw(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=Zu(rT.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(rT),oT=iT,aT=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return t}(),sT=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return d(e,t),e.prototype.getDefaultShape=function(){return new aT},e.prototype.buildPath=function(t,e){var n=e.cx,r=e.cy,i=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-i),s=i+a,l=e.startAngle,u=e.endAngle,c=e.clockwise,h=2*Math.PI,f=c?u-lMath.PI/2&&c<1.5*Math.PI&&(c-=Math.PI),t.setTextConfig({rotation:c})}}function hT(t,e,n){return e*Math.sin(t)*(n?-1:1)}function fT(t,e,n){return e*Math.cos(t)*(n?1:-1)}function pT(t,e,n){var r=t.get("borderRadius");if(null==r)return n?{cornerRadius:0}:null;Object(v["isArray"])(r)||(r=[r,r,r,r]);var i=Math.abs(e.r||0-e.r0||0);return{cornerRadius:Object(v["map"])(r,(function(t){return xr(t,i)}))}}var dT=Math.max,gT=Math.min;function vT(t,e){var n=t.getArea&&t.getArea();if(kI(t,"cartesian2d")){var r=t.getBaseAxis();if("category"!==r.type||!r.onBand){var i=e.getLayout("bandWidth");r.isHorizontal()?(n.x-=i,n.width+=2*i):(n.y-=i,n.height+=2*i)}}return n}var yT=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return d(e,t),e.prototype.render=function(t,e,n,r){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var i=t.get("coordinateSystem");("cartesian2d"===i||"polar"===i)&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,r))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._progressiveEls=[],this._incrementalRenderLarge(t,e)},e.prototype.eachRendered=function(t){oy(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,r){var i,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?i=u.isHorizontal():"polar"===l.type&&(i="angle"===u.dim);var c=t.isAnimationEnabled()?t:null,h=xT(t,l);h&&this._enableRealtimeSort(h,a,n);var f=t.get("clip",!0)||h,p=vT(l,a);o.removeClipPath();var d=t.get("roundCap",!0),g=t.get("showBackground",!0),v=t.getModel("backgroundStyle"),y=v.get("borderRadius")||0,m=[],b=this._backgroundEls,x=r&&r.isInitSort,_=r&&"changeAxisOrder"===r.type;function w(t){var e=AT[l.type](a,t),n=NT(l,i,e);return n.useStyle(v.getItemStyle()),"cartesian2d"===l.type?n.setShape("r",y):n.setShape("cornerRadius",y),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),r=AT[l.type](a,e,n);if(g&&w(e),a.hasValue(e)&&MT[l.type](r)){var s=!1;f&&(s=mT[l.type](p,r));var v=bT[l.type](t,a,e,r,i,c,u.model,!1,d);h&&(v.forceLabelAnimation=!0),CT(v,a,e,n,r,t,i,"polar"===l.type),x?v.attr({shape:r}):h?_T(h,c,v,r,e,i,!1,!1):uu(v,{shape:r},t,e),a.setItemGraphicEl(e,v),o.add(v),v.ignore=s}})).update((function(e,n){var r=a.getItemModel(e),S=AT[l.type](a,e,r);if(g){var O=void 0;0===b.length?O=w(n):(O=b[n],O.useStyle(v.getItemStyle()),"cartesian2d"===l.type?O.setShape("r",y):O.setShape("cornerRadius",y),m[e]=O);var M=AT[l.type](a,e),A=RT(i,M,l);lu(O,{shape:A},c,e)}var I=s.getItemGraphicEl(n);if(a.hasValue(e)&&MT[l.type](S)){var T=!1;if(f&&(T=mT[l.type](p,S),T&&o.remove(I)),I?du(I):I=bT[l.type](t,a,e,S,i,c,u.model,!!I,d),h&&(I.forceLabelAnimation=!0),_){var C=I.getTextContent();if(C){var D=Du(C);null!=D.prevValue&&(D.prevValue=D.value)}}else CT(I,a,e,r,S,t,i,"polar"===l.type);x?I.attr({shape:S}):h?_T(h,c,I,S,e,i,!0,_):lu(I,{shape:S},t,e,null),a.setItemGraphicEl(e,I),I.ignore=T,o.add(I)}else o.remove(I)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&pu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Nr);S.removeAll();for(var O=0;Oo)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,r=n.getExtent(),i=Math.max(0,r[0]),o=Math.min(r[1],n.getOrdinalMeta().categories.length-1);i<=o;++i)if(t.ordinalNumbers[i]!==n.getRawOrdinalNumber(i))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,r){if(this._isOrderChangedWithinSameData(t,e,n)){var i=this._dataSort(t,n,e);this._isOrderDifferentInView(i,n)&&(this._removeOnRenderedListener(r),r.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:i}))}},e.prototype._dispatchInitSort=function(t,e,n){var r=e.baseAxis,i=this._dataSort(t,r,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:r.dim+"Axis",isInitSort:!0,axisId:r.index,sortInfo:i})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){pu(e,t,Hs(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(dy),mT={cartesian2d:function(t,e){var n=e.width<0?-1:1,r=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),r<0&&(e.y+=e.height,e.height=-e.height);var i=t.x+t.width,o=t.y+t.height,a=dT(e.x,t.x),s=gT(e.x+e.width,i),l=dT(e.y,t.y),u=gT(e.y+e.height,o),c=si?s:a,e.y=h&&l>o?u:l,e.width=c?0:s-a,e.height=h?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),r<0&&(e.y+=e.height,e.height=-e.height),c||h},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var r=e.r;e.r=e.r0,e.r0=r}var i=gT(e.r,t.r),o=dT(e.r0,t.r0);e.r=i,e.r0=o;var a=i-o<0;if(n<0){r=e.r;e.r=e.r0,e.r0=r}return a}},bT={cartesian2d:function(t,e,n,r,i,o,a,s,l){var u=new Os({shape:Object(v["extend"])({},r),z2:1});if(u.__dataIndex=n,u.name="item",o){var c=u.shape,h=i?"height":"width";c[h]=0}return u},polar:function(t,e,n,r,i,o,a,s,l){var u=!i&&l?lT:Fg,c=new u({shape:r,z2:1});c.name="item";var h=TT(i);if(c.calculateTextPosition=uT(h,{isRoundCap:u===lT}),o){var f=c.shape,p=i?"r":"endAngle",d={};f[p]=i?r.r0:r.startAngle,d[p]=r[p],(s?lu:uu)(c,{shape:d},o)}return c}};function xT(t,e){var n=t.get("realtimeSort",!0),r=e.getBaseAxis();if(n&&"category"===r.type&&"cartesian2d"===e.type)return{baseAxis:r,otherAxis:e.getOtherAxis(r)}}function _T(t,e,n,r,i,o,a,s){var l,u;o?(u={x:r.x,width:r.width},l={y:r.y,height:r.height}):(u={y:r.y,height:r.height},l={x:r.x,width:r.width}),s||(a?lu:uu)(n,{shape:l},e,i,null);var c=e?t.baseAxis.model:null;(a?lu:uu)(n,{shape:u},c,i)}function wT(t,e){for(var n=0;n0?1:-1,a=r.height>0?1:-1;return{x:r.x+o*i/2,y:r.y+a*i/2,width:r.width-o*i,height:r.height-a*i}},polar:function(t,e,n){var r=t.getItemLayout(e);return{cx:r.cx,cy:r.cy,r0:r.r0,r:r.r,startAngle:r.startAngle,endAngle:r.endAngle,clockwise:r.clockwise}}};function IT(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}function TT(t){return function(t){var e=t?"Arc":"Angle";return function(t){switch(t){case"start":case"insideStart":case"end":case"insideEnd":return t+e;default:return t}}}(t)}function CT(t,e,n,r,i,o,a,s){var l=e.getItemVisual(n,"style");if(s){if(!o.get("roundCap")){var u=t.shape,c=pT(r.getModel("itemStyle"),u,!0);Object(v["extend"])(u,c),t.setShape(u)}}else{var h=r.get(["itemStyle","borderRadius"])||0;t.setShape("r",h)}t.useStyle(l);var f=r.getShallow("cursor");f&&t.attr("cursor",f);var p=s?a?i.r>=i.r0?"endArc":"startArc":i.endAngle>=i.startAngle?"endAngle":"startAngle":a?i.height>=0?"bottom":"top":i.width>=0?"right":"left",d=xu(r);bu(t,d,{labelFetcher:o,labelDataIndex:n,defaultText:oI(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:p});var g=t.getTextContent();if(s&&g){var y=r.get(["label","position"]);t.textConfig.inside="middle"===y||null,cT(t,"outside"===y?p:y,TT(a),r.get(["label","rotate"]))}ku(g,d,o.getRawValue(n),(function(t){return aI(e,t)}));var m=r.getModel(["emphasis"]);$l(t,m.get("focus"),m.get("blurScope"),m.get("disabled")),Kl(t,r),IT(i)&&(t.style.fill="none",t.style.stroke="none",Object(v["each"])(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}function DT(t,e){var n=t.get(["itemStyle","borderColor"]);if(!n||"none"===n)return 0;var r=t.get(["itemStyle","borderWidth"])||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),o=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(r,i,o)}var kT=function(){function t(){}return t}(),LT=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return d(e,t),e.prototype.getDefaultShape=function(){return new kT},e.prototype.buildPath=function(t,e){for(var n=e.points,r=this.baseDimIdx,i=1-this.baseDimIdx,o=[],a=[],s=this.barWidth,l=0;l=0?n:null}),30,!1);function ET(t,e,n){for(var r=t.baseDimIdx,i=1-r,o=t.shape.points,a=t.largeDataIndices,s=[],l=[],u=t.barWidth,c=0,h=o.length/3;c=s[0]&&e<=s[0]+l[0]&&n>=s[1]&&n<=s[1]+l[1])return a[c]}return-1}function RT(t,e,n){if(kI(n,"cartesian2d")){var r=e,i=n.getArea();return{x:t?r.x:i.x,y:t?i.y:r.y,width:t?r.width:i.width,height:t?i.height:r.height}}i=n.getArea();var o=e;return{cx:i.cx,cy:i.cy,r0:t?i.r0:o.r0,r:t?i.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}function NT(t,e,n){var r="polar"===t.type?Fg:Os;return new r({shape:RT(e,n,t),silent:!0,z2:0})}var zT=yT;function BT(t){t.registerChartView(zT),t.registerSeriesModel(oT),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,v["curry"](Yw,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,$w("bar")),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,tT("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))}var VT=2*Math.PI,FT=Math.PI/180;function GT(t,e){return sh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function HT(t,e){var n=GT(t,e),r=t.get("center"),i=t.get("radius");v["isArray"](i)||(i=[0,i]);var o,a,s=Qr(n.width,e.getWidth()),l=Qr(n.height,e.getHeight()),u=Math.min(s,l),c=Qr(i[0],u/2),h=Qr(i[1],u/2),f=t.coordinateSystem;if(f){var p=f.dataToPoint(r);o=p[0]||0,a=p[1]||0}else v["isArray"](r)||(r=[r,r]),o=Qr(r[0],s)+n.x,a=Qr(r[1],l)+n.y;return{cx:o,cy:a,r0:c,r:h}}function WT(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),r=e.mapDimension("value"),i=GT(t,n),o=HT(t,n),a=o.cx,s=o.cy,l=o.r,u=o.r0,c=-t.get("startAngle")*FT,h=t.get("minAngle")*FT,f=0;e.each(r,(function(t){!isNaN(t)&&f++}));var p=e.getSum(r),d=Math.PI/(p||f)*2,g=t.get("clockwise"),v=t.get("roseType"),y=t.get("stillShowZeroSum"),m=e.getDataExtent(r);m[0]=0;var b=VT,x=0,_=c,w=g?1:-1;if(e.setLayout({viewRect:i,r:l}),e.each(r,(function(t,n){var r;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:a,cy:s,r0:u,r:v?NaN:l});else{r="area"!==v?0===p&&y?d:t*d:VT/f,rn?a:o,c=Math.abs(l.label.y-n);if(c>=u.maxY){var h=l.label.x-e-l.len2*i,f=r+l.len,d=Math.abs(h)t.unconstrainedWidth?null:p:null;r.setStyle("width",d)}var g=r.getBoundingRect();o.width=g.width;var v=(r.style.margin||0)+2.1;o.height=g.height+v,o.y-=(o.height-h)/2}}}function ZT(t){return"center"===t.position}function KT(t){var e,n,r=t.getData(),i=[],o=!1,a=(t.get("minShowLabelAngle")||0)*YT,s=r.getLayout("viewRect"),l=r.getLayout("r"),u=s.width,c=s.x,h=s.y,f=s.height;function p(t){t.ignore=!0}function d(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}r.each((function(t){var s=r.getItemGraphicEl(t),h=s.shape,f=s.getTextContent(),g=s.getTextGuideLine(),y=r.getItemModel(t),m=y.getModel("label"),b=m.get("position")||y.get(["emphasis","label","position"]),x=m.get("distanceToLabelLine"),_=m.get("alignTo"),w=Qr(m.get("edgeDistance"),u),S=m.get("bleedMargin"),O=y.getModel("labelLine"),M=O.get("length");M=Qr(M,u);var A=O.get("length2");if(A=Qr(A,u),Math.abs(h.endAngle-h.startAngle)0?"right":"left":L>0?"left":"right"}var F=Math.PI,G=0,H=m.get("rotate");if(Object(v["isNumber"])(H))G=H*(F/180);else if("center"===b)G=0;else if("radial"===H||!0===H){var W=L<0?-k+F:-k;G=W}else if("tangential"===H&&"outside"!==b&&"outer"!==b){var U=Math.atan2(L,j);U<0&&(U=2*F+U);var Y=j>0;Y&&(U=F+U),G=U-F}if(o=!!G,f.x=I,f.y=T,f.rotation=G,f.setStyle({verticalAlign:"middle"}),P){f.setStyle({align:D});var $=f.states.select;$&&($.x+=f.x,$.y+=f.y)}else{var X=f.getBoundingRect().clone();X.applyTransform(f.getComputedTransform());var q=(f.style.margin||0)+2.1;X.y-=q/2,X.height+=q,i.push({label:f,labelLine:g,position:b,len:M,len2:A,minTurnAngle:O.get("minTurnAngle"),maxSurfaceAngle:O.get("maxSurfaceAngle"),surfaceNormal:new Lt(L,j),linePoints:C,textAlign:D,labelDistance:x,labelAlignTo:_,edgeDistance:w,bleedMargin:S,rect:X,unconstrainedWidth:X.width,labelStyleWidth:f.style.width})}s.setTextConfig({inside:P})}})),!o&&t.get("avoidLabelOverlap")&&XT(i,e,n,l,u,f,c,h);for(var g=0;g0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u=r.r0}},e.type="pie",e}(dy),tC=QT;function eC(t,e,n){e=Object(v["isArray"])(e)&&{coordDimensions:e}||Object(v["extend"])({encodeDefine:t.getEncode()},e);var r=t.getSource(),i=Z_(r,e).dimensions,o=new X_(i,t);return o.initData(r,n),o}var nC=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){var e=this._getRawData();return e.indexOfName(t)>=0},t.prototype.indexOfName=function(t){var e=this._getDataWithEncodedVisual();return e.indexOfName(t)},t.prototype.getItemVisual=function(t,e){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,e)},t}(),rC=nC,iC=Xi(),oC=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new rC(v["bind"](this.getData,this),v["bind"](this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return eC(this,{coordDimensions:["value"],encodeDefaulter:v["curry"](Ph,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),r=iC(n),i=r.seats;if(!i){var o=[];n.each(n.mapDimension("value"),(function(t){o.push(t)})),i=r.seats=ai(o,n.hostModel.get("percentPrecision"))}var a=t.prototype.getDataParams.call(this,e);return a.percent=i[e]||0,a.$vars.push("percent"),a},e.prototype._defaultLabelLine=function(t){Ii(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Ud),aC=oC;function sC(t){return{seriesType:t,reset:function(t,e){var n=t.getData();n.filterSelf((function(t){var e=n.mapDimension("value"),r=n.get(e,t);return!(Object(v["isNumber"])(r)&&!isNaN(r)&&r<0)}))}}}function lC(t){t.registerChartView(tC),t.registerSeriesModel(aC),cm("pie",t.registerAction),t.registerLayout(Object(v["curry"])(WT,"pie")),t.registerProcessor(UT("pie")),t.registerProcessor(sC("pie"))}var uC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return d(e,t),e.prototype.getInitialData=function(t,e){return pw(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(Ud),cC=uC,hC=4,fC=function(){function t(){}return t}(),pC=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return d(e,t),e.prototype.getDefaultShape=function(){return new fC},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,e){var n,r=e.points,i=e.size,o=this.symbolProxy,a=o.shape,s=t.getContext?t.getContext():t,l=s&&i[0]=0;s--){var l=2*s,u=r[l]-o/2,c=r[l+1]-a/2;if(t>=u&&e>=c&&t<=u+o&&e<=c+a)return s}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),r=this.getBoundingRect();if(t=n[0],e=n[1],r.contain(t,e)){var i=this.hoverDataIdx=this.findDataIndex(t,e);return i>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.points,r=e.size,i=r[0],o=r[1],a=1/0,s=1/0,l=-1/0,u=-1/0,c=0;c=0&&(l.dataIndex=n+(t.startIndex||0))}))},t.prototype.remove=function(){this._clear()},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),gC=dC,vC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=t.getData(),i=this._updateSymbolDraw(r,t);i.updateData(r,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var r=t.getData(),i=this._updateSymbolDraw(r,t);i.incrementalPrepareUpdate(r),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var r=t.getData();if(this.group.dirty(),!this._finished||r.count()>1e4)return{update:!0};var i=KI("").reset(t,e,n);i.progress&&i.progress({start:0,end:r.count(),count:r.count()},r),this._symbolDraw.updateLayout(r)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,r=e.pipelineContext,i=r.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new gC:new dI,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(dy),yC=vC,mC=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(yh),bC=mC,xC=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Ji).models[0]},e.type="cartesian2dAxis",e}(yh);v["mixin"](xC,zS);var _C={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},wC=v["merge"]({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},_C),SC=v["merge"]({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},_C),OC=v["merge"]({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},SC),MC=v["defaults"]({logBase:10},SC),AC={category:wC,value:SC,time:OC,log:MC},IC={value:1,category:1,time:1,log:1};function TC(t,e,n,r){Object(v["each"])(IC,(function(i,o){var a=Object(v["merge"])(Object(v["merge"])({},AC[o],!0),r,!0),s=function(t){function n(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e+"Axis."+o,n}return d(n,t),n.prototype.mergeDefaultAndTheme=function(t,e){var n=ch(this),r=n?fh(t):{},i=e.getTheme();Object(v["merge"])(t,i.get(o+"Axis")),Object(v["merge"])(t,this.getDefaultOption()),t.type=CC(t),n&&hh(t,r,n)},n.prototype.optionUpdated=function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=bw.createByAxisModel(this))},n.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},n.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},n.type=e+"Axis."+o,n.defaultOption=a,n}(n);t.registerComponentModel(s)})),t.registerSubTypeDefaulter(e+"Axis",CC)}function CC(t){return t.type||(t.data?"category":"value")}var DC=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return v["map"](this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),v["filter"](this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),kC=DC,LC=["x","y"];function jC(t){return"interval"===t.type||"time"===t.type}var PC=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=LC,e}return d(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(jC(t)&&jC(e)){var n=t.getExtent(),r=e.getExtent(),i=this.dataToPoint([n[0],r[0]]),o=this.dataToPoint([n[1],r[1]]),a=n[1]-n[0],s=r[1]-r[0];if(a&&s){var l=(o[0]-i[0])/a,u=(o[1]-i[1])/s,c=i[0]-n[0]*l,h=i[1]-r[0]*u,f=this._transform=[l,0,0,u,c,h];this._invTransform=Ct([],f)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,e){var n=this.dataToPoint(t),r=this.dataToPoint(e),i=this.getArea(),o=new Gt(n[0],n[1],r[0]-n[0],r[1]-n[1]);return i.intersect(o)},e.prototype.dataToPoint=function(t,e,n){n=n||[];var r=t[0],i=t[1];if(this._transform&&null!=r&&isFinite(r)&&null!=i&&isFinite(i))return B(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(r,e)),n[1]=a.toGlobalCoord(a.dataToCoord(i,e)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,r=this.getAxis("y").scale,i=n.getExtent(),o=r.getExtent(),a=n.parse(t[0]),s=r.parse(t[1]);return e=e||[],e[0]=Math.min(Math.max(Math.min(i[0],i[1]),a),Math.max(i[0],i[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){var n=[];if(this._invTransform)return B(n,t,this._invTransform);var r=this.getAxis("x"),i=this.getAxis("y");return n[0]=r.coordToData(r.toLocalCoord(t[0]),e),n[1]=i.coordToData(i.toLocalCoord(t[1]),e),n},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),r=Math.min(e[0],e[1]),i=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-r;return new Gt(n,r,i,o)},e}(kC),EC=PC,RC=function(t){function e(e,n,r,i,o){var a=t.call(this,e,n,r)||this;return a.index=0,a.type=i||"value",a.position=o||"bottom",a}return d(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(MO),NC=RC;function zC(t,e,n){n=n||{};var r=t.coordinateSystem,i=e.axis,o={},a=i.getAxesOnZeroOf()[0],s=i.position,l=a?"onZero":s,u=i.dim,c=r.getRect(),h=[c.x,c.x+c.width,c.y,c.y+c.height],f={left:0,right:1,top:0,bottom:1,onZero:2},p=e.get("offset")||0,d="x"===u?[h[2]-p,h[3]+p]:[h[0]-p,h[1]+p];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));d[f.onZero]=Math.max(Math.min(g,d[1]),d[0])}o.position=["y"===u?d[f[l]]:h[0],"x"===u?d[f[l]]:h[3]],o.rotation=Math.PI/2*("x"===u?0:1);var y={top:-1,bottom:1,left:-1,right:1};o.labelDirection=o.tickDirection=o.nameDirection=y[s],o.labelOffset=a?d[f[s]]-d[f.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),v["retrieve"](n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var m=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-m:m,o.z2=1,o}function BC(t){return"cartesian2d"===t.get("coordinateSystem")}function VC(t){var e={xAxisModel:null,yAxisModel:null};return v["each"](e,(function(n,r){var i=r.replace(/Model$/,""),o=t.getReferringComponents(i,Ji).models[0];e[r]=o})),e}var FC=Math.log;function GC(t,e,n){var r=jw.prototype,i=r.getTicks.call(n),o=r.getTicks.call(n,!0),a=i.length-1,s=r.getInterval.call(n),l=MS(t,e),u=l.extent,c=l.fixMin,h=l.fixMax;if("log"===t.type){var f=FC(t.base);u=[FC(u[0])/f,FC(u[1])/f]}t.setExtent(u[0],u[1]),t.calcNiceExtent({splitNumber:a,fixMin:c,fixMax:h});var p=r.getExtent.call(t);c&&(u[0]=p[0]),h&&(u[1]=p[1]);var d=r.getInterval.call(t),g=u[0],v=u[1];if(c&&h)d=(v-g)/a;else if(c){v=u[0]+d*a;while(vu[0]&&isFinite(g)&&isFinite(u[0]))d=ww(d),g=u[1]-d*a}else{var y=t.getTicks().length-1;y>a&&(d=ww(d));var m=d*a;v=Math.ceil(u[1]/d)*d,g=ti(v-m),g<0&&u[0]>=0?(g=0,v=ti(m)):v>0&&u[1]<=0&&(v=0,g=-ti(m))}var b=(i[0].value-o[0].value)/s,x=(i[a].value-o[a].value)/s;r.setExtent.call(t,g+d*b,v+d*x),r.setInterval.call(t,d),(b||x)&&r.setNiceExtent.call(t,g+d,v-d)}var HC=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=LC,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;function r(t){var e,n=Object(v["keys"])(t),r=n.length;if(r){for(var i=[],o=r-1;o>=0;o--){var a=+n[o],s=t[a],l=s.model,u=s.scale;xw(u)&&l.get("alignTicks")&&null==l.get("interval")?i.push(s):(IS(u,l),xw(u)&&(e=s))}i.length&&(e||(e=i.pop(),IS(e.scale,e.model)),Object(v["each"])(i,(function(t){GC(t.scale,t.model,e.scale)})))}}this._updateScale(t,this.model),r(n.x),r(n.y);var i={};Object(v["each"])(n.x,(function(t){UC(n,"y",t,i)})),Object(v["each"])(n.y,(function(t){UC(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var r=t.getBoxLayoutParams(),i=!n&&t.get("containLabel"),o=sh(r,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){Object(v["each"])(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],r=t.inverse?1:0;t.setExtent(n[r],n[1-r]),$C(t,e?o.x:o.y)}))}s(),i&&(Object(v["each"])(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=LS(t);if(e){var n=t.isHorizontal()?"height":"width",r=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+r,"top"===t.position?o.y+=e.height+r:"left"===t.position&&(o.x+=e.width+r)}}})),s()),Object(v["each"])(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}Object(v["isObject"])(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var r=0,i=this._coordsList;r0?"top":"bottom",r="center"):ci(o-qC)?(i=n>0?"bottom":"top",r="center"):(i="middle",r=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:r,textVerticalAlign:i}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),KC={axisLine:function(t,e,n,r){var i=e.get(["axisLine","show"]);if("auto"===i&&t.handleAutoShown&&(i=t.handleAutoShown("axisLine")),i){var o=e.axis.getExtent(),a=r.transform,s=[o[0],0],l=[o[1],0],u=s[0]>l[0];a&&(B(s,s,a),B(l,l,a));var c=Object(v["extend"])({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new nv({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});Fv(h.shape,h.style.lineWidth),h.anid="line",n.add(h);var f=e.get(["axisLine","symbol"]);if(null!=f){var p=e.get(["axisLine","symbolSize"]);Object(v["isString"])(f)&&(f=[f,f]),(Object(v["isString"])(p)||Object(v["isNumber"])(p))&&(p=[p,p]);var d=Cm(e.get(["axisLine","symbolOffset"])||0,p),g=p[0],y=p[1];Object(v["each"])([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,r){if("none"!==f[r]&&null!=f[r]){var i=Im(f[r],-g/2,-y/2,g,y,c.stroke,!0),o=e.r+e.offset,a=u?l:s;i.attr({rotation:e.rotate,x:a[0]+o*Math.cos(t.rotation),y:a[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(i)}}))}}},axisTickLabel:function(t,e,n,r){var i=iD(n,r,e,t),o=aD(n,r,e,t);if(QC(e,o,i),oD(n,r,e,t.tickDirection),e.get(["axisLabel","hideOverlap"])){var a=tM(Object(v["map"])(o,(function(t){return{label:t,priority:t.z2,defaultAttr:{ignore:t.ignore}}})));iM(a)}},axisName:function(t,e,n,r){var i=Object(v["retrieve"])(t.axisName,e.get("name"));if(i){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),c=e.get("nameGap")||0,h=e.axis.getExtent(),f=h[0]>h[1]?-1:1,p=["start"===s?h[0]-f*c:"end"===s?h[1]+f*c:(h[0]+h[1])/2,nD(s)?t.labelOffset+l*c:0],d=e.get("nameRotate");null!=d&&(d=d*qC/180),nD(s)?o=ZC.innerTextLayout(t.rotation,null!=d?d:t.rotation,l):(o=JC(t.rotation,s,d||0,h),a=t.axisNameAvailableWidth,null!=a&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},m=y.ellipsis,b=Object(v["retrieve"])(t.nameTruncateMaxWidth,y.maxWidth,a),x=new Gs({x:p[0],y:p[1],rotation:o.rotation,silent:ZC.isLabelSilent(e),style:_u(u,{text:i,font:g,overflow:"truncate",width:b,ellipsis:m,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(ry({el:x,componentModel:e,itemName:i}),x.__fullText=i,x.anid="name",e.get("triggerEvent")){var _=ZC.makeAxisEventDataBase(e);_.targetType="axisName",_.name=i,Hs(x).eventData=_}r.add(x),x.updateTransform(),n.add(x),x.decomposeTransform()}}};function JC(t,e,n,r){var i,o,a=ui(n-t),s=r[0]>r[1],l="start"===e&&!s||"start"!==e&&s;return ci(a-qC/2)?(o=l?"bottom":"top",i="center"):ci(a-1.5*qC)?(o=l?"top":"bottom",i="center"):(o="middle",i=a<1.5*qC&&a>qC/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:i,textVerticalAlign:o}}function QC(t,e,n){if(!ES(t.axis)){var r=t.get(["axisLabel","showMinLabel"]),i=t.get(["axisLabel","showMaxLabel"]);e=e||[],n=n||[];var o=e[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],c=n[1],h=n[n.length-1],f=n[n.length-2];!1===r?(tD(o),tD(u)):eD(o,a)&&(r?(tD(a),tD(c)):(tD(o),tD(u))),!1===i?(tD(s),tD(h)):eD(l,s)&&(i?(tD(l),tD(f)):(tD(s),tD(h)))}}function tD(t){t&&(t.ignore=!0)}function eD(t,e){var n=t&&t.getBoundingRect().clone(),r=e&&e.getBoundingRect().clone();if(n&&r){var i=St([]);return It(i,i,-t.rotation),n.applyTransform(Mt([],i,t.getLocalTransform())),r.applyTransform(Mt([],i,e.getLocalTransform())),n.intersect(r)}}function nD(t){return"middle"===t||"center"===t}function rD(t,e,n,r,i){for(var o=[],a=[],s=[],l=0;l=0||t===e}function dD(t){var e=gD(t);if(e){var n=e.axisPointerModel,r=e.axis.scale,i=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=r.parse(a));var s=yD(n);null==o&&(i.status=s?"show":"hide");var l=r.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a0&&!h.min?h.min=0:null!=h.min&&h.min<0&&!h.max&&(h.max=0);var f=a;null!=h.color&&(f=v["defaults"]({color:h.color},a));var p=v["merge"](v["clone"](h),{boundaryGap:t,splitNumber:e,scale:n,axisLine:r,axisTick:i,axisLabel:o,name:h.text,showName:s,nameLocation:"end",nameGap:u,nameTextStyle:f,triggerEvent:c},!1);if(v["isString"](l)){var d=p.name;p.name=l.replace("{value}",null!=d?d:"")}else v["isFunction"](l)&&(p.name=l(p.name,p));var g=new Uu(p,null,this.ecModel);return v["mixin"](g,zS.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=h},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:v["merge"]({lineStyle:{color:"#bbb"}},HD.axisLine),axisLabel:WD(HD.axisLabel,!1),axisTick:WD(HD.axisTick,!1),splitLine:WD(HD.splitLine,!0),splitArea:WD(HD.splitArea,!0),indicator:[]},e}(yh),YD=UD,$D=["axisLine","axisTickLabel","axisName"],XD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=this.group;r.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes(),r=v["map"](n,(function(t){var n=t.model.get("showName")?t.name:"",r=new sD(t.model,{axisName:n,position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return r}));v["each"](r,(function(t){v["each"]($D,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var r=t.get("shape"),i=t.getModel("splitLine"),o=t.getModel("splitArea"),a=i.getModel("lineStyle"),s=o.getModel("areaStyle"),l=i.get("show"),u=o.get("show"),c=a.get("color"),h=s.get("color"),f=v["isArray"](c)?c:[c],p=v["isArray"](h)?h:[h],d=[],g=[];if("circle"===r)for(var y=n[0].getTicksCoords(),m=e.cx,b=e.cy,x=0;x3?1.4:i>1?1.2:1.1,l=r>0?s:1/s;lk(this,"zoom","zoomOnMouseWheel",t,{scale:l,originX:o,originY:a,isAvailableBehavior:null})}if(n){var u=Math.abs(r),c=(r>0?1:-1)*(u>3?.4:u>1?.15:.05);lk(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:c,originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){if(!ok(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;lk(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})}},e}(Y);function lk(t,e,n,r,i){t.pointerChecker&&t.pointerChecker(r,i.originX,i.originY)&&(vt(r.event),uk(t,e,n,r,i))}function uk(t,e,n,r,i){i.isAvailableBehavior=Object(v["bind"])(ck,null,n,r),t.trigger(e,i)}function ck(t,e,n){var r=n[t];return!t||r&&(!Object(v["isString"])(r)||e.event[r+"Key"])}var hk=sk;function fk(t,e,n){var r=t.target;r.x+=e,r.y+=n,r.dirty()}function pk(t,e,n,r){var i=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,i.x-=(n-i.x)*(u-1),i.y-=(r-i.y)*(u-1),i.scaleX*=u,i.scaleY*=u,i.dirty()}var dk,gk={axisPointer:1,tooltip:1,brush:1};function vk(t,e,n){var r=e.getComponentByElement(t.topTarget),i=r&&r.coordinateSystem;return r&&r!==n&&!gk.hasOwnProperty(r.mainType)&&i&&i.model!==n}function yk(t){if(Object(v["isString"])(t)){var e=new DOMParser;t=e.parseFromString(t,"text/xml")}var n=t;9===n.nodeType&&(n=n.firstChild);while("svg"!==n.nodeName.toLowerCase()||1!==n.nodeType)n=n.nextSibling;return n}var mk={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},bk=Object(v["keys"])(mk),xk={"alignment-baseline":"textBaseline","stop-color":"stopColor"},_k=Object(v["keys"])(xk),wk=function(){function t(){this._defs={},this._root=null}return t.prototype.parse=function(t,e){e=e||{};var n=yk(t);this._defsUsePending=[];var r=new Nr;this._root=r;var i=[],o=n.getAttribute("viewBox")||"",a=parseFloat(n.getAttribute("width")||e.width),s=parseFloat(n.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(s)&&(s=null),Tk(n,r,null,!0,!1);var l,u,c=n.firstChild;while(c)this._parseNode(c,r,i,null,!1,!1),c=c.nextSibling;if(Lk(this._defs,this._defsUsePending),this._defsUsePending=[],o){var h=Pk(o);h.length>=4&&(l={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(l&&null!=a&&null!=s&&(u=Fk(l,{x:0,y:0,width:a,height:s}),!e.ignoreViewBox)){var f=r;r=new Nr,r.add(f),f.scaleX=f.scaleY=u.scale,f.x=u.x,f.y=u.y}return e.ignoreRootClip||null==a||null==s||r.setClipPath(new Os({shape:{x:0,y:0,width:a,height:s}})),{root:r,width:a,height:s,viewBoxRect:l,viewBoxTransform:u,named:i}},t.prototype._parseNode=function(t,e,n,r,i,o){var a,s=t.nodeName.toLowerCase(),l=r;if("defs"===s&&(i=!0),"text"===s&&(o=!0),"defs"===s||"switch"===s)a=e;else{if(!i){var u=dk[s];if(u&&Object(v["hasOwn"])(dk,s)){a=u.call(this,t,e);var c=t.getAttribute("name");if(c){var h={name:c,namedFrom:null,svgNodeTagLower:s,el:a};n.push(h),"g"===s&&(l=h)}else r&&n.push({name:r.name,namedFrom:r,svgNodeTagLower:s,el:a});e.add(a)}}var f=Sk[s];if(f&&Object(v["hasOwn"])(Sk,s)){var p=f.call(this,t),d=t.getAttribute("id");d&&(this._defs[d]=p)}}if(a&&a.isGroup){var g=t.firstChild;while(g)1===g.nodeType?this._parseNode(g,a,n,l,i,o):3===g.nodeType&&o&&this._parseText(g,a),g=g.nextSibling}},t.prototype._parseText=function(t,e){var n=new cs({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),Ck(n,e);var r=n.style,i=r.fontSize;i&&i<9&&(r.fontSize=9,n.scaleX*=i/9,n.scaleY*=i/9);var o=(r.fontSize||r.fontFamily)&&[r.fontStyle,r.fontWeight,(r.fontSize||12)+"px",r.fontFamily||"sans-serif"].join(" ");r.font=o;var a=n.getBoundingRect();return this._textX+=a.width,e.add(n),n},t.internalField=function(){dk={g:function(t,e){var n=new Nr;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n},rect:function(t,e){var n=new Os;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,e){var n=new xg;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,e){var n=new nv;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,e){var n=new Sg;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,e){var n,r=t.getAttribute("points");r&&(n=Ik(r));var i=new qg({shape:{points:n||[]},silent:!0});return Ak(e,i),Tk(t,i,this._defsUsePending,!1,!1),i},polyline:function(t,e){var n,r=t.getAttribute("points");r&&(n=Ik(r));var i=new Jg({shape:{points:n||[]},silent:!0});return Ak(e,i),Tk(t,i,this._defsUsePending,!1,!1),i},image:function(t,e){var n=new gs;return Ak(e,n),Tk(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,e){var n=t.getAttribute("x")||"0",r=t.getAttribute("y")||"0",i=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(i),this._textY=parseFloat(r)+parseFloat(o);var a=new Nr;return Ak(e,a),Tk(t,a,this._defsUsePending,!1,!0),a},tspan:function(t,e){var n=t.getAttribute("x"),r=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=r&&(this._textY=parseFloat(r));var i=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",a=new Nr;return Ak(e,a),Tk(t,a,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(o),a},path:function(t,e){var n=t.getAttribute("d")||"",r=dg(n);return Ak(e,r),Tk(t,r,this._defsUsePending,!1,!1),r.silent=!0,r}}}(),t}(),Sk={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),r=parseInt(t.getAttribute("x2")||"10",10),i=parseInt(t.getAttribute("y2")||"0",10),o=new vv(e,n,r,i);return Ok(t,o),Mk(t,o),o},radialgradient:function(t){var e=parseInt(t.getAttribute("cx")||"0",10),n=parseInt(t.getAttribute("cy")||"0",10),r=parseInt(t.getAttribute("r")||"0",10),i=new mv(e,n,r);return Ok(t,i),Mk(t,i),i}};function Ok(t,e){var n=t.getAttribute("gradientUnits");"userSpaceOnUse"===n&&(e.global=!0)}function Mk(t,e){var n=t.firstChild;while(n){if(1===n.nodeType&&"stop"===n.nodeName.toLocaleLowerCase()){var r=n.getAttribute("offset"),i=void 0;i=r&&r.indexOf("%")>0?parseInt(r,10)/100:r?parseFloat(r):0;var o={};Bk(n,o,o);var a=o.stopColor||n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:i,color:a})}n=n.nextSibling}}function Ak(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),Object(v["defaults"])(e.__inheritedStyle,t.__inheritedStyle))}function Ik(t){for(var e=Pk(t),n=[],r=0;r0;o-=2){var a=r[o],s=r[o-1],l=Pk(a);switch(i=i||wt(),s){case"translate":At(i,i,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":Tt(i,i,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":It(i,i,-parseFloat(l[0])*Rk);break;case"skewX":var u=Math.tan(parseFloat(l[0])*Rk);Mt(i,[1,0,u,1,0,0],i);break;case"skewY":var c=Math.tan(parseFloat(l[0])*Rk);Mt(i,[1,c,0,1,0,0],i);break;case"matrix":i[0]=parseFloat(l[0]),i[1]=parseFloat(l[1]),i[2]=parseFloat(l[2]),i[3]=parseFloat(l[3]),i[4]=parseFloat(l[4]),i[5]=parseFloat(l[5]);break}}e.setLocalTransform(i)}}var zk=/([^\s:;]+)\s*:\s*([^:;]+)/g;function Bk(t,e,n){var r=t.getAttribute("style");if(r){var i;zk.lastIndex=0;while(null!=(i=zk.exec(r))){var o=i[1],a=Object(v["hasOwn"])(mk,o)?mk[o]:null;a&&(e[a]=i[2]);var s=Object(v["hasOwn"])(xk,o)?xk[o]:null;s&&(n[s]=i[2])}}}function Vk(t,e,n){for(var r=0;r0,g={api:n,geo:s,mapOrGeoModel:t,data:a,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:h};"geoJSON"===s.resourceType?this._buildGeoJSON(g):"geoSVG"===s.resourceType&&this._buildSVG(g),this._updateController(t,e,n),this._updateMapSelectHandler(t,l,n,r)},t.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=v["createHashMap"](),n=v["createHashMap"](),r=this._regionsGroup,i=t.transformInfoRaw,o=t.mapOrGeoModel,a=t.data,s=t.geo.projection,l=s&&s.stream;function u(t,e){return e&&(t=e(t)),t&&[t[0]*i.scaleX+i.x,t[1]*i.scaleY+i.y]}function c(t){for(var e=[],n=!l&&s&&s.project,r=0;r=0)&&(f=i);var p=a?{normal:{align:"center",verticalAlign:"middle"}}:null;bu(e,xu(r),{labelFetcher:f,labelDataIndex:h,defaultText:n},p);var d=e.getTextContent();if(d&&(pL(d).ignore=d.ignore,e.textConfig&&a)){var g=e.getBoundingRect().clone();e.textConfig.layoutRect=g,e.textConfig.position=[(a[0]-g.x)/g.width*100+"%",(a[1]-g.y)/g.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function bL(t,e,n,r,i,o){t.data?t.data.setItemGraphicEl(o,e):Hs(e).eventData={componentType:"geo",componentIndex:i.componentIndex,geoIndex:i.componentIndex,name:n,region:r&&r.option||{}}}function xL(t,e,n,r,i){t.data||ry({el:e,componentModel:i,itemName:n,itemTooltipOption:r.get("tooltip")})}function _L(t,e,n,r,i){e.highDownSilentOnTouch=!!i.get("selectedMode");var o=r.getModel("emphasis"),a=o.get("focus");return $l(e,a,o.get("blurScope"),o.get("disabled")),t.isGeo&&tu(e,i,n),a}function wL(t,e,n){var r,i=[];function o(){r=[]}function a(){r.length&&(i.push(r),r=[])}var s=e({polygonStart:o,polygonEnd:a,lineStart:o,lineEnd:a,point:function(t,e){isFinite(t)&&isFinite(e)&&r.push([t,e])},sphere:function(){}});return!n&&s.polygonStart(),v["each"](t,(function(t){s.lineStart();for(var e=0;e-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(Ud),IL=AL;function TL(t,e){var n={};return v["each"](t,(function(t){t.each(t.mapDimension("value"),(function(e,r){var i="ec-"+t.getName(r);n[i]=n[i]||[],isNaN(e)||n[i].push(e)}))})),t[0].map(t[0].mapDimension("value"),(function(r,i){for(var o,a="ec-"+t[0].getName(i),s=0,l=1/0,u=-1/0,c=n[a].length,h=0;h1?(p.width=f,p.height=f/b):(p.height=f,p.width=f*b),p.y=h[1]-p.height/2,p.x=h[0]-p.width/2;else{var _=t.getBoxLayoutParams();_.aspect=b,p=sh(_,{width:y,height:m})}this.setViewRect(p.x,p.y,p.width,p.height),this.setCenter(t.get("center"),e),this.setZoom(t.get("zoom"))}function FL(t,e){v["each"](e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}var GL=function(){function t(){this.dimensions=RL}return t.prototype.create=function(t,e){var n=[];function r(t){return{nameProperty:t.get("nameProperty"),aspectScale:t.get("aspectScale"),projection:t.get("projection")}}t.eachComponent("geo",(function(t,i){var o=t.get("map"),a=new BL(o+i,o,v["extend"]({nameMap:t.get("nameMap")},r(t)));a.zoomLimit=t.get("scaleLimit"),n.push(a),t.coordinateSystem=a,a.model=t,a.resize=VL,a.resize(t,e)})),t.eachSeries((function(t){var e=t.get("coordinateSystem");if("geo"===e){var r=t.get("geoIndex")||0;t.coordinateSystem=n[r]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),v["each"](i,(function(t,i){var o=v["map"](t,(function(t){return t.get("nameMap")})),a=new BL(i,i,v["extend"]({nameMap:v["mergeAll"](o)},r(t[0])));a.zoomLimit=v["retrieve"].apply(null,v["map"](t,(function(t){return t.get("scaleLimit")}))),n.push(a),a.resize=VL,a.resize(t[0],e),v["each"](t,(function(t){t.coordinateSystem=a,FL(a,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n,r){for(var i=(t||[]).slice(),o=v["createHashMap"](),a=0;a=0;a--){var s=r[a];s.hierNode={defaultAncestor:null,ancestor:s,prelim:0,modifier:0,change:0,shift:0,i:a,thread:null},i.push(s)}}function ej(t,e){var n=t.isExpand?t.children:[],r=t.parentNode.children,i=t.hierNode.i?r[t.hierNode.i-1]:null;if(n.length){aj(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;i?(t.hierNode.prelim=i.hierNode.prelim+e(t,i),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else i&&(t.hierNode.prelim=i.hierNode.prelim+e(t,i));t.parentNode.hierNode.defaultAncestor=sj(t,i,t.parentNode.hierNode.defaultAncestor||r[0],e)}function nj(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function rj(t){return arguments.length?t:fj}function ij(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function oj(t,e){return sh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function aj(t){var e=t.children,n=e.length,r=0,i=0;while(--n>=0){var o=e[n];o.hierNode.prelim+=r,o.hierNode.modifier+=r,i+=o.hierNode.change,r+=o.hierNode.shift+i}}function sj(t,e,n,r){if(e){var i=t,o=t,a=o.parentNode.children[0],s=e,l=i.hierNode.modifier,u=o.hierNode.modifier,c=a.hierNode.modifier,h=s.hierNode.modifier;while(s=lj(s),o=uj(o),s&&o){i=lj(i),a=uj(a),i.hierNode.ancestor=t;var f=s.hierNode.prelim+h-o.hierNode.prelim-u+r(s,o);f>0&&(hj(cj(s,t,n),t,f),u+=f,l+=f),h+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=i.hierNode.modifier,c+=a.hierNode.modifier}s&&!lj(i)&&(i.hierNode.thread=s,i.hierNode.modifier+=h-l),o&&!uj(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-c,n=t)}return n}function lj(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function uj(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function cj(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function hj(t,e,n){var r=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=r,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=r}function fj(t,e){return t.parentNode===e.parentNode?1:2}var pj=function(){function t(){this.parentPoint=[],this.childPoints=[]}return t}(),dj=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new pj},e.prototype.buildPath=function(t,e){var n=e.childPoints,r=n.length,i=e.parentPoint,o=n[0],a=n[r-1];if(1===r)return t.moveTo(i[0],i[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,c=Qr(e.forkPosition,1),h=[];h[l]=i[l],h[u]=i[u]+(a[u]-i[u])*c,t.moveTo(i[0],i[1]),t.lineTo(h[0],h[1]),t.moveTo(o[0],o[1]),h[l]=o[l],t.lineTo(h[0],h[1]),h[l]=a[l],t.lineTo(h[0],h[1]),t.lineTo(a[0],a[1]);for(var f=1;fb.x,w||(_-=Math.PI));var O=w?"left":"right",M=s.getModel("label"),A=M.get("rotate"),I=A*(Math.PI/180),T=y.getTextContent();T&&(y.setTextConfig({position:M.get("position")||O,rotation:null==A?-_:I,origin:"center"}),T.setStyle("verticalAlign","middle"))}var C=s.get(["emphasis","focus"]),D="relative"===C?v["concatArray"](a.getAncestorsIndices(),a.getDescendantIndices()):"ancestor"===C?a.getAncestorsIndices():"descendant"===C?a.getDescendantIndices():null;D&&(Hs(n).focus=D),mj(i,a,c,n,d,p,g,r),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var r=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);r&&r.hoverState===Zs||bl(n.__edge,e)}})}function mj(t,e,n,r,i,o,a,s){var l=e.getModel(),u=t.get("edgeShape"),c=t.get("layout"),h=t.getOrient(),f=t.get(["lineStyle","curveness"]),p=t.get("edgeForkPosition"),d=l.getModel("lineStyle").getLineStyle(),g=r.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&(g||(g=r.__edge=new sv({shape:wj(c,h,f,i,i)})),lu(g,{shape:wj(c,h,f,o,a)},t));else if("polyline"===u)if("orthogonal"===c){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,m=[],b=0;be&&(e=r.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,r=n.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0)){var e=this.hostTree,n=e.data.getItemModel(this.dataIndex);return n.getModel(t)}},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,e=0;e=0){var r=n.getData().tree.root,i=t.targetNode;if(v["isString"](i)&&(i=r.getNodeById(i)),i&&r.contains(i))return{node:i};var o=t.targetNodeId;if(null!=o&&(i=r.getNodeById(o)))return{node:i}}}function Vj(t){var e=[];while(t)t=t.parentNode,t&&e.push(t);return e.reverse()}function Fj(t,e){var n=Vj(t);return v["indexOf"](n,e)>=0}function Gj(t,e){var n=[];while(t){var r=t.dataIndex;n.push({name:t.name,dataIndex:r,value:e.getRawValue(r)}),t=t.parentNode}return n.reverse(),n}var Hj=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return d(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},r=new Uu(n,this,this.ecModel),i=zj.createTree(e,this,o);function o(t){t.wrapMethod("getItemModel",(function(t,e){var n=i.getNodeByDataIndex(e);return n&&n.children.length&&n.isExpand||(t.parentModel=r),t}))}var a=0;i.eachNode("preorder",(function(t){t.depth>a&&(a=t.depth)}));var s=t.expandAndCollapse,l=s&&t.initialTreeDepth>=0?t.initialTreeDepth:a;return i.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=l})),i.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){var r=this.getData().tree,i=r.root.children[0],o=r.getNodeByDataIndex(t),a=o.getValue(),s=o.name;while(o&&o!==i)s=o.parentNode.name+"."+s,o=o.parentNode;return gd("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),r=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=Gj(r,this),n.collapsed=!r.isExpand,n},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(Ud),Wj=Hj;function Uj(t,e,n){var r,i=[t],o=[];while(r=i.pop())if(o.push(r),r.isExpand){var a=r.children;if(a.length)for(var s=0;s=0;o--)r.push(i[o])}}function $j(t,e){t.eachSeriesByType("tree",(function(t){Xj(t,e)}))}function Xj(t,e){var n=oj(t,e);t.layoutInfo=n;var r=t.get("layout"),i=0,o=0,a=null;"radial"===r?(i=2*Math.PI,o=Math.min(n.height,n.width)/2,a=rj((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(i=n.width,o=n.height,a=rj());var s=t.getData().tree.root,l=s.children[0];if(l){tj(s),Uj(l,ej,a),s.hierNode.modifier=-l.hierNode.prelim,Yj(l,nj);var u=l,c=l,h=l;Yj(l,(function(t){var e=t.getLayout().x;ec.getLayout().x&&(c=t),t.depth>h.depth&&(h=t)}));var f=u===c?1:a(u,c)/2,p=f-u.getLayout().x,d=0,g=0,v=0,y=0;if("radial"===r)d=i/(c.getLayout().x+f+p),g=o/(h.depth-1||1),Yj(l,(function(t){v=(t.getLayout().x+p)*d,y=(t.depth-1)*g;var e=ij(v,y);t.setLayout({x:e.x,y:e.y,rawX:v,rawY:y},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(c.getLayout().x+f+p),d=i/(h.depth-1||1),Yj(l,(function(t){y=(t.getLayout().x+p)*g,v="LR"===m?(t.depth-1)*d:i-(t.depth-1)*d,t.setLayout({x:v,y:y},!0)}))):"TB"!==m&&"BT"!==m||(d=i/(c.getLayout().x+f+p),g=o/(h.depth-1||1),Yj(l,(function(t){v=(t.getLayout().x+p)*d,y="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:v,y:y},!0)})))}}}function qj(t){t.eachSeriesByType("tree",(function(t){var e=t.getData(),n=e.tree;n.eachNode((function(t){var n=t.getModel(),r=n.getModel("itemStyle").getItemStyle(),i=e.ensureUniqueItemVisual(t.dataIndex,"style");Object(v["extend"])(i,r)}))}))}function Zj(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,r=e.getData().tree,i=r.getNodeByDataIndex(n);i.isExpand=!i.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e,n){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var r=e.coordinateSystem,i=XL(r,t,void 0,n);e.setCenter&&e.setCenter(i.center),e.setZoom&&e.setZoom(i.zoom)}))}))}function Kj(t){t.registerChartView(Sj),t.registerSeriesModel(Wj),t.registerLayout($j),t.registerVisual(qj),Zj(t)}var Jj=["treemapZoomToNode","treemapRender","treemapMove"];function Qj(t){for(var e=0;e1)n=n.parentNode;var i=Uh(t.ecModel,n.name||n.dataIndex+"",r);e.setVisual("decal",i)}))}var eP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return d(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};nP(n);var r=t.levels||[],i=this.designatedVisualItemStyle={},o=new Uu({itemStyle:i},this,e);r=t.levels=rP(r,e);var a=v["map"](r||[],(function(t){return new Uu(t,o,e)}),this),s=zj.createTree(n,this,l);function l(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),r=n?a[n.depth]:null;return t.parentModel=r||o,t}))}return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var r=this.getData(),i=this.getRawValue(t),o=r.getName(t);return gd("nameValue",{name:o,value:i})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),r=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=Gj(r,this),n.treePathInfo=n.treeAncestors,n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},v["extend"](this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=v["createHashMap"](),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){tP(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(Ud);function nP(t){var e=0;v["each"](t.children,(function(t){nP(t);var n=t.value;v["isArray"](n)&&(n=n[0]),e+=n}));var n=t.value;v["isArray"](n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),v["isArray"](t.value)?t.value[0]=n:t.value=n}function rP(t,e){var n=Ai(e.get("color")),r=Ai(e.get(["aria","decal","decals"]));if(n){var i,o;t=t||[],v["each"](t,(function(t){var e=new Uu(t),n=e.get("color"),r=e.get("decal");(e.get(["itemStyle","color"])||n&&"none"!==n)&&(i=!0),(e.get(["itemStyle","decal"])||r&&"none"!==r)&&(o=!0)}));var a=t[0]||(t[0]={});return i||(a.color=n.slice()),!o&&r&&(a.decal=r.slice()),t}}var iP=eP,oP=8,aP=8,sP=5,lP=function(){function t(t){this.group=new Nr,t.add(this.group)}return t.prototype.render=function(t,e,n,r){var i=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),i.get("show")&&n){var a=i.getModel("itemStyle"),s=i.getModel("emphasis"),l=a.getModel("textStyle"),u=s.getModel(["itemStyle","textStyle"]),c={pos:{left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,c,l),this._renderContent(t,c,a,s,l,u,r),lh(o,c.pos,c.box)}},t.prototype._prepare=function(t,e,n){for(var r=t;r;r=r.parentNode){var i=Vi(r.getModel().get("name"),""),o=n.getTextRect(i),a=Math.max(o.width+2*oP,e.emptyItemWidth);e.totalWidth+=a+aP,e.renderList.push({node:r,text:i,width:a})}},t.prototype._renderContent=function(t,e,n,r,i,o,a){for(var s=0,l=e.emptyItemWidth,u=t.get(["breadcrumb","height"]),c=ah(e.pos,e.box),h=e.totalWidth,f=e.renderList,p=r.getModel("itemStyle").getItemStyle(),d=f.length-1;d>=0;d--){var g=f[d],y=g.node,m=g.width,b=g.text;h>c.width&&(h-=m-l,m=l,b=null);var x=new qg({shape:{points:uP(s,0,m,u,d===f.length-1,0===d)},style:Object(v["defaults"])(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new Gs({style:_u(i,{text:b})}),textConfig:{position:"inside"},z2:1e4*tl,onclick:Object(v["curry"])(a,y)});x.disableLabelAnimation=!0,x.getTextContent().ensureState("emphasis").style=_u(o,{text:b}),x.ensureState("emphasis").style=p,$l(x,r.get("focus"),r.get("blurScope"),r.get("disabled")),this.group.add(x),cP(x,t,y),s+=m+aP}},t.prototype.remove=function(){this.group.removeAll()},t}();function uP(t,e,n,r,i,o){var a=[[i?t:t-sP,e],[t+n,e],[t+n,e+r],[i?t:t-sP,e+r]];return!o&&a.splice(2,0,[t+n+sP,e+r/2]),!i&&a.push([t,e+r/2]),a}function cP(t,e,n){Hs(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&Gj(n,e)}}var hP=lP,fP=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,r,i){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:r,easing:i}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){e--,e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},r=0,i=this._storage.length;rvP||Math.abs(t.dy)>vP)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var r=this.seriesModel.getData().tree.root;if(!r)return;var i=r.getLayout();if(!i)return;var o=new Gt(i.x,i.y,i.width,i.height),a=this.seriesModel.layoutInfo;e-=a.x,n-=a.y;var s=wt();At(s,s,[-e,-n]),Tt(s,s,[t.scale,t.scale]),At(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var r=e.findTarget(t.offsetX,t.offsetY);if(r){var i=r.node;if(i.getLayout().isLeafRoot)e._rootToNode(r);else if("zoomToNode"===n)e._zoomToNode(r);else if("link"===n){var o=i.hostTree.data.getItemModel(i.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&th(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var r=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2),n||(n={node:t.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new hP(this.group))).render(t,e,n.node,(function(e){"animating"!==r._state&&(Fj(t.getViewRoot(),e)?r._rootToNode({node:e}):r._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=AP(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n,r=this.seriesModel.getViewRoot();return r.eachNode({attr:"viewChildren",order:"preorder"},(function(r){var i=this._storage.background[r.getRawIndex()];if(i){var o=i.transformCoordToLocal(t,e),a=i.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:r,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(dy);function AP(){return{nodeGroup:[],background:[],content:[]}}function IP(t,e,n,r,i,o,a,s,l,u){if(a){var c=a.getLayout(),h=t.getData(),f=a.getModel();if(h.setItemGraphicEl(a.dataIndex,null),c&&c.isInView){var p=c.width,d=c.height,g=c.borderWidth,y=c.invisible,m=a.getRawIndex(),b=s&&s.getRawIndex(),x=a.viewChildren,_=c.upperHeight,w=x&&x.length,S=f.getModel("itemStyle"),O=f.getModel(["emphasis","itemStyle"]),M=f.getModel(["blur","itemStyle"]),A=f.getModel(["select","itemStyle"]),I=S.get("borderRadius")||0,T=F("nodeGroup",dP);if(T){if(l.add(T),T.x=c.x||0,T.y=c.y||0,T.markRedraw(),OP(T).nodeWidth=p,OP(T).nodeHeight=d,c.isAboveViewRoot)return T;var C=F("background",gP,u,xP);C&&R(T,C,w&&c.upperLabelHeight);var D=f.getModel("emphasis"),k=D.get("focus"),L=D.get("blurScope"),j=D.get("disabled"),P="ancestor"===k?a.getAncestorsIndices():"descendant"===k?a.getDescendantIndices():k;if(w)Ql(T)&&Jl(T,!1),C&&(Jl(C,!j),h.setItemGraphicEl(a.dataIndex,C),Xl(C,P,L));else{var E=F("content",gP,u,_P);E&&N(T,E),C.disableMorphing=!0,C&&Ql(C)&&Jl(C,!1),Jl(T,!j),h.setItemGraphicEl(a.dataIndex,T),Xl(T,P,L)}return T}}}function R(e,n,r){var i=Hs(n);if(i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:p,height:d,r:I}),y)z(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,l=SP(S);l.fill=s;var u=wP(O);u.fill=O.get("borderColor");var c=wP(M);c.fill=M.get("borderColor");var h=wP(A);if(h.fill=A.get("borderColor"),r){var f=p-2*g;B(n,s,o.opacity,{x:g,y:0,width:f,height:_})}else n.removeTextContent();n.setStyle(l),n.ensureState("emphasis").style=u,n.ensureState("blur").style=c,n.ensureState("select").style=h,Ml(n)}e.add(n)}function N(e,n){var r=Hs(n);r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex;var i=Math.max(p-2*g,0),o=Math.max(d-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:i,height:o,r:I}),y)z(n);else{n.invisible=!1;var s=a.getVisual("style"),l=s.fill,u=SP(S);u.fill=l,u.decal=s.decal;var c=wP(O),h=wP(M),f=wP(A);B(n,l,s.opacity,null),n.setStyle(u),n.ensureState("emphasis").style=c,n.ensureState("blur").style=h,n.ensureState("select").style=f,Ml(n)}e.add(n)}function z(t){!t.invisible&&o.push(t)}function B(e,n,r,i){var o=f.getModel(i?mP:yP),s=Vi(f.get("name"),null),l=o.getShallow("show");bu(e,xu(f,i?mP:yP),{defaultText:l?s:null,inheritColor:n,defaultOpacity:r,labelFetcher:t,labelDataIndex:a.dataIndex});var u=e.getTextContent();if(u){var h=u.style,p=Object(v["normalizeCssArray"])(h.padding||0);i&&(e.setTextConfig({layoutRect:i}),u.disableLabelLayout=!0),u.beforeUpdate=function(){var t=Math.max((i?i.width:e.shape.width)-p[1]-p[3],0),n=Math.max((i?i.height:e.shape.height)-p[0]-p[2],0);h.width===t&&h.height===n||u.setStyle({width:t,height:n})},h.truncateMinChar=2,h.lineOverflow="truncate",V(h,i,c);var d=u.getState("emphasis");V(d?d.style:null,i,c)}}function V(e,n,r){var i=e?e.text:null;if(!n&&r.isLeafRoot&&null!=i){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+i:i}}function F(t,r,o,a){var s=null!=b&&n[t][b],l=i[t];return s?(n[t][b]=null,G(l,s)):y||(s=new r,s instanceof ta&&(s.z2=TP(o,a)),H(l,s)),e[t][m]=s}function G(t,e){var n=t[m]={};e instanceof dP?(n.oldX=e.x,n.oldY=e.y):n.oldShape=Object(v["extend"])({},e.shape)}function H(t,e){var n=t[m]={},o=a.parentNode,s=e instanceof Nr;if(o&&(!r||"drillDown"===r.direction)){var l=0,u=0,c=i.background[o.getRawIndex()];!r&&c&&c.oldShape&&(l=c.oldShape.width,u=c.oldShape.height),s?(n.oldX=0,n.oldY=u):n.oldShape={x:l,y:u,width:0,height:0}}n.fadein=!s}}function TP(t,e){return t*bP+e}var CP=MP,DP=v["each"],kP=v["isObject"],LP=-1,jP=function(){function t(e){var n=e.mappingMethod,r=e.type,i=this.option=v["clone"](e);this.type=r,this.mappingMethod=n,this._normalizeData=UP[n];var o=t.visualHandlers[r];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(RP(i),PP(i)):"category"===n?i.categories?EP(i):RP(i,!0):(v["assert"]("linear"!==n||i.dataExtent),RP(i))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return v["bind"](this._normalizeData,this)},t.listVisualTypes=function(){return v["keys"](t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){v["isObject"](t)?v["each"](t,e,n):e.call(n,t)},t.mapVisual=function(e,n,r){var i,o=v["isArray"](e)?[]:v["isObject"](e)?{}:(i=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(r,t,e);i?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,r={};return e&&DP(t.visualHandlers,(function(t,i){e.hasOwnProperty(i)&&(r[i]=e[i],n=!0)})),n?r:null},t.prepareVisualTypes=function(t){if(v["isArray"](t))t=t.slice();else{if(!kP(t))return[];var e=[];DP(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var r,i=1/0,o=0,a=e.length;o=0;o--)null==r[o]&&(delete n[e[o]],e.pop())}function RP(t,e){var n=t.visual,r=[];v["isObject"](n)?DP(n,(function(t){r.push(t)})):null!=n&&r.push(n);var i={color:1,symbol:1};e||1!==r.length||i.hasOwnProperty(t.type)||(r[1]=r[0]),WP(t,r)}function NP(t){return{applyVisual:function(e,n,r){var i=this.mapValueToVisual(e);r("color",t(n("color"),i))},_normalizedToVisual:GP([0,1])}}function zP(t){var e=this.option.visual;return e[Math.round(Jr(t,[0,1],[0,e.length-1],!0))]||{}}function BP(t){return function(e,n,r){r(t,this.mapValueToVisual(e))}}function VP(t){var e=this.option.visual;return e[this.option.loop&&t!==LP?t%e.length:t]}function FP(){return this.option.visual[0]}function GP(t){return{linear:function(e){return Jr(e,t,this.option.visual,!0)},category:VP,piecewise:function(e,n){var r=HP.call(this,n);return null==r&&(r=Jr(e,t,this.option.visual,!0)),r},fixed:FP}}function HP(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var r=jP.findPieceIndex(t,n),i=n[r];if(i&&i.visual)return i.visual[this.type]}}function WP(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=v["map"](e,(function(t){var e=Je["parse"](t);return e||[0,0,0,1]}))),e}var UP={linear:function(t){return Jr(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=jP.findPieceIndex(t,e,!0);if(null!=n)return Jr(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?LP:e},fixed:v["noop"]};function YP(t,e,n){return t?e<=n:e=n.length||t===n[t.depth]){var o=iE(i,u,t,e,d,r);KP(t,o,n,r)}}))}else s=QP(u),c.fill=s}}function JP(t,e,n){var r=Object(v["extend"])({},e),i=n.designatedVisualItemStyle;return Object(v["each"])(["color","colorAlpha","colorSaturation"],(function(n){i[n]=e[n];var o=t.get(n);i[n]=null,null!=o&&(r[n]=o)})),r}function QP(t){var e=eE(t,"color");if(e){var n=eE(t,"colorAlpha"),r=eE(t,"colorSaturation");return r&&(e=Object(Je["modifyHSL"])(e,null,null,r)),n&&(e=Object(Je["modifyAlpha"])(e,n)),e}}function tE(t,e){return null!=e?Object(Je["modifyHSL"])(e,null,null,t):null}function eE(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function nE(t,e,n,r,i,o){if(o&&o.length){var a=rE(e,"color")||null!=i.color&&"none"!==i.color&&(rE(e,"colorAlpha")||rE(e,"colorSaturation"));if(a){var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var c=e.get("colorMappingBy"),h={type:a.name,dataExtent:u,visual:a.range};"color"!==h.type||"index"!==c&&"id"!==c?h.mappingMethod="linear":(h.mappingMethod="category",h.loop=!0);var f=new $P(h);return qP(f).drColorMappingBy=c,f}}}function rE(t,e){var n=t.get(e);return Object(v["isArray"])(n)&&n.length?{name:e,range:n}:null}function iE(t,e,n,r,i,o){var a=Object(v["extend"])({},e);if(i){var s=i.type,l="color"===s&&qP(i).drColorMappingBy,u="index"===l?r:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=i.mapValueToVisual(u)}return a}var oE=Math.max,aE=Math.min,sE=v["retrieve"],lE=v["each"],uE=["itemStyle","borderWidth"],cE=["itemStyle","gapWidth"],hE=["upperLabel","show"],fE=["upperLabel","height"],pE={seriesType:"treemap",reset:function(t,e,n,r){var i=n.getWidth(),o=n.getHeight(),a=t.option,s=sh(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Qr(sE(s.width,l[0]),i),c=Qr(sE(s.height,l[1]),o),h=r&&r.type,f=["treemapZoomToNode","treemapRootToNode"],p=Bj(r,f,t),d="treemapRender"===h||"treemapMove"===h?r.rootRect:null,g=t.getViewRoot(),y=Vj(g);if("treemapMove"!==h){var m="treemapZoomToNode"===h?_E(t,p,g,u,c):d?[d.width,d.height]:[u,c],b=a.sort;b&&"asc"!==b&&"desc"!==b&&(b="desc");var x={squareRatio:a.squareRatio,sort:b,leafDepth:a.leafDepth};g.hostTree.clearLayouts();var _={x:0,y:0,width:m[0],height:m[1],area:m[0]*m[1]};g.setLayout(_),dE(g,x,!1,0),_=g.getLayout(),lE(y,(function(t,e){var n=(y[e+1]||g).getValue();t.setLayout(v["extend"]({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var w=t.getData().tree.root;w.setLayout(wE(s,d,p),!0),t.setLayoutInfo(s),SE(w,new Gt(-s.x,-s.y,i,o),y,g,0)}};function dE(t,e,n,r){var i,o;if(!t.isRemoved()){var a=t.getLayout();i=a.width,o=a.height;var s=t.getModel(),l=s.get(uE),u=s.get(cE)/2,c=OE(s),h=Math.max(l,c),f=l-u,p=h-u;t.setLayout({borderWidth:l,upperHeight:h,upperLabelHeight:c},!0),i=oE(i-2*f,0),o=oE(o-f-p,0);var d=i*o,g=gE(t,s,d,e,n,r);if(g.length){var v={x:f,y:p,width:i,height:o},y=aE(i,o),m=1/0,b=[];b.area=0;for(var x=0,_=g.length;x<_;){var w=g[x];b.push(w),b.area+=w.getLayout().area;var S=bE(b,y,e.squareRatio);S<=m?(x++,m=S):(b.area-=b.pop().getLayout().area,xE(b,y,v,u,!1),y=aE(v.width,v.height),b.length=b.area=0,m=1/0)}if(b.length&&xE(b,y,v,u,!0),!n){var O=s.get("childrenVisibleMin");null!=O&&d=0;l--){var u=i["asc"===r?a-l-1:l].getValue();u/n*ea[1]&&(a[1]=e)}))):a=[NaN,NaN],{sum:r,dataExtent:a}}function bE(t,e,n){for(var r=0,i=1/0,o=0,a=void 0,s=t.length;or&&(r=a));var l=t.area*t.area,u=e*e*n;return l?oE(u*r/l,l/(u*i)):1/0}function xE(t,e,n,r,i){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],c=e?t.area/e:0;(i||c>n[l[a]])&&(c=n[l[a]]);for(var h=0,f=t.length;hli&&(u=li),a=o}ur&&(r=e);var o=r%2?r+2:r+3;i=[];for(var a=0;a0&&(m[0]=-m[0],m[1]=-m[1]);var x=y[0]<0?-1:1;if("start"!==r.__position&&"end"!==r.__position){var _=-Math.atan2(y[1],y[0]);u[0].8?"left":c[0]<-.8?"right":"center",f=c[1]>.8?"top":c[1]<-.8?"bottom":"middle";break;case"start":r.x=-c[0]*d+l[0],r.y=-c[1]*g+l[1],h=c[0]>.8?"right":c[0]<-.8?"left":"center",f=c[1]>.8?"bottom":c[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":r.x=d*x+l[0],r.y=l[1]+w,h=y[0]<0?"right":"left",r.originX=-d*x,r.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":r.x=b[0],r.y=b[1]+w,h="center",r.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":r.x=-d*x+u[0],r.y=u[1]+w,h=y[0]>=0?"right":"left",r.originX=d*x,r.originY=-w;break}r.scaleX=r.scaleY=i,r.setStyle({verticalAlign:r.__verticalAlign||f,align:r.__align||h})}}}function O(t,e){var n=t.__specifiedRotation;if(null==n){var r=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(r[1],r[0]))}else t.attr("rotation",n)}},e}(Nr),gR=dR,vR=function(){function t(t){this.group=new Nr,this._LineCtor=t||gR}return t.prototype.updateData=function(t){var e=this;this._progressiveEls=null;var n=this,r=n.group,i=n._lineData;n._lineData=t,i||r.removeAll();var o=mR(t);t.diff(i).add((function(n){e._doAdd(t,n,o)})).update((function(n,r){e._doUpdate(i,t,r,n,o)})).remove((function(t){r.remove(i.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=mR(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||yR(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[];for(var r=t.start;r0}function mR(t){var e=t.hostModel,n=e.getModel("emphasis");return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:n.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:n.get("disabled"),blurScope:n.get("blurScope"),focus:n.get("focus"),labelStatesModels:xu(e)}}function bR(t){return isNaN(t[0])||isNaN(t[1])}function xR(t){return t&&!bR(t[0])&&!bR(t[1])}var _R=vR,wR=[],SR=[],OR=[],MR=Fe,AR=R,IR=Math.abs;function TR(t,e,n){for(var r,i=t[0],o=t[1],a=t[2],s=1/0,l=n*n,u=.1,c=.1;c<=.9;c+=.1){wR[0]=MR(i[0],o[0],a[0],c),wR[1]=MR(i[1],o[1],a[1],c);var h=IR(AR(wR,e)-l);h=0?r+=u:r-=u:d>=0?r-=u:r+=u}return r}function CR(t,e){var n=[],r=Ue,i=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),c=t.getVisual("toSymbol");l.__original||(l.__original=[b(l[0]),b(l[1])],l[2]&&l.__original.push(b(l[2])));var h=l.__original;if(null!=l[2]){if(m(i[0],h[0]),m(i[1],h[2]),m(i[2],h[1]),u&&"none"!==u){var f=UE(t.node1),p=TR(i,h[0],f*e);r(i[0][0],i[1][0],i[2][0],p,n),i[0][0]=n[3],i[1][0]=n[4],r(i[0][1],i[1][1],i[2][1],p,n),i[0][1]=n[3],i[1][1]=n[4]}if(c&&"none"!==c){f=UE(t.node2),p=TR(i,h[1],f*e);r(i[0][0],i[1][0],i[2][0],p,n),i[1][0]=n[1],i[2][0]=n[2],r(i[0][1],i[1][1],i[2][1],p,n),i[1][1]=n[1],i[2][1]=n[2]}m(l[0],i[0]),m(l[1],i[2]),m(l[2],i[1])}else{if(m(o[0],h[0]),m(o[1],h[1]),S(a,o[1],o[0]),L(a,a),u&&"none"!==u){f=UE(t.node1);w(o[0],o[0],a,f*e)}if(c&&"none"!==c){f=UE(t.node2);w(o[1],o[1],a,-f*e)}m(l[0],o[0]),m(l[1],o[1])}}))}function DR(t){return"view"===t.type}var kR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(t,e){var n=new dI,r=new _R,i=this.group;this._controller=new hk(e.getZr()),this._controllerHost={target:i},i.add(n.group),i.add(r.group),this._symbolDraw=n,this._lineDraw=r,this._firstRender=!0},e.prototype.render=function(t,e,n){var r=this,i=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(DR(i)){var l={x:i.x,y:i.y,scaleX:i.scaleX,scaleY:i.scaleY};this._firstRender?s.attr(l):lu(s,l,t)}CR(t.getGraph(),WE(t));var u=t.getData();o.updateData(u);var c=t.getEdgeData();a.updateData(c),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var h=t.forceLayout,f=t.get(["force","layoutAnimation"]);h&&this._startForceLayoutIteration(h,f);var p=t.get("layout");u.graph.eachNode((function(e){var n=e.dataIndex,i=e.getGraphicEl(),o=e.getModel();if(i){i.off("drag").off("dragend");var a=o.get("draggable");a&&i.on("drag",(function(o){switch(p){case"force":h.warmUp(),!r._layouting&&r._startForceLayoutIteration(h,f),h.setFixed(n),u.setItemLayout(n,[i.x,i.y]);break;case"circular":u.setItemLayout(n,[i.x,i.y]),e.setLayout({fixed:!0},!0),XE(t,"symbolSize",e,[o.offsetX,o.offsetY]),r.updateLayout(t);break;case"none":default:u.setItemLayout(n,[i.x,i.y]),GE(t.getGraph(),t),r.updateLayout(t);break}})).on("dragend",(function(){h&&h.setUnfixed(n)})),i.setDraggable(a,!!o.get("cursor"));var s=o.get(["emphasis","focus"]);"adjacency"===s&&(Hs(i).focus=e.getAdjacentDataIndices())}})),u.graph.eachEdge((function(t){var e=t.getGraphicEl(),n=t.getModel().get(["emphasis","focus"]);e&&"adjacency"===n&&(Hs(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),g=u.getLayout("cx"),v=u.getLayout("cy");u.graph.eachNode((function(t){ZE(t,d,g,v)})),this._firstRender=!1},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,e){var n=this;(function r(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(r,16):r())}))})()},e.prototype._updateController=function(t,e,n){var r=this,i=this._controller,o=this._controllerHost,a=this.group;i.setPointerChecker((function(e,r,i){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(r,i)&&!vk(e,n,t)})),DR(t.coordinateSystem)?(i.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),i.off("pan").off("zoom").on("pan",(function(e){fk(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){pk(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),r._updateNodeAndLinkScale(),CR(t.getGraph(),WE(t)),r._lineDraw.updateLayout(),n.updateLabelLayout()}))):i.disable()},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=WE(t);e.eachItemGraphicEl((function(t,e){t&&t.setSymbolScale(n)}))},e.prototype.updateLayout=function(t){CR(t.getGraph(),WE(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(dy),LR=kR;function jR(t){return"_EC_"+t}var PR=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[jR(t)]){var r=new ER(t,e);return r.hostGraph=this,this.nodes.push(r),n[jR(t)]=r,r}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[jR(t)]},t.prototype.addEdge=function(t,e,n){var r=this._nodesMap,i=this._edgesMap;if(v["isNumber"](t)&&(t=this.nodes[t]),v["isNumber"](e)&&(e=this.nodes[e]),t instanceof ER||(t=r[jR(t)]),e instanceof ER||(e=r[jR(e)]),t&&e){var o=t.id+"-"+e.id,a=new RR(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),i[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof ER&&(t=t.id),e instanceof ER&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,r=n.length,i=0;i=0&&t.call(e,n[i],i)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,r=n.length,i=0;i=0&&n[i].node1.dataIndex>=0&&n[i].node2.dataIndex>=0&&t.call(e,n[i],i)},t.prototype.breadthFirstTraverse=function(t,e,n,r){if(e instanceof ER||(e=this._nodesMap[jR(e)]),e){for(var i="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o=0&&n.node2.dataIndex>=0}));for(i=0,o=r.length;i=0&&this[t][e].setItemVisual(this.dataIndex,n,r)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,r){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,r)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}v["mixin"](ER,NR("hostGraph","data")),v["mixin"](RR,NR("hostGraph","edgeData"));var zR=PR;function BR(t,e,n,r,i){for(var o=new zR(r),a=0;a "+f)),u++)}var p,d=n.get("coordinateSystem");if("cartesian2d"===d||"polar"===d)p=pw(t,n);else{var g=gf.get(d),y=g&&g.dimensions||[];v["indexOf"](y,"value")<0&&y.concat(["value"]);var m=Z_(t,{coordDimensions:y,encodeDefine:n.getEncode()}).dimensions;p=new X_(m,n),p.initData(t)}var b=new X_(["value"],n);return b.initData(l,s),i&&i(p,b),Pj({mainData:p,struct:o,structAttr:"graph",datas:{node:p,edge:b},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}var VR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return d(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function r(){return n._categoriesData}this.legendVisualProvider=new rC(r,r),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),Ii(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n=t.edges||t.links||[],r=t.data||t.nodes||[],i=this;if(r&&n){zE(this);var o=BR(r,n,this,!0,a);return v["each"](o.edges,(function(t){BE(t.node1,t.node2,this,t.dataIndex)}),this),o.data}function a(t,e){t.wrapMethod("getItemModel",(function(t){var e=i._categoriesModels,n=t.getShallow("category"),r=e[n];return r&&(r.parentModel=t.parentModel,t.parentModel=r),t}));var n=Uu.prototype.getModel;function r(t,e){var r=n.call(this,t,e);return r.resolveParentPath=o,r}function o(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=o,t.getModel=r,t}))}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var r=this.getData(),i=this.getDataParams(t,n),o=r.graph.getEdgeByIndex(t),a=r.getName(o.node1.dataIndex),s=r.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),gd("nameValue",{name:l.join(" > "),value:i.value,noValue:null==i.value})}var u=kd({series:this,dataIndex:t,multipleSeries:e});return u},e.prototype._updateCategoriesData=function(){var t=v["map"](this.option.categories||[],(function(t){return null!=t.value?t:v["extend"]({value:0},t)})),e=new X_(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Ud),FR=VR,GR={type:"graphRoam",event:"graphRoam",update:"none"};function HR(t){t.registerChartView(LR),t.registerSeriesModel(FR),t.registerProcessor(AE),t.registerVisual(IE),t.registerVisual(CE),t.registerLayout(HE),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,KE),t.registerLayout(tR),t.registerCoordinateSystem("graphView",{dimensions:PL.dimensions,create:nR}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},v["noop"]),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},v["noop"]),t.registerAction(GR,(function(t,e,n){e.eachComponent({mainType:"series",query:t},(function(e){var r=e.coordinateSystem,i=XL(r,t,void 0,n);e.setCenter&&e.setCenter(i.center),e.setZoom&&e.setZoom(i.zoom)}))}))}var WR=function(){function t(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return t}(),UR=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return d(e,t),e.prototype.getDefaultShape=function(){return new WR},e.prototype.buildPath=function(t,e){var n=Math.cos,r=Math.sin,i=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=i/3?1:2),l=e.y-r(a)*o*(o>=i/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+r(a)*o),t.lineTo(e.x+n(e.angle)*i,e.y+r(e.angle)*i),t.lineTo(e.x-n(a)*o,e.y-r(a)*o),t.lineTo(s,l)},e}(ss),YR=UR;function $R(t,e){var n=t.get("center"),r=e.getWidth(),i=e.getHeight(),o=Math.min(r,i),a=Qr(n[0],e.getWidth()),s=Qr(n[1],e.getHeight()),l=Qr(t.get("radius"),o/2);return{cx:a,cy:s,r:l}}function XR(t,e){var n=null==t?"":t+"";return e&&(Object(v["isString"])(e)?n=e.replace("{value}",n):Object(v["isFunction"])(e)&&(n=e(t))),n}var qR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var r=t.get(["axisLine","lineStyle","color"]),i=$R(t,n);this._renderMain(t,e,n,r,i),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,r,i){var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),c=u.get("roundCap"),h=c?lT:Fg,f=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),g=[s,l];ja(g,!a),s=g[0],l=g[1];for(var y=l-s,m=s,b=[],x=0;f&&x=t&&(0===e?0:r[e-1][0])Math.PI/2&&(B+=Math.PI)):"tangential"===z?B=-M-Math.PI/2:Object(v["isNumber"])(z)&&(B=z*Math.PI/180),0===B?h.add(new Gs({style:_u(x,{text:P,x:R,y:N,verticalAlign:c<-.8?"top":c>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:E}),silent:!0})):h.add(new Gs({style:_u(x,{text:P,x:R,y:N,verticalAlign:"middle",align:"center"},{inheritColor:E}),silent:!0,originX:R,originY:N,rotation:B}))}if(b.get("show")&&k!==_){L=b.get("distance");L=L?L+l:l;for(var V=0;V<=w;V++){u=Math.cos(M),c=Math.sin(M);var F=new nv({shape:{x1:u*(d-L)+f,y1:c*(d-L)+p,x2:u*(d-O-L)+f,y2:c*(d-O-L)+p},silent:!0,style:C});"auto"===C.stroke&&F.setStyle({stroke:r((k+V/w)/_)}),h.add(F),M+=I}M-=I}else M+=A}},e.prototype._renderPointer=function(t,e,n,r,i,o,a,s,l){var u=this.group,c=this._data,h=this._progressEls,f=[],p=t.get(["pointer","show"]),d=t.getModel("progress"),g=d.get("show"),y=t.getData(),m=y.mapDimension("value"),b=+t.get("min"),x=+t.get("max"),_=[b,x],w=[o,a];function S(e,n){var r,o=y.getItemModel(e),a=o.getModel("pointer"),s=Qr(a.get("width"),i.r),l=Qr(a.get("length"),i.r),u=t.get(["pointer","icon"]),c=a.get("offsetCenter"),h=Qr(c[0],i.r),f=Qr(c[1],i.r),p=a.get("keepAspect");return r=u?Im(u,h-s/2,f-l,s,l,null,p):new YR({shape:{angle:-Math.PI/2,width:s,r:l,x:h,y:f}}),r.rotation=-(n+Math.PI/2),r.x=i.cx,r.y=i.cy,r}function O(t,e){var n=d.get("roundCap"),r=n?lT:Fg,a=d.get("overlap"),u=a?d.get("width"):l/y.count(),c=a?i.r-u:i.r-(t+1)*u,h=a?i.r:i.r-t*u,f=new r({shape:{startAngle:o,endAngle:e,cx:i.cx,cy:i.cy,clockwise:s,r0:c,r:h}});return a&&(f.z2=x-y.get(m,t)%x),f}(g||p)&&(y.diff(c).add((function(e){var n=y.get(m,e);if(p){var r=S(e,o);uu(r,{rotation:-((isNaN(+n)?w[0]:Jr(n,_,w,!0))+Math.PI/2)},t),u.add(r),y.setItemGraphicEl(e,r)}if(g){var i=O(e,o),a=d.get("clip");uu(i,{shape:{endAngle:Jr(n,_,w,a)}},t),u.add(i),Ws(t.seriesIndex,y.dataType,e,i),f[e]=i}})).update((function(e,n){var r=y.get(m,e);if(p){var i=c.getItemGraphicEl(n),a=i?i.rotation:o,s=S(e,a);s.rotation=a,lu(s,{rotation:-((isNaN(+r)?w[0]:Jr(r,_,w,!0))+Math.PI/2)},t),u.add(s),y.setItemGraphicEl(e,s)}if(g){var l=h[n],v=l?l.shape.endAngle:o,b=O(e,v),x=d.get("clip");lu(b,{shape:{endAngle:Jr(r,_,w,x)}},t),u.add(b),Ws(t.seriesIndex,y.dataType,e,b),f[e]=b}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis"),i=n.get("focus"),o=n.get("blurScope"),a=n.get("disabled");if(p){var s=y.getItemGraphicEl(t),l=y.getItemVisual(t,"style"),u=l.fill;if(s instanceof gs){var c=s.style;s.useStyle(Object(v["extend"])({image:c.image,x:c.x,y:c.y,width:c.width,height:c.height},l))}else s.useStyle(l),"pointer"!==s.type&&s.setColor(u);s.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===s.style.fill&&s.setStyle("fill",r(Jr(y.get(m,t),_,[0,1],!0))),s.z2EmphasisLift=0,Kl(s,e),$l(s,i,o,a)}if(g){var h=f[t];h.useStyle(y.getItemVisual(t,"style")),h.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),h.z2EmphasisLift=0,Kl(h,e),$l(h,i,o,a)}})),this._progressEls=f)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor"),r=n.get("show");if(r){var i=n.get("size"),o=n.get("icon"),a=n.get("offsetCenter"),s=n.get("keepAspect"),l=Im(o,e.cx-i/2+Qr(a[0],e.r),e.cy-i/2+Qr(a[1],e.r),i,i,null,s);l.z2=n.get("showAbove")?1:0,l.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(l)}},e.prototype._renderTitleAndDetail=function(t,e,n,r,i){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),c=new Nr,h=[],f=[],p=t.isAnimationEnabled(),d=t.get(["pointer","showAbove"]);a.diff(this._data).add((function(t){h[t]=new Gs({silent:!0}),f[t]=new Gs({silent:!0})})).update((function(t,e){h[t]=o._titleEls[e],f[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),g=new Nr,v=r(Jr(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var m=y.get("offsetCenter"),b=i.cx+Qr(m[0],i.r),x=i.cy+Qr(m[1],i.r),_=h[e];_.attr({z2:d?0:2,style:_u(y,{x:b,y:x,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:v})}),g.add(_)}var w=n.getModel("detail");if(w.get("show")){var S=w.get("offsetCenter"),O=i.cx+Qr(S[0],i.r),M=i.cy+Qr(S[1],i.r),A=Qr(w.get("width"),i.r),I=Qr(w.get("height"),i.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:v,C=(_=f[e],w.get("formatter"));_.attr({z2:d?0:2,style:_u(w,{x:O,y:M,text:XR(o,C),width:isNaN(A)?null:A,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),ku(_,{normal:w},o,(function(t){return XR(t,C)})),p&&Lu(_,e,a,t,{getFormattedLabel:function(t,e,n,r,i,a){return XR(a?a.interpolatedValue:o,C)}}),g.add(_)}c.add(g)})),this.group.add(c),this._titleEls=h,this._detailEls=f},e.type="gauge",e}(dy),ZR=qR,KR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n}return d(e,t),e.prototype.getInitialData=function(t,e){return eC(this,["value"])},e.type="series.gauge",e.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(Ud),JR=KR;function QR(t){t.registerChartView(ZR),t.registerSeriesModel(JR)}var tN=["itemStyle","opacity"],eN=function(t){function e(e,n){var r=t.call(this)||this,i=r,o=new Jg,a=new Gs;return i.setTextContent(a),r.setTextGuideLine(o),r.updateData(e,n,!0),r}return d(e,t),e.prototype.updateData=function(t,e,n){var r=this,i=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(tN);l=null==l?1:l,n||du(r),r.useStyle(t.getItemVisual(e,"style")),r.style.lineJoin="round",n?(r.setShape({points:a.points}),r.style.opacity=0,uu(r,{style:{opacity:l}},i,e)):lu(r,{style:{opacity:l},shape:{points:a.points}},i,e),Kl(r,o),this._updateLabel(t,e),$l(this,s.get("focus"),s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t,e){var n=this,r=this.getTextGuideLine(),i=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e),l=s.label,u=t.getItemVisual(e,"style"),c=u.fill;bu(i,xu(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:u.opacity,defaultText:t.getName(e)},{normal:{align:l.textAlign,verticalAlign:l.verticalAlign}}),n.setTextConfig({local:!0,inside:!!l.inside,insideStroke:c,outsideFill:c});var h=l.linePoints;r.setShape({points:h}),n.textGuideLineConfig={anchor:h?new Lt(h[0][0],h[0][1]):null},lu(i,{style:{x:l.x,y:l.y}},o,e),i.attr({rotation:l.rotation,originX:l.x,originY:l.y,z2:10}),JO(n,QO(a),{stroke:c})},e}(qg),nN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return d(e,t),e.prototype.render=function(t,e,n){var r=t.getData(),i=this._data,o=this.group;r.diff(i).add((function(t){var e=new eN(r,t);r.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=i.getItemGraphicEl(e);n.updateData(r,t),o.add(n),r.setItemGraphicEl(t,n)})).remove((function(e){var n=i.getItemGraphicEl(e);pu(n,t,e)})).execute(),this._data=r},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(dy),rN=nN,iN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new rC(v["bind"](this.getData,this),v["bind"](this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return eC(this,{coordDimensions:["value"],encodeDefaulter:v["curry"](Ph,this)})},e.prototype._defaultLabelLine=function(t){Ii(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),r=t.prototype.getDataParams.call(this,e),i=n.mapDimension("value"),o=n.getSum(i);return r.percent=o?+(n.get(i,e)/o*100).toFixed(2):0,r.$vars.push("percent"),r},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Ud),oN=iN;function aN(t,e){return sh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function sN(t,e){for(var n=t.mapDimension("value"),r=t.mapArray(n,(function(t){return t})),i=[],o="ascending"===e,a=0,s=t.count();aDN)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&jN(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),r=n.behavior;"jump"===r&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===r?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===r?null:{duration:0}})}}};function jN(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var PN=kN,EN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&v["merge"](e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){v["each"](["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[],n=v["filter"](this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this);v["each"](n,(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(yh),RN=EN,NN=function(t){function e(e,n,r,i,o){var a=t.call(this,e,n,r)||this;return a.type=i||"value",a.axisIndex=o,a}return d(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(MO),zN=NN;function BN(t,e,n,r,i,o){t=t||0;var a=n[1]-n[0];if(null!=i&&(i=FN(i,[0,a])),null!=o&&(o=Math.max(o,null!=i?i:0)),"all"===r){var s=Math.abs(e[1]-e[0]);s=FN(s,[0,a]),i=o=FN(s,[i,o]),r=0}e[0]=FN(e[0],n),e[1]=FN(e[1],n);var l=VN(e,r);e[r]+=t;var u,c=i||0,h=n.slice();return l.sign<0?h[0]+=c:h[1]-=c,e[r]=FN(e[r],h),u=VN(e,r),null!=i&&(u.sign!==l.sign||u.spano&&(e[1-r]=e[r]+u.sign*o),e}function VN(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function FN(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var GN=v["each"],HN=Math.min,WN=Math.max,UN=Math.floor,YN=Math.ceil,$N=ti,XN=Math.PI,qN=function(){function t(t,e,n){this.type="parallel",this._axesMap=v["createHashMap"](),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var r=t.dimensions,i=t.parallelAxisIndex;GN(r,(function(t,n){var r=i[n],o=e.getComponent("parallelAxis",r),a=this._axesMap.set(t,new zN(t,TS(o),[0,0],o.get("type"),r)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,r=e.layoutBase,i=e.pixelDimIndex,o=t[1-i],a=t[i];return o>=n&&o<=n+e.axisLength&&a>=r&&a<=r+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var r=n.getData();GN(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(r,r.mapDimension(t)),IS(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=sh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,r=["x","y"],i=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[i[a]],l=[0,s],u=this.dimensions.length,c=ZN(e.get("axisExpandWidth"),l),h=ZN(e.get("axisExpandCount")||0,[0,u]),f=e.get("axisExpandable")&&u>3&&u>h&&h>1&&c>0&&s>0,p=e.get("axisExpandWindow");if(p)t=ZN(p[1]-p[0],l),p[1]=p[0]+t;else{t=ZN(c*(h-1),l);var d=e.get("axisExpandCenter")||UN(u/2);p=[c*d-t/2],p[1]=p[0]+t}var g=(s-t)/(u-h);g<3&&(g=0);var v=[UN($N(p[0]/c,1))+1,YN($N(p[1]/c,1))-1],y=g/c*p[0];return{layout:o,pixelDimIndex:a,layoutBase:n[r[a]],layoutLength:s,axisBase:n[r[1-a]],axisLength:n[i[1-a]],axisExpandable:f,axisExpandWidth:c,axisCollapseWidth:g,axisExpandWindow:p,axisCount:u,winInnerIndices:v,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,r=this._makeLayoutInfo(),i=r.layout;e.each((function(t){var e=[0,r.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),GN(n,(function(e,n){var o=(r.axisExpandable?JN:KN)(n,r),a={horizontal:{x:o.position,y:r.axisLength},vertical:{x:0,y:o.position}},s={horizontal:XN/2,vertical:0},l=[a[i].x+t.x,a[i].y+t.y],u=s[i],c=wt();It(c,c,u),At(c,c,l),this._axesLayout[e]={position:l,rotation:u,transform:c,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,r){null==n&&(n=0),null==r&&(r=t.count());var i=this._axesMap,o=this.dimensions,a=[],s=[];v["each"](o,(function(e){a.push(t.mapDimension(e)),s.push(i.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;ui*(1-c[0])?(l="jump",a=s-i*(1-c[2])):(a=s-i*c[1])>=0&&(a=s-i*(1-c[1]))<=0&&(a=0),a*=e.axisExpandWidth/u,a?BN(a,r,o,"all"):l="none";else{var f=r[1]-r[0],p=o[1]*s/f;r=[WN(0,p-f/2)],r[1]=HN(o[1],r[0]+f),r[0]=r[1]-f}return{axisExpandWindow:r,behavior:l}},t}();function ZN(t,e){return HN(WN(t,e[0]),e[1])}function KN(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function JN(t,e){var n,r,i=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,c=!1;return t=0;n--)ei(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var r=0,i=e.length;rcz}function Cz(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Dz(t,e,n,r){var i=new Nr;return i.add(new Os({name:"main",style:Pz(n),silent:!0,draggable:!0,cursor:"move",drift:Object(v["curry"])(Bz,t,e,i,["n","s","w","e"]),ondragend:Object(v["curry"])(Iz,e,{isEnd:!0})})),Object(v["each"])(r,(function(n){i.add(new Os({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Object(v["curry"])(Bz,t,e,i,n),ondragend:Object(v["curry"])(Iz,e,{isEnd:!0})}))})),i}function kz(t,e,n,r){var i=r.brushStyle.lineWidth||0,o=sz(i,hz),a=n[0][0],s=n[1][0],l=a-i/2,u=s-i/2,c=n[0][1],h=n[1][1],f=c-o+i/2,p=h-o+i/2,d=c-a,g=h-s,v=d+i,y=g+i;jz(t,e,"main",a,s,d,g),r.transformable&&(jz(t,e,"w",l,u,o,y),jz(t,e,"e",f,u,o,y),jz(t,e,"n",l,u,v,o),jz(t,e,"s",l,p,v,o),jz(t,e,"nw",l,u,o,o),jz(t,e,"ne",f,u,o,o),jz(t,e,"sw",l,p,o,o),jz(t,e,"se",f,p,o,o))}function Lz(t,e){var n=e.__brushOption,r=n.transformable,i=e.childAt(0);i.useStyle(Pz(n)),i.attr({silent:!r,cursor:r?"move":"default"}),Object(v["each"])([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var i=e.childOfName(n.join("")),o=1===n.length?Nz(t,n[0]):zz(t,n);i&&i.attr({silent:!r,invisible:!r,cursor:r?dz[o]+"-resize":null})}))}function jz(t,e,n,r,i,o,a){var s=e.childOfName(n);s&&s.setShape(Hz(Gz(t,e,[[r,i],[r+o,i+a]])))}function Pz(t){return Object(v["defaults"])({strokeNoScale:!0},t.brushStyle)}function Ez(t,e,n,r){var i=[az(t,n),az(e,r)],o=[sz(t,n),sz(e,r)];return[[i[0],o[0]],[i[1],o[1]]]}function Rz(t){return Wv(t.group)}function Nz(t,e){var n={w:"left",e:"right",n:"top",s:"bottom"},r={left:"w",right:"e",top:"n",bottom:"s"},i=Yv(n[e],Rz(t));return r[i]}function zz(t,e){var n=[Nz(t,e[0]),Nz(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}function Bz(t,e,n,r,i,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=Fz(e,i,o);Object(v["each"])(r,(function(t){var e=pz[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(Ez(s[0][0],s[1][0],s[0][1],s[1][1])),wz(e,n),Iz(e,{isEnd:!1})}function Vz(t,e,n,r){var i=e.__brushOption.range,o=Fz(t,n,r);Object(v["each"])(i,(function(t){t[0]+=o[0],t[1]+=o[1]})),wz(t,e),Iz(t,{isEnd:!1})}function Fz(t,e,n){var r=t.group,i=r.transformCoordToLocal(e,n),o=r.transformCoordToLocal(0,0);return[i[0]-o[0],i[1]-o[1]]}function Gz(t,e,n){var r=Mz(t,e);return r&&r!==oz?r.clipPath(n,t._transform):Object(v["clone"])(n)}function Hz(t){var e=az(t[0][0],t[1][0]),n=az(t[0][1],t[1][1]),r=sz(t[0][0],t[1][0]),i=sz(t[0][1],t[1][1]);return{x:e,y:n,width:r-e,height:i-n}}function Wz(t,e,n){if(t._brushType&&!Kz(t,e.offsetX,e.offsetY)){var r=t._zr,i=t._covers,o=Oz(t,e,n);if(!t._dragging)for(var a=0;ar.getWidth()||n<0||n>r.getHeight()}var Jz={lineX:Qz(0),lineY:Qz(1),rect:{createCover:function(t,e){function n(t){return t}return Dz({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=Cz(t);return Ez(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,r){kz(t,e,n,r)},updateCommon:Lz,contain:Yz},polygon:{createCover:function(t,e){var n=new Nr;return n.add(new Jg({name:"main",style:Pz(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new qg({name:"main",draggable:!0,drift:Object(v["curry"])(Vz,t,e),ondragend:Object(v["curry"])(Iz,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,r){e.childAt(0).setShape({points:Gz(t,e,n)})},updateCommon:Lz,contain:Yz}};function Qz(t){return{createCover:function(e,n){return Dz({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=Cz(e),r=az(n[0][t],n[1][t]),i=sz(n[0][t],n[1][t]);return[r,i]},updateCoverShape:function(e,n,r,i){var o,a=Mz(e,n);if(a!==oz&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[r,o];t&&l.reverse(),kz(e,n,l,i)},updateCommon:Lz,contain:Yz}}var tB=yz;function eB(t){return t=iB(t),function(e){return Zv(e,t)}}function nB(t,e){return t=iB(t),function(n){var r=null!=e?e:n,i=r?t.width:t.height,o=r?t.x:t.y;return[o,o+(i||0)]}}function rB(t,e,n){var r=iB(t);return function(t,i){return r.contain(i[0],i[1])&&!vk(t,e,n)}}function iB(t){return Gt.create(t)}var oB=["axisLine","axisTickLabel","axisName"],aB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new tB(n.getZr())).on("brush",v["bind"](this._onBrush,this))},e.prototype.render=function(t,e,n,r){if(!sB(t,e,r)){this.axisModel=t,this.api=n,this.group.removeAll();var i=this._axisGroup;if(this._axisGroup=new Nr,this.group.add(this._axisGroup),t.get("show")){var o=uB(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),l=s.width,u=t.axis.dim,c=a.getAxisLayout(u),h=v["extend"]({strokeContainThreshold:l},c),f=new sD(t,h);v["each"](oB,f.add,f),this._axisGroup.add(f.getGroup()),this._refreshBrushController(h,s,t,o,l,n),qv(i,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,e,n,r,i,o){var a=n.axis.getExtent(),s=a[1]-a[0],l=Math.min(30,.1*Math.abs(s)),u=Gt.create({x:a[0],y:-i/2,width:s,height:i});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:eB(u),isTargetByCursor:rB(u,o,r),getLinearBrushOtherExtent:nB(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(lB(n))},e.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,r=n.axis,i=v["map"](e,(function(t){return[r.coordToData(t.range[0],!0),r.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:i})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}($d);function sB(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}function lB(t){var e=t.axis;return v["map"](t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}function uB(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}var cB=aB,hB={type:"axisAreaSelect",event:"axisAreaSelected"};function fB(t){t.registerAction(hB,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}var pB={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function dB(t){t.registerComponentView(PN),t.registerComponentModel(RN),t.registerCoordinateSystem("parallel",nz),t.registerPreprocessor(IN),t.registerComponentModel(iz),t.registerComponentView(cB),TC(t,"parallel",iz,pB),fB(t)}function gB(t){d_(dB),t.registerChartView(bN),t.registerSeriesModel(SN),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,AN)}var vB=function(){function t(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return t}(),yB=function(t){function e(e){return t.call(this,e)||this}return d(e,t),e.prototype.getDefaultShape=function(){return new vB},e.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},e.prototype.highlight=function(){Tl(this)},e.prototype.downplay=function(){Cl(this)},e}(ss),mB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._focusAdjacencyDisabled=!1,n}return d(e,t),e.prototype.render=function(t,e,n){var r=this,i=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,l=a.height,u=t.getData(),c=t.getData("edge"),h=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,i.eachEdge((function(e){var n=new yB,r=Hs(n);r.dataIndex=e.dataIndex,r.seriesIndex=t.seriesIndex,r.dataType="edge";var i,a,u,f,p,d,g,y,m=e.getModel(),b=m.getModel("lineStyle"),x=b.get("curveness"),_=e.node1.getLayout(),w=e.node1.getModel(),S=w.get("localX"),O=w.get("localY"),M=e.node2.getLayout(),A=e.node2.getModel(),I=A.get("localX"),T=A.get("localY"),C=e.getLayout();switch(n.shape.extent=Math.max(1,C.dy),n.shape.orient=h,"vertical"===h?(i=(null!=S?S*s:_.x)+C.sy,a=(null!=O?O*l:_.y)+_.dy,u=(null!=I?I*s:M.x)+C.ty,f=null!=T?T*l:M.y,p=i,d=a*(1-x)+f*x,g=u,y=a*x+f*(1-x)):(i=(null!=S?S*s:_.x)+_.dx,a=(null!=O?O*l:_.y)+C.sy,u=null!=I?I*s:M.x,f=(null!=T?T*l:M.y)+C.ty,p=i*(1-x)+u*x,d=a,g=i*x+u*(1-x),y=f),n.setShape({x1:i,y1:a,x2:u,y2:f,cpx1:p,cpy1:d,cpx2:g,cpy2:y}),n.useStyle(b.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var D=e.node1.getVisual("color"),k=e.node2.getVisual("color");Object(v["isString"])(D)&&Object(v["isString"])(k)&&(n.style.fill=new vv(0,0,+("horizontal"===h),+("vertical"===h),[{color:D,offset:0},{color:k,offset:1}]))}bu(n,xu(m,"edgeLabel"),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:""+m.get("value")}),n.setTextConfig({position:"inside"});var L=m.getModel("emphasis");Kl(n,m,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),c.setItemGraphicEl(e.dataIndex,n);var j=L.get("focus");$l(n,"adjacency"===j?e.getAdjacentDataIndices():j,L.get("blurScope"),L.get("disabled")),Hs(n).dataType="edge"})),i.eachNode((function(e){var n=e.getLayout(),r=e.getModel(),i=r.get("localX"),a=r.get("localY"),c=r.getModel("emphasis"),h=new Os({shape:{x:null!=i?i*s:n.x,y:null!=a?a*l:n.y,width:n.dx,height:n.dy},style:r.getModel("itemStyle").getItemStyle(),z2:10});bu(h,xu(r),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),h.disableLabelAnimation=!0,h.setStyle("fill",e.getVisual("color")),h.setStyle("decal",e.getVisual("style").decal),Kl(h,r),o.add(h),u.setItemGraphicEl(e.dataIndex,h),Hs(h).dataType="node";var f=c.get("focus");$l(h,"adjacency"===f?e.getAdjacentDataIndices():f,c.get("blurScope"),c.get("disabled"))})),u.eachItemGraphicEl((function(e,i){var o=u.getItemModel(i);o.get("draggable")&&(e.drift=function(e,o){r._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(i),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){r._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(bB(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(dy);function bB(t,e,n){var r=new Os({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return uu(r,{shape:{width:t.width+20}},e,n),r}var xB=mB,_B=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.getInitialData=function(t,e){var n=t.edges||t.links,r=t.data||t.nodes,i=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a=0&&(o[i[a].depth]=new Uu(i[a],this,e));if(r&&n){var s=BR(r,n,this,!0,l);return s.data}function l(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,r=n.getData().getItemLayout(e);if(r){var i=r.depth,o=n.levelModels[i];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,r=n.getGraph().getEdgeByIndex(e),i=r.node1.getLayout();if(i){var o=i.depth,a=n.levelModels[o];a&&(t.parentModel=a)}return t}))}},e.prototype.setNodePosition=function(t,e){var n=this.option.data||this.option.nodes,r=n[t];r.localX=e[0],r.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function r(t){return isNaN(t)||null==t}if("edge"===n){var i=this.getDataParams(t,n),o=i.data,a=i.value,s=o.source+" -- "+o.target;return gd("nameValue",{name:s,value:a,noValue:r(a)})}var l=this.getGraph().getNodeByIndex(t),u=l.getLayout().value,c=this.getDataParams(t,n).data.name;return gd("nameValue",{name:null!=c?c+"":null,value:u,noValue:r(u)})},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(e,n){var r=t.prototype.getDataParams.call(this,e,n);if(null==r.value&&"node"===n){var i=this.getGraph().getNodeByIndex(e),o=i.getLayout().value;r.value=o}return r},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(Ud),wB=_B;function SB(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),r=t.get("nodeGap"),i=OB(t,e);t.layoutInfo=i;var o=i.width,a=i.height,s=t.getGraph(),l=s.nodes,u=s.edges;AB(l);var c=v["filter"](l,(function(t){return 0===t.getLayout().value})),h=0!==c.length?0:t.get("layoutIterations"),f=t.get("orient"),p=t.get("nodeAlign");MB(l,u,n,r,o,a,h,f,p)}))}function OB(t,e){return sh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function MB(t,e,n,r,i,o,a,s,l){IB(t,e,n,i,o,s,l),LB(t,e,o,i,r,a,s),UB(t,s)}function AB(t){v["each"](t,(function(t){var e=HB(t.outEdges,GB),n=HB(t.inEdges,GB),r=t.getValue()||0,i=Math.max(e,n,r);t.setLayout({value:i},!0)}))}function IB(t,e,n,r,i,o,a){for(var s=[],l=[],u=[],c=[],h=0,f=0;f=0;y&&v.depth>p&&(p=v.depth),g.setLayout({depth:y?v.depth:h},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;mh-1?p:h-1;a&&"left"!==a&&CB(t,a,o,S);var O="vertical"===o?(i-n)/S:(r-n)/S;kB(t,O,o)}function TB(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function CB(t,e,n,r){if("right"===e){var i=[],o=t,a=0;while(o.length){for(var s=0;s0;o--)l*=.99,RB(s,l,a),EB(s,i,n,r,a),WB(s,l,a),EB(s,i,n,r,a)}function jB(t,e){var n=[],r="vertical"===e?"y":"x",i=io(t,(function(t){return t.getLayout()[r]}));return i.keys.sort((function(t,e){return t-e})),v["each"](i.keys,(function(t){n.push(i.buckets.get(t))})),n}function PB(t,e,n,r,i,o){var a=1/0;v["each"](t,(function(t){var e=t.length,s=0;v["each"](t,(function(t){s+=t.getLayout().value}));var l="vertical"===o?(r-(e-1)*i)/s:(n-(e-1)*i)/s;l0&&(a=s.getLayout()[o]+l,"vertical"===i?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[h]+e;var p="vertical"===i?r:n;if(l=u-e-p,l>0){a=s.getLayout()[o]-l,"vertical"===i?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(f=c-2;f>=0;--f)s=t[f],l=s.getLayout()[o]+s.getLayout()[h]+e-u,l>0&&(a=s.getLayout()[o]-l,"vertical"===i?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function RB(t,e,n){v["each"](t.slice().reverse(),(function(t){v["each"](t,(function(t){if(t.outEdges.length){var r=HB(t.outEdges,NB,n)/HB(t.outEdges,GB);if(isNaN(r)){var i=t.outEdges.length;r=i?HB(t.outEdges,zB,n)/i:0}if("vertical"===n){var o=t.getLayout().x+(r-FB(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(r-FB(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function NB(t,e){return FB(t.node2,e)*t.getValue()}function zB(t,e){return FB(t.node2,e)}function BB(t,e){return FB(t.node1,e)*t.getValue()}function VB(t,e){return FB(t.node1,e)}function FB(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function GB(t){return t.getValue()}function HB(t,e,n){var r=0,i=t.length,o=-1;while(++oo&&(o=e)})),v["each"](n,(function(e){var n=new $P({type:"color",mappingMethod:"linear",dataExtent:[i,o],visual:t.get("color")}),r=n.mapValueToVisual(e.getLayout().value),a=e.getModel().get(["itemStyle","color"]);null!=a?(e.setVisual("color",a),e.setVisual("style",{fill:a})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}r.length&&v["each"](r,(function(t){var e=t.getModel().get("lineStyle");t.setVisual("style",e)}))}))}function $B(t){t.registerChartView(xB),t.registerSeriesModel(wB),t.registerLayout(SB),t.registerVisual(YB),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))}var XB=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,r,i=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=i.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=i.getOrdinalMeta(),r=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),r=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,c=this._baseAxisDim=l[u],h=l[1-u],f=[i,o],p=f[u].get("type"),d=f[1-u].get("type"),g=t.data;if(g&&r){var y=[];v["each"](g,(function(t,e){var n;v["isArray"](t)?(n=t.slice(),t.unshift(e)):v["isArray"](t.value)?(n=v["extend"]({},t),n.value=n.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var m=this.defaultValueDimensions,b=[{name:c,type:w_(p),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:h,type:w_(d),dimsDef:m.slice()}];return eC(this,{coordDimensions:b,dimensionsCount:m.length+1,encodeDefaulter:v["curry"](jh,b,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),qB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return d(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(Ud);Object(v["mixin"])(qB,XB,!0);var ZB=qB,KB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=t.getData(),i=this.group,o=this._data;this._data||i.removeAll();var a="horizontal"===t.get("layout")?1:0;r.diff(o).add((function(t){if(r.hasValue(t)){var e=r.getItemLayout(t),n=tV(e,r,t,a,!0);r.setItemGraphicEl(t,n),i.add(n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var s=r.getItemLayout(t);n?(du(n),eV(s,n,r,t)):n=tV(s,r,t,a),i.add(n),r.setItemGraphicEl(t,n)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=r},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(dy),JB=function(){function t(){}return t}(),QB=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return d(e,t),e.prototype.getDefaultShape=function(){return new JB},e.prototype.buildPath=function(t,e){var n=e.points,r=0;for(t.moveTo(n[r][0],n[r][1]),r++;r<4;r++)t.lineTo(n[r][0],n[r][1]);for(t.closePath();rg){var _=[m,x];r.push(_)}}}return{boxData:n,outliers:r}}var cV={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if(e.sourceFormat!==Sh){var n="";0,Qh(n)}var r=uV(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:r.boxData},{data:r.outliers}]}};function hV(t){t.registerSeriesModel(ZB),t.registerChartView(rV),t.registerLayout(oV),t.registerTransform(cV)}var fV=["color","borderColor"],pV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,r){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype.eachRendered=function(t){oy(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,r=this.group,i=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||r.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&yV(s,a))return;var l=vV(a,n,!0);uu(l,{shape:{points:a.ends}},t,n),mV(l,e,n,i),r.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var c=e.getItemLayout(a);o&&yV(s,c)?r.remove(u):(u?(lu(u,{shape:{points:c.ends}},t,a),du(u)):u=vV(c,a),mV(u,e,a,i),r.add(u),e.setItemGraphicEl(a,u))}else r.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),wV(t,this.group);var e=t.get("clip",!0)?DI(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){var n,r=e.getData(),i=r.getLayout("isSimpleBox");while(null!=(n=t.next())){var o=r.getItemLayout(n),a=vV(o,n);mV(a,r,n,i),a.incremental=!0,this.group.add(a),this._progressiveEls.push(a)}},e.prototype._incrementalRenderLarge=function(t,e){wV(e,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(dy),dV=function(){function t(){}return t}(),gV=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return d(e,t),e.prototype.getDefaultShape=function(){return new dV},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(ss);function vV(t,e,n){var r=t.ends;return new gV({shape:{points:n?bV(r,t):r},z2:100})}function yV(t,e){for(var n=!0,r=0;r0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]);0===t&&(i=n.get(["itemStyle","borderColorDoji"]));var o=n.getModel("itemStyle").getItemStyle(fV);e.useStyle(o),e.style.fill=null,e.style.stroke=i}var OV=pV,MV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return d(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var r=e.getItemLayout(t);return r&&n.rect(r.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(Ud);Object(v["mixin"])(MV,XB,!0);var AV=MV;function IV(t){t&&v["isArray"](t.series)&&v["each"](t.series,(function(t){v["isObject"](t)&&"k"===t.type&&(t.type="candlestick")}))}var TV=["itemStyle","borderColor"],CV=["itemStyle","borderColor0"],DV=["itemStyle","borderColorDoji"],kV=["itemStyle","color"],LV=["itemStyle","color0"],jV={seriesType:"candlestick",plan:Xd(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?kV:LV)}function r(t,e){return e.get(0===t?DV:t>0?TV:CV)}if(!e.isSeriesFiltered(t)){var i=t.pipelineContext.large;return!i&&{progress:function(t,e){var i;while(null!=(i=t.next())){var o=e.getItemModel(i),a=e.getItemLayout(i).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=r(a,o)||s.fill;var l=e.ensureUniqueItemVisual(i,"style");Object(v["extend"])(l,s)}}}}}},PV=jV,EV={seriesType:"candlestick",plan:Xd(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),r=NV(t,n),i=0,o=1,a=["x","y"],s=n.getDimensionIndex(n.mapDimension(a[i])),l=Object(v["map"])(n.mapDimensionsAll(a[o]),n.getDimensionIndex,n),u=l[0],c=l[1],h=l[2],f=l[3];if(n.setLayout({candleWidth:r,isSimpleBox:r<=1.3}),!(s<0||l.length<4))return{progress:t.pipelineContext.large?d:p};function p(t,n){var a,l=n.getStore();while(null!=(a=t.next())){var p=l.get(s,a),d=l.get(u,a),g=l.get(c,a),v=l.get(h,a),y=l.get(f,a),m=Math.min(d,g),b=Math.max(d,g),x=I(m,p),_=I(b,p),w=I(v,p),S=I(y,p),O=[];T(O,_,0),T(O,x,1),O.push(D(S),D(_),D(w),D(x));var M=n.getItemModel(a),A=!!M.get(["itemStyle","borderColorDoji"]);n.setItemLayout(a,{sign:RV(l,a,d,g,c,A),initBaseline:d>g?_[o]:x[o],ends:O,brushRect:C(v,y,p)})}function I(t,n){var r=[];return r[i]=n,r[o]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(r)}function T(t,e,n){var o=e.slice(),a=e.slice();o[i]=Hv(o[i]+r/2,1,!1),a[i]=Hv(a[i]-r/2,1,!0),n?t.push(o,a):t.push(a,o)}function C(t,e,n){var a=I(t,n),s=I(e,n);return a[i]-=r/2,s[i]-=r/2,{x:a[0],y:a[1],width:o?r:s[0]-a[0],height:o?s[1]-a[1]:r}}function D(t){return t[i]=Hv(t[i],1),t}}function d(n,r){var a,l,p=Rw(4*n.count),d=0,g=[],v=[],y=r.getStore(),m=!!t.get(["itemStyle","borderColorDoji"]);while(null!=(l=n.next())){var b=y.get(s,l),x=y.get(u,l),_=y.get(c,l),w=y.get(h,l),S=y.get(f,l);isNaN(b)||isNaN(w)||isNaN(S)?(p[d++]=NaN,d+=3):(p[d++]=RV(y,l,x,_,c,m),g[i]=b,g[o]=w,a=e.dataToPoint(g,null,v),p[d++]=a?a[0]:NaN,p[d++]=a?a[1]:NaN,g[o]=S,a=e.dataToPoint(g,null,v),p[d++]=a?a[1]:NaN)}r.setLayout("largePoints",p)}}};function RV(t,e,n,r,i,o){var a;return a=n>r?-1:n0?t.get(i,e-1)<=r?1:-1:1,a}function NV(t,e){var n,r=t.getBaseAxis(),i="category"===r.type?r.getBandWidth():(n=r.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Qr(Object(v["retrieve2"])(t.get("barMaxWidth"),i),i),a=Qr(Object(v["retrieve2"])(t.get("barMinWidth"),1),i),s=t.get("barWidth");return null!=s?Qr(s,i):Math.max(Math.min(i/2,o),a)}var zV=EV;function BV(t){t.registerChartView(OV),t.registerSeriesModel(AV),t.registerPreprocessor(IV),t.registerVisual(PV),t.registerLayout(zV)}function VV(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var FV=function(t){function e(e,n){var r=t.call(this)||this,i=new uI(e,n),o=new Nr;return r.add(i),r.add(o),r.updateData(e,n),r}return d(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,r=t.rippleNumber,i=this.childAt(1),o=0;o0&&(o=this._getLineLength(r)/l*1e3),o!==this._period||a!==this._loop||s!==this._roundTrip){r.stopAnimation();var c=void 0;c=v["isFunction"](u)?u(n):u,r.__t>0&&(c=-o*r.__t),this._animateSymbol(r,o,c,a,s)}this._period=o,this._loop=a,this._roundTrip=s}},e.prototype._animateSymbol=function(t,e,n,r,i){if(e>0){t.__t=0;var o=this,a=t.animate("",r).when(i?2*e:e,{__t:i?2:1}).delay(n).during((function(){o._updateSymbolPosition(t)}));r||a.done((function(){o.remove(t)})),a.start()}},e.prototype._getLineLength=function(t){return P(t.__p1,t.__cp1)+P(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,r=t.__cp1,i=t.__t<1?t.__t:2-t.__t,o=[t.x,t.y],a=o.slice(),s=Fe,l=Ge;o[0]=s(e[0],r[0],n[0],i),o[1]=s(e[1],r[1],n[1],i);var u=t.__t<1?l(e[0],r[0],n[0],i):l(n[0],r[0],e[0],1-i),c=t.__t<1?l(e[1],r[1],n[1],i):l(n[1],r[1],e[1],1-i);t.rotation=-Math.atan2(c,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT=0;o--)if(r[o]<=e)break;o=Math.min(o,i-2)}else{for(o=a;oe)break;o=Math.min(o-1,i-2)}var l=(e-r[o])/(r[o+1]-r[o]),u=n[o],c=n[o+1];t.x=u[0]*(1-l)+l*c[0],t.y=u[1]*(1-l)+l*c[1];var h=t.__t<1?c[0]-u[0]:u[0]-c[0],f=t.__t<1?c[1]-u[1]:u[1]-c[1];t.rotation=-Math.atan2(f,h)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=e,t.ignore=!1}},e}(qV),QV=JV,tF=function(){function t(){this.polyline=!1,this.curveness=0,this.segs=[]}return t}(),eF=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return d(e,t),e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new tF},e.prototype.buildPath=function(t,e){var n,r=e.segs,i=e.curveness;if(e.polyline)for(n=this._off;n0){t.moveTo(r[n++],r[n++]);for(var a=1;a0){var h=(s+u)/2-(l-c)*i,f=(l+c)/2-(u-s)*i;t.quadraticCurveTo(h,f,u,c)}else t.lineTo(u,c)}this.incremental&&(this._off=n,this.notClear=!0)},e.prototype.findDataIndex=function(t,e){var n=this.shape,r=n.segs,i=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s0)for(var u=r[s++],c=r[s++],h=1;h0){var d=(u+f)/2-(c-p)*i,g=(c+p)/2-(f-u)*i;if(za(u,c,d,g,f,p,o,t,e))return a}else if(Ra(u,c,f,p,o,t,e))return a;a++}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),r=this.getBoundingRect();if(t=n[0],e=n[1],r.contain(t,e)){var i=this.hoverDataIdx=this.findDataIndex(t,e);return i>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.segs,r=1/0,i=1/0,o=-1/0,a=-1/0,s=0;s0&&(o.dataIndex=n+t.__startIndex)}))},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),rF=nF,iF={seriesType:"lines",plan:Xd(),reset:function(t){var e=t.coordinateSystem;if(e){var n=t.get("polyline"),r=t.pipelineContext.large;return{progress:function(i,o){var a=[];if(r){var s=void 0,l=i.end-i.start;if(n){for(var u=0,c=i.start;c0&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)})),i.updateData(r);var u=t.get("clip",!0)&&DI(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var r=t.getData(),i=this._updateLineDraw(r,t);i.incrementalPrepareUpdate(r),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,e,n){var r=t.getData(),i=t.pipelineContext;if(!this._finished||i.large||i.progressiveRender)return{update:!0};var o=oF.reset(t,e,n);o.progress&&o.progress({start:0,end:r.count(),count:r.count()},r),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,r=this._showEffect(e),i=!!e.get("polyline"),o=e.pipelineContext,a=o.large;return n&&r===this._hasEffet&&i===this._isPolyline&&a===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=a?new rF:new _R(i?r?QV:KV:r?qV:gR),this._hasEffet=r,this._isPolyline=i,this._isLargeDraw=a),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr(),n="svg"===e.painter.getType();n||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.type="lines",e}(dy),sF=aF,lF="undefined"===typeof Uint32Array?Array:Uint32Array,uF="undefined"===typeof Float64Array?Array:Float64Array;function cF(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=Object(v["map"])(e,(function(t){var e=[t[0].coord,t[1].coord],n={coords:e};return t[0].name&&(n.fromName=t[0].name),t[1].name&&(n.toName=t[1].name),Object(v["mergeAll"])([n,t[0],t[1]])})))}var hF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return d(e,t),e.prototype.init=function(e){e.data=e.data||[],cF(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(cF(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=Object(v["concatArray"])(this._flatCoords,e.flatCoords),this._flatCoordsOffset=Object(v["concatArray"])(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],r=this._flatCoordsOffset[2*t+1],i=0;i ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),e=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&e>0?e+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(Ud),fF=hF;function pF(t){return t instanceof Array||(t=[t,t]),t}var dF={seriesType:"lines",reset:function(t){var e=pF(t.get("symbol")),n=pF(t.get("symbolSize")),r=t.getData();function i(t,e){var n=t.getItemModel(e),r=pF(n.getShallow("symbol",!0)),i=pF(n.getShallow("symbolSize",!0));r[0]&&t.setItemVisual(e,"fromSymbol",r[0]),r[1]&&t.setItemVisual(e,"toSymbol",r[1]),i[0]&&t.setItemVisual(e,"fromSymbolSize",i[0]),i[1]&&t.setItemVisual(e,"toSymbolSize",i[1])}return r.setVisual("fromSymbol",e&&e[0]),r.setVisual("toSymbol",e&&e[1]),r.setVisual("fromSymbolSize",n&&n[0]),r.setVisual("toSymbolSize",n&&n[1]),{dataEach:r.hasItemOption?i:null}}},gF=dF;function vF(t){t.registerChartView(sF),t.registerSeriesModel(fF),t.registerLayout(oF),t.registerVisual(gF)}var yF=256,mF=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=fr["d"].createCanvas();this.canvas=t}return t.prototype.update=function(t,e,n,r,i,o){var a=this._getBrush(),s=this._getGradient(i,"inRange"),l=this._getGradient(i,"outOfRange"),u=this.pointSize+this.blurSize,c=this.canvas,h=c.getContext("2d"),f=t.length;c.width=e,c.height=n;for(var p=0;p0){var I=o(m)?s:l;m>0&&(m=m*M+S),x[_++]=I[A],x[_++]=I[A+1],x[_++]=I[A+2],x[_++]=I[A+3]*m*256}else _+=4}return h.putImageData(b,0,0),c},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=fr["d"].createCanvas()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var r=t.getContext("2d");return r.clearRect(0,0,n,n),r.shadowOffsetX=n,r.shadowBlur=this.blurSize,r.shadowColor="#000",r.beginPath(),r.arc(-e,e,this.pointSize,0,2*Math.PI,!0),r.closePath(),r.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,r=n[e]||(n[e]=new Uint8ClampedArray(1024)),i=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,i),r[o++]=i[0],r[o++]=i[1],r[o++]=i[2],r[o++]=i[3];return r},t}(),bF=mF;function xF(t,e,n){var r=t[1]-t[0];e=v["map"](e,(function(e){return{interval:[(e.interval[0]-t[0])/r,(e.interval[1]-t[0])/r]}}));var i=e.length,o=0;return function(t){var r;for(r=o;r=0;r--){a=e[r].interval;if(a[0]<=t&&t<=a[1]){o=r;break}}return r>=0&&r=e[0]&&t<=e[1]}}function wF(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var SF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(r=e)}))})),this._progressiveEls=null,this.group.removeAll();var i=t.coordinateSystem;"cartesian2d"===i.type||"calendar"===i.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):wF(i)&&this._renderOnGeo(i,t,r,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,r){var i=e.coordinateSystem;i&&(wF(i)?this.render(e,n,r):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(e,r,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){oy(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,r,i){var o,a,s,l,u=t.coordinateSystem,c=kI(u,"cartesian2d");if(c){var h=u.getAxis("x"),f=u.getAxis("y");0,o=h.getBandWidth()+.5,a=f.getBandWidth()+.5,s=h.scale.getExtent(),l=f.scale.getExtent()}for(var p=this.group,d=t.getData(),g=t.getModel(["emphasis","itemStyle"]).getItemStyle(),v=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),m=t.get(["itemStyle","borderRadius"]),b=xu(t),x=t.getModel("emphasis"),_=x.get("focus"),w=x.get("blurScope"),S=x.get("disabled"),O=c?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],M=n;Ms[1]||Cl[1])continue;var D=u.dataToPoint([T,C]);A=new Os({shape:{x:D[0]-o/2,y:D[1]-a/2,width:o,height:a},style:I})}else{if(isNaN(d.get(O[1],M)))continue;A=new Os({z2:1,shape:u.dataToRect([d.get(O[0],M)]).contentShape,style:I})}if(d.hasItemOption){var k=d.getItemModel(M),L=k.getModel("emphasis");g=L.getModel("itemStyle").getItemStyle(),v=k.getModel(["blur","itemStyle"]).getItemStyle(),y=k.getModel(["select","itemStyle"]).getItemStyle(),m=k.get(["itemStyle","borderRadius"]),_=L.get("focus"),w=L.get("blurScope"),S=L.get("disabled"),b=xu(k)}A.shape.r=m;var j=t.getRawValue(M),P="-";j&&null!=j[2]&&(P=j[2]+""),bu(A,b,{labelFetcher:t,labelDataIndex:M,defaultOpacity:I.opacity,defaultText:P}),A.ensureState("emphasis").style=g,A.ensureState("blur").style=v,A.ensureState("select").style=y,$l(A,_,w,S),A.incremental=i,i&&(A.states.emphasis.hoverLayer=!0),p.add(A),d.setItemGraphicEl(M,A),this._progressiveEls&&this._progressiveEls.push(A)}},e.prototype._renderOnGeo=function(t,e,n,r){var i=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new bF;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var c=Math.max(l.x,0),h=Math.max(l.y,0),f=Math.min(l.width+l.x,r.getWidth()),p=Math.min(l.height+l.y,r.getHeight()),d=f-c,g=p-h,v=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],y=a.mapArray(v,(function(e,n,r){var i=t.dataToPoint([e,n]);return i[0]-=c,i[1]-=h,i.push(r),i})),m=n.getExtent(),b="visualMap.continuous"===n.type?_F(m,n.option.range):xF(m,n.getPieceList(),n.option.selected);s.update(y,d,g,i.color.getNormalizer(),{inRange:i.color.getColorMapper(),outOfRange:o.color.getColorMapper()},b);var x=new gs({style:{width:d,height:g,x:c,y:h,image:s.canvas},silent:!0});this.group.add(x)},e.type="heatmap",e}(dy),OF=SF,MF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.getInitialData=function(t,e){return pw(null,this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=gf.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(Ud),AF=MF;function IF(t){t.registerChartView(OF),t.registerSeriesModel(AF)}var TF=["itemStyle","borderWidth"],CF=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],DF=new xg,kF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=this.group,i=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis(),l=s.isHorizontal(),u=a.master.getRect(),c={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[u.x,u.x+u.width],[u.y,u.y+u.height]],isHorizontal:l,valueDim:CF[+l],categoryDim:CF[1-+l]};return i.diff(o).add((function(t){if(i.hasValue(t)){var e=HF(i,t),n=LF(i,t,e,c),o=YF(i,c,n);i.setItemGraphicEl(t,o),r.add(o),JF(o,c,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var a=HF(i,t),s=LF(i,t,a,c),l=qF(i,s);n&&l!==n.__pictorialShapeStr&&(r.remove(n),i.setItemGraphicEl(t,null),n=null),n?$F(n,c,s):n=YF(i,c,s,!0),i.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,r.add(n),JF(n,c,s)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&XF(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=i,this.group},e.prototype.remove=function(t,e){var n=this.group,r=this._data;t.get("animation")?r&&r.eachItemGraphicEl((function(e){XF(r,Hs(e).dataIndex,t,e)})):n.removeAll()},e.type="pictorialBar",e}(dy);function LF(t,e,n,r){var i=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",l=n.get("symbolRotate"),u=(l||0)*Math.PI/180||0,c=n.get("symbolPatternSize")||2,h=n.isAnimationEnabled(),f={dataIndex:e,layout:i,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:c,rotation:u,animationModel:h?n:null,hoverScale:h&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};jF(n,o,i,r,f),EF(t,e,i,o,a,f.boundingLength,f.pxSign,c,r,f),RF(n,f.symbolScale,u,r,f);var p=f.symbolSize,d=Cm(n.get("symbolOffset"),p);return NF(n,p,i,o,a,d,s,f.valueLineWidth,f.boundingLength,f.repeatCutLength,r,f),f}function jF(t,e,n,r,i){var o,a=r.valueDim,s=t.get("symbolBoundingData"),l=r.coordSys.getOtherAxis(r.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),c=1-+(n[a.wh]<=0);if(v["isArray"](s)){var h=[PF(l,s[0])-u,PF(l,s[1])-u];h[1]0?1:-1}function PF(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function EF(t,e,n,r,i,o,a,s,l,u){var c,h=l.valueDim,f=l.categoryDim,p=Math.abs(n[f.wh]),d=t.getItemVisual(e,"symbolSize");c=v["isArray"](d)?d.slice():null==d?["100%","100%"]:[d,d],c[f.index]=Qr(c[f.index],p),c[h.index]=Qr(c[h.index],r?p:Math.abs(o)),u.symbolSize=c;var g=u.symbolScale=[c[0]/s,c[1]/s];g[h.index]*=(l.isHorizontal?-1:1)*a}function RF(t,e,n,r,i){var o=t.get(TF)||0;o&&(DF.attr({scaleX:e[0],scaleY:e[1],rotation:n}),DF.updateTransform(),o/=DF.getLineScale(),o*=e[r.valueDim.index]),i.valueLineWidth=o||0}function NF(t,e,n,r,i,o,a,s,l,u,c,h){var f=c.categoryDim,p=c.valueDim,d=h.pxSign,g=Math.max(e[p.index]+s,0),y=g;if(r){var m=Math.abs(l),b=v["retrieve"](t.get("symbolMargin"),"15%")+"",x=!1;b.lastIndexOf("!")===b.length-1&&(x=!0,b=b.slice(0,b.length-1));var _=Qr(b,e[p.index]),w=Math.max(g+2*_,0),S=x?0:2*_,O=bi(r),M=O?r:QF((m+S)/w),A=m-M*g;_=A/2/(x?M:Math.max(M-1,1)),w=g+2*_,S=x?0:2*_,O||"fixed"===r||(M=u?QF((Math.abs(u)+S)/w):0),y=M*w-S,h.repeatTimes=M,h.symbolMargin=_}var I=d*(y/2),T=h.pathPosition=[];T[f.index]=n[f.wh]/2,T[p.index]="start"===a?I:"end"===a?l-I:l/2,o&&(T[0]+=o[0],T[1]+=o[1]);var C=h.bundlePosition=[];C[f.index]=n[f.xy],C[p.index]=n[p.xy];var D=h.barRectShape=v["extend"]({},n);D[p.wh]=d*Math.max(Math.abs(n[p.wh]),Math.abs(T[p.index]+I)),D[f.wh]=n[f.wh];var k=h.clipShape={};k[f.xy]=-n[f.xy],k[f.wh]=c.ecSize[f.wh],k[p.xy]=0,k[p.wh]=n[p.wh]}function zF(t){var e=t.symbolPatternSize,n=Im(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function BF(t,e,n,r){var i=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,c=0,h=o[e.valueDim.index]+a+2*n.symbolMargin;for(ZF(t,(function(t){t.__pictorialAnimationIndex=c,t.__pictorialRepeatTimes=u,c0:r<0)&&(i=u-1-t),e[l.index]=h*(i-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function VF(t,e,n,r){var i=t.__pictorialBundle,o=t.__pictorialMainPath;o?KF(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,r):(o=t.__pictorialMainPath=zF(n),i.add(o),KF(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,r))}function FF(t,e,n){var r=v["extend"]({},e.barRectShape),i=t.__pictorialBarRect;i?KF(i,null,{shape:r},e,n):(i=t.__pictorialBarRect=new Os({z2:2,shape:r,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),i.disableMorphing=!0,t.add(i))}function GF(t,e,n,r){if(n.symbolClip){var i=t.__pictorialClipPath,o=v["extend"]({},n.clipShape),s=e.valueDim,l=n.animationModel,u=n.dataIndex;if(i)lu(i,{shape:o},l,u);else{o[s.wh]=0,i=new Os({shape:o}),t.__pictorialBundle.setClipPath(i),t.__pictorialClipPath=i;var c={};c[s.wh]=n.clipShape[s.wh],a[r?"updateProps":"initProps"](i,{shape:c},l,u)}}}function HF(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=WF,n.isAnimationEnabled=UF,n}function WF(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function UF(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function YF(t,e,n,r){var i=new Nr,o=new Nr;return i.add(o),i.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?BF(i,e,n):VF(i,e,n),FF(i,n,r),GF(i,e,n,r),i.__pictorialShapeStr=qF(t,n),i.__pictorialSymbolMeta=n,i}function $F(t,e,n){var r=n.animationModel,i=n.dataIndex,o=t.__pictorialBundle;lu(o,{x:n.bundlePosition[0],y:n.bundlePosition[1]},r,i),n.symbolRepeat?BF(t,e,n,!0):VF(t,e,n,!0),FF(t,n,!0),GF(t,e,n,!0)}function XF(t,e,n,r){var i=r.__pictorialBarRect;i&&i.removeTextContent();var o=[];ZF(r,(function(t){o.push(t)})),r.__pictorialMainPath&&o.push(r.__pictorialMainPath),r.__pictorialClipPath&&(n=null),v["each"](o,(function(t){hu(t,{scaleX:0,scaleY:0},n,e,(function(){r.parent&&r.parent.remove(r)}))})),t.setItemGraphicEl(e,null)}function qF(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function ZF(t,e,n){v["each"](t.__pictorialBundle.children(),(function(r){r!==t.__pictorialBarRect&&e.call(n,r)}))}function KF(t,e,n,r,i,o){e&&t.attr(e),r.symbolClip&&!i?n&&t.attr(n):n&&a[i?"updateProps":"initProps"](t,n,r.animationModel,r.dataIndex,o)}function JF(t,e,n){var r=n.dataIndex,i=n.itemModel,o=i.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=i.getModel(["blur","itemStyle"]).getItemStyle(),l=i.getModel(["select","itemStyle"]).getItemStyle(),u=i.getShallow("cursor"),c=o.get("focus"),h=o.get("blurScope"),f=o.get("scale");ZF(t,(function(t){if(t instanceof gs){var e=t.style;t.useStyle(v["extend"]({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var r=t.ensureState("emphasis");r.style=a,f&&(r.scaleX=1.1*t.scaleX,r.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var p=e.valueDim.posDesc[+(n.boundingLength>0)],d=t.__pictorialBarRect;bu(d,xu(i),{labelFetcher:e.seriesModel,labelDataIndex:r,defaultText:oI(e.seriesModel.getData(),r),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:p}),$l(t,c,h,o.get("disabled"))}function QF(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var tG=kF,eG=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return d(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=Zu(rT.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(rT),nG=eG;function rG(t){t.registerChartView(tG),t.registerSeriesModel(nG),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,Object(v["curry"])(Yw,"pictorialBar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,$w("pictorialBar"))}var iG=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return d(e,t),e.prototype.render=function(t,e,n){var r=t.getData(),i=this,o=this.group,a=t.getLayerSeries(),s=r.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function c(t){return t.name}o.x=0,o.y=l.y+u[0];var h=new m_(this._layersSeries||[],a,c,c),f=[];function p(e,n,s){var l=i._layers;if("remove"!==e){for(var u,c,h=[],p=[],d=a[n].indices,g=0;go&&(o=s),r.push(s)}for(var u=0;uo&&(o=h)}return{y0:i,max:o}}function pG(t){t.registerChartView(aG),t.registerSeriesModel(uG),t.registerLayout(cG),t.registerProcessor(UT("themeRiver"))}var dG=2,gG=4,vG=function(t){function e(e,n,r,i){var o=t.call(this)||this;o.z2=dG,o.textConfig={inside:!0},Hs(o).seriesIndex=n.seriesIndex;var a=new Gs({z2:gG,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,r,i),o}return d(e,t),e.prototype.updateData=function(t,e,n,r,i){this.node=e,e.piece=this,n=n||this._seriesModel,r=r||this._ecModel;var o=this;Hs(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),l=e.getLayout(),u=v["extend"]({},l);u.label=null;var c=e.getVisual("style");c.lineJoin="bevel";var h=e.getVisual("decal");h&&(c.decal=vb(h,i));var f=pT(a.getModel("itemStyle"),u,!0);v["extend"](u,f),v["each"](Js,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var r=pT(n,u);r&&(e.shape=r)})),t?(o.setShape(u),o.shape.r=l.r0,uu(o,{shape:{r:l.r}},n,e.dataIndex)):(lu(o,{shape:u},n),du(o)),o.useStyle(c),this._updateLabel(n);var p=a.getShallow("cursor");p&&o.attr("cursor",p),this._seriesModel=n||this._seriesModel,this._ecModel=r||this._ecModel;var d=s.get("focus"),g="ancestor"===d?e.getAncestorsIndices():"descendant"===d?e.getDescendantIndices():d;$l(this,g,s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),r=n.getModel("label"),i=this.node.getLayout(),o=i.endAngle-i.startAngle,a=(i.startAngle+i.endAngle)/2,s=Math.cos(a),l=Math.sin(a),u=this,c=u.getTextContent(),h=this.node.dataIndex,f=r.get("minAngle")/180*Math.PI,p=r.get("show")&&!(null!=f&&Math.abs(o)Math.PI/2?"right":"left"):O&&"center"!==O?"left"===O?(b=i.r0+S,a>Math.PI/2&&(O="right")):"right"===O&&(b=i.r-S,a>Math.PI/2&&(O="left")):(b=o===2*Math.PI&&0===i.r0?0:(i.r+i.r0)/2,O="center"),g.style.align=O,g.style.verticalAlign=d(f,"verticalAlign")||"middle",g.x=b*s+i.cx,g.y=b*l+i.cy;var M=d(f,"rotate"),A=0;"radial"===M?(A=Va(-a),A>Math.PI/2&&A<1.5*Math.PI&&(A+=Math.PI)):"tangential"===M?(A=Math.PI/2-a,A>Math.PI/2?A-=Math.PI:A<-Math.PI/2&&(A+=Math.PI)):v["isNumber"](M)&&(A=M*Math.PI/180),g.rotation=A})),c.dirtyStyle()},e}(Fg),yG=vG,mG="sunburstRootToNode",bG="sunburstHighlight",xG="sunburstUnhighlight";function _G(t){t.registerAction({type:mG,update:"updateView"},(function(t,e){function n(e,n){var r=Bj(t,[mG],e);if(r){var i=e.getViewRoot();i&&(t.direction=Fj(i,r.node)?"rollUp":"drillDown"),e.resetViewRoot(r.node)}}e.eachComponent({mainType:"series",subType:"sunburst",query:t},n)})),t.registerAction({type:bG,update:"none"},(function(t,e,n){function r(e){var n=Bj(t,[bG],e);n&&(t.dataIndex=n.node.dataIndex)}t=Object(v["extend"])({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},r),n.dispatchAction(Object(v["extend"])(t,{type:"highlight"}))})),t.registerAction({type:xG,update:"updateView"},(function(t,e,n){t=Object(v["extend"])({},t),n.dispatchAction(Object(v["extend"])(t,{type:"downplay"}))}))}var wG=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n,r){var i=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),c=[];s.eachNode((function(t){c.push(t)}));var h=this._oldChildren||[];function f(t,e){function n(t){return t.getId()}function r(n,r){var i=null==n?null:t[n],o=null==r?null:e[r];p(i,o)}0===t.length&&0===e.length||new m_(e,t,n,n).add(r).update(r).remove(v["curry"](r,null)).execute()}function p(r,i){if(u||!r||r.getValue()||(r=null),r!==a&&i!==a)if(i&&i.piece)r?(i.piece.updateData(!1,r,t,e,n),o.setItemGraphicEl(r.dataIndex,i.piece)):d(i);else if(r){var s=new yG(r,t,e,n);l.add(s),o.setItemGraphicEl(r.dataIndex,s)}}function d(t){t&&t.piece&&(l.remove(t.piece),t.piece=null)}function g(r,o){o.depth>0?(i.virtualPiece?i.virtualPiece.updateData(!1,r,t,e,n):(i.virtualPiece=new yG(r,t,e,n),l.add(i.virtualPiece)),o.piece.off("click"),i.virtualPiece.on("click",(function(t){i._rootToNode(o.parentNode)}))):i.virtualPiece&&(l.remove(i.virtualPiece),i.virtualPiece=null)}f(c,h),g(a,s),this._initEvents(),this._oldChildren=c},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1,r=t.seriesModel.getViewRoot();r.eachNode((function(r){if(!n&&r.piece&&r.piece===e.target){var i=r.getModel().get("nodeClick");if("rootToNode"===i)t._rootToNode(r);else if("link"===i){var o=r.getModel(),a=o.get("link");if(a){var s=o.get("target",!0)||"_blank";th(a,s)}}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:mG,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData(),r=n.getItemLayout(0);if(r){var i=t[0]-r.cx,o=t[1]-r.cy,a=Math.sqrt(i*i+o*o);return a<=r.r&&a>=r.r0}},e.type="sunburst",e}(dy),SG=wG,OG=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return d(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};MG(n);var r=this._levelModels=v["map"](t.levels||[],(function(t){return new Uu(t,this,e)}),this),i=zj.createTree(n,this,o);function o(t){t.wrapMethod("getItemModel",(function(t,e){var n=i.getNodeByDataIndex(e),o=r[n.depth];return o&&(t.parentModel=o),t}))}return i.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),r=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=Gj(r,this),n},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){tP(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(Ud);function MG(t){var e=0;v["each"](t.children,(function(t){MG(t);var n=t.value;v["isArray"](n)&&(n=n[0]),e+=n}));var n=t.value;v["isArray"](n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),v["isArray"](t.value)?t.value[0]=n:t.value=n}var AG=OG,IG=Math.PI/180;function TG(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),r=t.get("radius");v["isArray"](r)||(r=[0,r]),v["isArray"](e)||(e=[e,e]);var i=n.getWidth(),o=n.getHeight(),a=Math.min(i,o),s=Qr(e[0],i),l=Qr(e[1],o),u=Qr(r[0],a/2),c=Qr(r[1],a/2),h=-t.get("startAngle")*IG,f=t.get("minAngle")*IG,p=t.getData().tree.root,d=t.getViewRoot(),g=d.depth,y=t.get("sort");null!=y&&CG(d,y);var m=0;v["each"](d.children,(function(t){!isNaN(t.getValue())&&m++}));var b=d.getValue(),x=Math.PI/(b||m)*2,_=d.depth>0,w=d.height-(_?-1:1),S=(c-u)/(w||1),O=t.get("clockwise"),M=t.get("stillShowZeroSum"),A=O?1:-1,I=function(e,n){if(e){var r=n;if(e!==p){var i=e.getValue(),o=0===b&&M?x:i*x;o1)i=i.parentNode;var o=n.getColorFromPalette(i.name||i.dataIndex+"",e);return t.depth>1&&Object(v["isString"])(o)&&(o=Object(Je["lift"])(o,(t.depth-1)/(r-1)*.5)),o}t.eachSeriesByType("sunburst",(function(t){var e=t.getData(),r=e.tree;r.eachNode((function(i){var o=i.getModel(),a=o.getModel("itemStyle").getItemStyle();a.fill||(a.fill=n(i,t,r.root.height));var s=e.ensureUniqueItemVisual(i.dataIndex,"style");Object(v["extend"])(s,a)}))}))}function LG(t){t.registerChartView(SG),t.registerSeriesModel(AG),t.registerLayout(Object(v["curry"])(TG,"sunburst")),t.registerProcessor(Object(v["curry"])(UT,"sunburst")),t.registerVisual(kG),_G(t)}var jG={color:"fill",borderColor:"stroke"},PG={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},EG=Xi(),RG=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return pw(null,this)},e.prototype.getDataParams=function(e,n,r){var i=t.prototype.getDataParams.call(this,e,n);return r&&(i.info=EG(r).info),i},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(Ud),NG=RG;function zG(t,e){return e=e||[0,0],v["map"](["x","y"],(function(n,r){var i=this.getAxis(n),o=e[r],a=t[r]/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(o-a)-i.dataToCoord(o+a))}),this)}function BG(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:v["bind"](zG,t)}}}function VG(t,e){return e=e||[0,0],v["map"]([0,1],(function(n){var r=e[n],i=t[n]/2,o=[],a=[];return o[n]=r-i,a[n]=r+i,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function FG(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:v["bind"](VG,t)}}}function GG(t,e){var n=this.getAxis(),r=e instanceof Array?e[0]:e,i=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(r-i)-n.dataToCoord(r+i))}function HG(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:Object(v["bind"])(GG,t)}}}function WG(t,e){return e=e||[0,0],v["map"](["Radius","Angle"],(function(n,r){var i="get"+n+"Axis",o=this[i](),a=e[r],s=t[r]/2,l="category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-s)-o.dataToCoord(a+s));return"Angle"===n&&(l=l*Math.PI/180),l}),this)}function UG(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),r=e.getExtent();return r[0]>r[1]&&r.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:r[1],r0:r[0]},api:{coord:function(r){var i=e.dataToRadius(r[0]),o=n.dataToAngle(r[1]),a=t.coordToPoint([i,o]);return a.push(i,o*Math.PI/180),a},size:v["bind"](WG,t)}}}function YG(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}function $G(t,e,n,r){return t&&(t.legacy||!1!==t.legacy&&!n&&!r&&"tspan"!==e&&("text"===e||Object(v["hasOwn"])(t,"text")))}function XG(t,e,n){var r,i,o,a=t;if("text"===e)o=a;else{o={},Object(v["hasOwn"])(a,"text")&&(o.text=a.text),Object(v["hasOwn"])(a,"rich")&&(o.rich=a.rich),Object(v["hasOwn"])(a,"textFill")&&(o.fill=a.textFill),Object(v["hasOwn"])(a,"textStroke")&&(o.stroke=a.textStroke),Object(v["hasOwn"])(a,"fontFamily")&&(o.fontFamily=a.fontFamily),Object(v["hasOwn"])(a,"fontSize")&&(o.fontSize=a.fontSize),Object(v["hasOwn"])(a,"fontStyle")&&(o.fontStyle=a.fontStyle),Object(v["hasOwn"])(a,"fontWeight")&&(o.fontWeight=a.fontWeight),i={type:"text",style:o,silent:!0},r={};var s=Object(v["hasOwn"])(a,"textPosition");n?r.position=s?a.textPosition:"inside":s&&(r.position=a.textPosition),Object(v["hasOwn"])(a,"textPosition")&&(r.position=a.textPosition),Object(v["hasOwn"])(a,"textOffset")&&(r.offset=a.textOffset),Object(v["hasOwn"])(a,"textRotation")&&(r.rotation=a.textRotation),Object(v["hasOwn"])(a,"textDistance")&&(r.distance=a.textDistance)}return qG(o,t),Object(v["each"])(o.rich,(function(t){qG(t,t)})),{textConfig:r,textContent:i}}function qG(t,e){e&&(e.font=e.textFont||e.font,Object(v["hasOwn"])(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),Object(v["hasOwn"])(e,"textAlign")&&(t.align=e.textAlign),Object(v["hasOwn"])(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),Object(v["hasOwn"])(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),Object(v["hasOwn"])(e,"textWidth")&&(t.width=e.textWidth),Object(v["hasOwn"])(e,"textHeight")&&(t.height=e.textHeight),Object(v["hasOwn"])(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),Object(v["hasOwn"])(e,"textPadding")&&(t.padding=e.textPadding),Object(v["hasOwn"])(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),Object(v["hasOwn"])(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),Object(v["hasOwn"])(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),Object(v["hasOwn"])(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),Object(v["hasOwn"])(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),Object(v["hasOwn"])(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),Object(v["hasOwn"])(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function ZG(t,e,n){var r=t;r.textPosition=r.textPosition||n.position||"inside",null!=n.offset&&(r.textOffset=n.offset),null!=n.rotation&&(r.textRotation=n.rotation),null!=n.distance&&(r.textDistance=n.distance);var i=r.textPosition.indexOf("inside")>=0,o=t.fill||"#000";KG(r,e);var a=null==r.textFill;return i?a&&(r.textFill=n.insideFill||"#fff",!r.textStroke&&n.insideStroke&&(r.textStroke=n.insideStroke),!r.textStroke&&(r.textStroke=o),null==r.textStrokeWidth&&(r.textStrokeWidth=2)):(a&&(r.textFill=t.fill||n.outsideFill||"#000"),!r.textStroke&&n.outsideStroke&&(r.textStroke=n.outsideStroke)),r.text=e.text,r.rich=e.rich,Object(v["each"])(e.rich,(function(t){KG(t,t)})),r}function KG(t,e){e&&(Object(v["hasOwn"])(e,"fill")&&(t.textFill=e.fill),Object(v["hasOwn"])(e,"stroke")&&(t.textStroke=e.fill),Object(v["hasOwn"])(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),Object(v["hasOwn"])(e,"font")&&(t.font=e.font),Object(v["hasOwn"])(e,"fontStyle")&&(t.fontStyle=e.fontStyle),Object(v["hasOwn"])(e,"fontWeight")&&(t.fontWeight=e.fontWeight),Object(v["hasOwn"])(e,"fontSize")&&(t.fontSize=e.fontSize),Object(v["hasOwn"])(e,"fontFamily")&&(t.fontFamily=e.fontFamily),Object(v["hasOwn"])(e,"align")&&(t.textAlign=e.align),Object(v["hasOwn"])(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),Object(v["hasOwn"])(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),Object(v["hasOwn"])(e,"width")&&(t.textWidth=e.width),Object(v["hasOwn"])(e,"height")&&(t.textHeight=e.height),Object(v["hasOwn"])(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),Object(v["hasOwn"])(e,"padding")&&(t.textPadding=e.padding),Object(v["hasOwn"])(e,"borderColor")&&(t.textBorderColor=e.borderColor),Object(v["hasOwn"])(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),Object(v["hasOwn"])(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),Object(v["hasOwn"])(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),Object(v["hasOwn"])(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),Object(v["hasOwn"])(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),Object(v["hasOwn"])(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),Object(v["hasOwn"])(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),Object(v["hasOwn"])(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),Object(v["hasOwn"])(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),Object(v["hasOwn"])(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var JG={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},QG=Object(v["keys"])(JG),tH=(Object(v["reduce"])(lr,(function(t,e){return t[e]=1,t}),{}),lr.join(", "),["","style","shape","extra"]),eH=Xi();function nH(t,e,n,r,i){var o=t+"Animation",a=au(t,r,i)||{},s=eH(e).userDuring;return a.duration>0&&(a.during=s?Object(v["bind"])(fH,{el:e,userDuring:s}):null,a.setToFinal=!0,a.scope=t),Object(v["extend"])(a,n[o]),a}function rH(t,e,n,r){r=r||{};var i=r.dataIndex,o=r.isInit,a=r.clearStyle,s=n.isAnimationEnabled(),l=eH(t),u=e.style;l.userDuring=e.during;var c={},h={};if(vH(t,e,h),dH("shape",e,h),dH("extra",e,h),!o&&s&&(gH(t,e,c),pH("shape",t,e,c),pH("extra",t,e,c),yH(t,e,u,c)),h.style=u,sH(t,h,a),uH(t,e),s)if(o){var f={};Object(v["each"])(tH,(function(t){var n=t?e[t]:e;n&&n.enterFrom&&(t&&(f[t]=f[t]||{}),Object(v["extend"])(t?f[t]:f,n.enterFrom))}));var p=nH("enter",t,e,n,i);p.duration>0&&t.animateFrom(f,p)}else lH(t,e,i||0,n,c);iH(t,e),u?t.dirty():t.markRedraw()}function iH(t,e){for(var n=eH(t).leaveToProps,r=0;r0&&t.animateFrom(i,o)}}function uH(t,e){Object(v["hasOwn"])(e,"silent")&&(t.silent=e.silent),Object(v["hasOwn"])(e,"ignore")&&(t.ignore=e.ignore),t instanceof ta&&Object(v["hasOwn"])(e,"invisible")&&(t.invisible=e.invisible),t instanceof ss&&Object(v["hasOwn"])(e,"autoBatch")&&(t.autoBatch=e.autoBatch)}var cH={},hH={setTransform:function(t,e){return cH.el[t]=e,this},getTransform:function(t){return cH.el[t]},setShape:function(t,e){var n=cH.el,r=n.shape||(n.shape={});return r[t]=e,n.dirtyShape&&n.dirtyShape(),this},getShape:function(t){var e=cH.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=cH.el,r=n.style;return r&&(r[t]=e,n.dirtyStyle&&n.dirtyStyle()),this},getStyle:function(t){var e=cH.el.style;if(e)return e[t]},setExtra:function(t,e){var n=cH.el.extra||(cH.el.extra={});return n[t]=e,this},getExtra:function(t){var e=cH.el.extra;if(e)return e[t]}};function fH(){var t=this,e=t.el;if(e){var n=eH(e).userDuring,r=t.userDuring;n===r?(cH.el=e,r(hH)):t.el=t.userDuring=null}}function pH(t,e,n,r){var i=n[t];if(i){var o,a=e[t];if(a){var s=n.transition,l=i.transition;if(l)if(!o&&(o=r[t]={}),aH(l))Object(v["extend"])(o,a);else for(var u=Ai(l),c=0;c=0){!o&&(o=r[t]={});var p=Object(v["keys"])(a);for(c=0;c=0)){var f=t.getAnimationStyleProps(),p=f?f.style:null;if(p){!i&&(i=r.style={});var d=Object(v["keys"])(n);for(u=0;u=0?e.getStore().get(i,n):void 0}var o=e.get(r.name,n),a=r&&r.ordinalMeta;return a?a.categories[o]:o}function S(n,r){null==r&&(r=s);var i=e.getItemVisual(r,"style"),o=i&&i.fill,a=i&&i.opacity,l=b(r,OH).getItemStyle();null!=o&&(l.fill=o),null!=a&&(l.opacity=a);var u={inheritColor:Object(v["isString"])(o)?o:"#000"},c=x(r,OH),h=_u(c,null,u,!1,!0);h.text=c.getShallow("show")?Object(v["retrieve2"])(t.getFormattedLabel(r,OH),oI(e,r)):null;var f=wu(c,u,!1);return A(n,l),l=ZG(l,h,f),n&&M(l,n),l.legacy=!0,l}function O(n,r){null==r&&(r=s);var i=b(r,SH).getItemStyle(),o=x(r,SH),a=_u(o,null,null,!0,!0);a.text=o.getShallow("show")?Object(v["retrieve3"])(t.getFormattedLabel(r,SH),t.getFormattedLabel(r,OH),oI(e,r)):null;var l=wu(o,null,!0);return A(n,i),i=ZG(i,a,l),n&&M(i,n),i.legacy=!0,i}function M(t,e){for(var n in e)Object(v["hasOwn"])(e,n)&&(t[n]=e[n])}function A(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}function I(t,n){if(null==n&&(n=s),Object(v["hasOwn"])(jG,t)){var r=e.getItemVisual(n,"style");return r?r[jG[t]]:null}if(Object(v["hasOwn"])(PG,t))return e.getItemVisual(n,t)}function T(t){if("cartesian2d"===o.type){var e=o.getBaseAxis();return Vw(Object(v["defaults"])({axis:e},t))}}function C(){return n.getCurrentSeriesIndices()}function D(t){return Cu(t,n)}}function UH(t){var e={};return Object(v["each"])(t.dimensions,(function(n){var r=t.getDimensionInfo(n);if(!r.isExtraCoord){var i=r.coordDim,o=e[i]=e[i]||[];o[r.coordDimIndex]=t.getDimensionIndex(n)}})),e}function YH(t,e,n,r,i,o,a){if(r){var s=$H(t,e,n,r,i,o);return s&&a.setItemGraphicEl(n,s),s&&$l(s,r.focus,r.blurScope,r.emphasisDisabled),s}o.remove(e)}function $H(t,e,n,r,i,o){var a=-1,s=e;e&&XH(e,r,i)&&(a=Object(v["indexOf"])(o.childrenRef(),e),e=null);var l=!e,u=e;u?u.clearStates():(u=BH(r),s&&RH(s,u)),!1===r.morph?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),LH.normal.cfg=LH.normal.conOpt=LH.emphasis.cfg=LH.emphasis.conOpt=LH.blur.cfg=LH.blur.conOpt=LH.select.cfg=LH.select.conOpt=null,LH.isLegacy=!1,ZH(u,n,r,i,l,LH),qH(u,n,r,i,l),VH(t,u,n,r,LH,i,l),Object(v["hasOwn"])(r,"info")&&(EG(u).info=r.info);for(var c=0;c=0?o.replaceAt(u,a):o.add(u),u}function XH(t,e,n){var r=EG(t),i=e.type,o=e.shape,a=e.style;return n.isUniversalTransitionEnabled()||null!=i&&i!==r.customGraphicType||"path"===i&&sW(o)&&aW(o)!==r.customPathData||"image"===i&&Object(v["hasOwn"])(a,"image")&&a.image!==r.customImagePath}function qH(t,e,n,r,i){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&XH(a,o,r)&&(a=null),a||(a=BH(o),t.setClipPath(a)),VH(null,a,e,o,null,r,i)}}function ZH(t,e,n,r,i,o){if(!t.isGroup){KH(n,null,o),KH(n,SH,o);var a=o.normal.conOpt,s=o.emphasis.conOpt,l=o.blur.conOpt,u=o.select.conOpt;if(null!=a||null!=s||null!=u||null!=l){var c=t.getTextContent();if(!1===a)c&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},c?c.clearStates():(c=BH(a),t.setTextContent(c)),VH(null,c,e,a,null,r,i);for(var h=a&&a.style,f=0;f=c;p--){var d=e.childAt(p);eW(e,d,i)}}}function eW(t,e,n){e&&oH(e,EG(t).option,n)}function nW(t){new m_(t.oldChildren,t.newChildren,rW,rW,t).add(iW).update(iW).remove(oW).execute()}function rW(t,e){var n=t&&t.name;return null!=n?n:kH+e}function iW(t,e){var n=this.context,r=null!=t?n.newChildren[t]:null,i=null!=e?n.oldChildren[e]:null;$H(n.api,i,n.dataIndex,r,n.seriesModel,n.group)}function oW(t){var e=this.context,n=e.oldChildren[t];n&&oH(n,EG(n).option,e.seriesModel)}function aW(t){return t&&(t.pathData||t.d)}function sW(t){return t&&(Object(v["hasOwn"])(t,"pathData")||Object(v["hasOwn"])(t,"d"))}function lW(t){t.registerChartView(zH),t.registerSeriesModel(NG)}var uW=Xi(),cW=v["clone"],hW=v["bind"],fW=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,r){var i=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,r||this._lastValue!==i||this._lastStatus!==o){this._lastValue=i,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,i,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var c=this._moveAnimation=this.determineAnimation(t,e);if(a){var h=v["curry"](pW,e,c);this.updatePointerEl(a,l,h),this.updateLabelEl(a,l,h,e)}else a=this._group=new Nr,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);yW(a,e,!0),this._renderHandle(i)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),r=t.axis,i="category"===r.type,o=e.get("snap");if(!o&&!i)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(i&&r.getBandWidth()>a)return!0;if(o){var s=gD(t).seriesDataCount,l=r.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,r,i){},t.prototype.createPointerEl=function(t,e,n,r){var i=e.pointer;if(i){var o=uW(t).pointerEl=new a[i.type](cW(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,r){if(e.label){var i=uW(t).labelEl=new Gs(cW(e.label));t.add(i),gW(i,r)}},t.prototype.updatePointerEl=function(t,e,n){var r=uW(t).pointerEl;r&&e.pointer&&(r.setStyle(e.pointer.style),n(r,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,r){var i=uW(t).labelEl;i&&(i.setStyle(e.label.style),n(i,{x:e.label.x,y:e.label.y}),gW(i,r))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,r=this._api.getZr(),i=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return i&&r.remove(i),void(this._handle=null);this._handle||(e=!0,i=this._handle=Jv(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){vt(t.event)},onmousedown:hW(this._onHandleDragMove,this,0,0),drift:hW(this._onHandleDragMove,this),ondragend:hW(this._onHandleDragEnd,this)}),r.add(i)),yW(i,n,!1),i.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");v["isArray"](s)||(s=[s,s]),i.scaleX=s[0]/2,i.scaleY=s[1]/2,by(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){pW(this._axisPointerModel,!e&&this._moveAnimation,this._handle,vW(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var r=this.updateHandleTransform(vW(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=r,n.stopAnimation(),n.attr(vW(r)),uW(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var e=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,r=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),r&&e.remove(r),this._group=null,this._handle=null,this._payloadInfo=null),xy(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}},t}();function pW(t,e,n,r){dW(uW(n).lastProp,r)||(uW(n).lastProp=r,e?lu(n,r,t):(n.stopAnimation(),n.attr(r)))}function dW(t,e){if(v["isObject"](t)&&v["isObject"](e)){var n=!0;return v["each"](e,(function(e,r){n=n&&dW(t[r],e)})),!!n}return t===e}function gW(t,e){t[e.get(["label","show"])?"show":"hide"]()}function vW(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function yW(t,e,n){var r=e.get("z"),i=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=r&&(t.z=r),null!=i&&(t.zlevel=i),t.silent=n)}))}var mW=fW;function bW(t){var e,n=t.get("type"),r=t.getModel(n+"Style");return"line"===n?(e=r.getLineStyle(),e.fill=null):"shadow"===n&&(e=r.getAreaStyle(),e.stroke=null),e}function xW(t,e,n,r,i){var o=n.get("value"),a=wW(o,e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),s=n.getModel("label"),l=Wc(s.get("padding")||0),u=s.getFont(),c=vr(a,u),h=i.position,f=c.width+l[1]+l[3],p=c.height+l[0]+l[2],d=i.align;"right"===d&&(h[0]-=f),"center"===d&&(h[0]-=f/2);var g=i.verticalAlign;"bottom"===g&&(h[1]-=p),"middle"===g&&(h[1]-=p/2),_W(h,f,p,r);var v=s.get("backgroundColor");v&&"auto"!==v||(v=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:_u(s,{text:a,font:u,fill:s.getTextColor(),padding:l,backgroundColor:v}),z2:10}}function _W(t,e,n,r){var i=r.getWidth(),o=r.getHeight();t[0]=Math.min(t[0]+e,i)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function wW(t,e,n,r,i){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:i.precision}),a=i.formatter;if(a){var s={value:kS(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};v["each"](r,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),r=t.dataIndexInside,i=e&&e.getDataParams(r);i&&s.seriesData.push(i)})),v["isString"](a)?o=a.replace("{value}",o):v["isFunction"](a)&&(o=a(s))}return o}function SW(t,e,n){var r=wt();return It(r,r,n.rotation),At(r,r,n.position),Uv([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],r)}function OW(t,e,n,r,i,o){var a=sD.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=i.get(["label","margin"]),xW(e,r,i,o,{position:SW(r.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function MW(t,e,n){return n=n||0,{x1:t[n],y1:t[1-n],x2:e[n],y2:e[1-n]}}function AW(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}function IW(t,e,n,r,i,o){return{cx:t,cy:e,r0:n,r:r,startAngle:i,endAngle:o,clockwise:!0}}var TW=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.makeElOption=function(t,e,n,r,i){var o=n.axis,a=o.grid,s=r.get("type"),l=CW(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var c=bW(r),h=DW[s](o,u,l);h.style=c,t.graphicKey=h.type,t.pointer=h}var f=zC(a.model,n);OW(e,t,f,n,r,i)},e.prototype.getHandleTransform=function(t,e,n){var r=zC(e.axis.grid.model,e,{labelInside:!1});r.labelMargin=n.get(["handle","margin"]);var i=SW(e.axis,t,r);return{x:i[0],y:i[1],rotation:r.rotation+(r.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,r){var i=n.axis,o=i.grid,a=i.getGlobalExtent(!0),s=CW(o,i).getOtherAxis(i).getGlobalExtent(),l="x"===i.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var c=(s[1]+s[0])/2,h=[c,c];h[l]=u[l];var f=[{verticalAlign:"middle"},{align:"center"}];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:h,tooltipOption:f[l]}},e}(mW);function CW(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var DW={line:function(t,e,n){var r=MW([e,n[0]],[e,n[1]],kW(t));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(t,e,n){var r=Math.max(1,t.getBandWidth()),i=n[1]-n[0];return{type:"Rect",shape:AW([e-r/2,n[0]],[r,i],kW(t))}}};function kW(t){return"x"===t.dim?0:1}var LW=TW,jW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(yh),PW=jW,EW=Xi(),RW=v["each"];function NW(t,e,n){if(!g["a"].node){var r=e.getZr();EW(r).records||(EW(r).records={}),zW(r,e);var i=EW(r).records[t]||(EW(r).records[t]={});i.handler=n}}function zW(t,e){function n(n,r){t.on(n,(function(n){var i=GW(e);RW(EW(t).records,(function(t){t&&r(t,n,i.dispatchAction)})),BW(i.pendings,e)}))}EW(t).initialized||(EW(t).initialized=!0,n("click",v["curry"](FW,"click")),n("mousemove",v["curry"](FW,"mousemove")),n("globalout",VW))}function BW(t,e){var n,r=t.showTip.length,i=t.hideTip.length;r?n=t.showTip[r-1]:i&&(n=t.hideTip[i-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function VW(t,e,n){t.handler("leave",null,n)}function FW(t,e,n,r){e.handler(t,n,r)}function GW(t){var e={showTip:[],hideTip:[]},n=function(r){var i=e[r.type];i?i.push(r):(r.dispatchAction=n,t.dispatchAction(r))};return{dispatchAction:n,pendings:e}}function HW(t,e){if(!g["a"].node){var n=e.getZr(),r=(EW(n).records||{})[t];r&&(EW(n).records[t]=null)}}var WW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=e.getComponent("tooltip"),i=t.get("triggerOn")||r&&r.get("triggerOn")||"mousemove|click";NW("axisPointer",n,(function(t,e,n){"none"!==i&&("leave"===t||i.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){HW("axisPointer",e)},e.prototype.dispose=function(t,e){HW("axisPointer",e)},e.type="axisPointer",e}($d),UW=WW;function YW(t,e){var n,r=[],i=t.seriesIndex;if(null==i||!(n=e.getSeriesByIndex(i)))return{point:[]};var o=n.getData(),a=$i(o,t);if(null==a||a<0||v["isArray"](a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)r=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),h=c.dim,f=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(f),g=[];g[p]=o.get(d,a),g[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),r=l.dataToPoint(g)||[]}else r=l.dataToPoint(o.getValues(v["map"](l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var y=s.getBoundingRect().clone();y.applyTransform(s.transform),r=[y.x+y.width/2,y.y+y.height/2]}return{point:r,el:s}}var $W=Xi();function XW(t,e,n){var r=t.currTrigger,i=[t.x,t.y],o=t,a=t.dispatchAction||Object(v["bind"])(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){iU(i)&&(i=YW({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=iU(i),u=o.axesInfo,c=s.axesInfo,h="leave"===r||iU(i),f={},p={},d={list:[],map:{}},g={showPointer:Object(v["curry"])(KW,p),showTooltip:Object(v["curry"])(JW,d)};Object(v["each"])(s.coordSysMap,(function(t,e){var n=l||t.containPoint(i);Object(v["each"])(s.coordSysAxesInfo[e],(function(t,e){var r=t.axis,o=nU(u,t);if(!h&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=r.pointToData(i)),null!=a&&qW(t,a,g,!1,f)}}))}));var y={};return Object(v["each"])(c,(function(t,e){var n=t.linkGroup;n&&!p[e]&&Object(v["each"])(n.axesInfo,(function(e,r){var i=p[r];if(e!==t&&i){var o=i.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,rU(e),rU(t)))),y[t.key]=o}}))})),Object(v["each"])(y,(function(t,e){qW(c[e],t,g,!0,f)})),QW(p,c,f),tU(d,i,t,a),eU(c,a,n),f}}function qW(t,e,n,r,i){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=ZW(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==i.seriesIndex&&Object(v["extend"])(i,s[0]),!r&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function ZW(t,e){var n=e.axis,r=n.dim,i=t,o=[],a=Number.MAX_VALUE,s=-1;return Object(v["each"])(e.seriesModels,(function(e,l){var u,c,h=e.getData().mapDimensionsAll(r);if(e.getAxisTooltipData){var f=e.getAxisTooltipData(h,t,n);c=f.dataIndices,u=f.nestestValue}else{if(c=e.getData().indicesOfNearest(h[0],t,"category"===n.type?.5:null),!c.length)return;u=e.getData().get(h[0],c[0])}if(null!=u&&isFinite(u)){var p=t-u,d=Math.abs(p);d<=a&&((d=0&&s<0)&&(a=d,s=p,i=u,o.length=0),Object(v["each"])(c,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:i}}function KW(t,e,n,r){t[e.key]={value:n,payloadBatch:r}}function JW(t,e,n,r){var i=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&i.length){var l=e.coordSys.model,u=mD(l),c=t.map[u];c||(c=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(c)),c.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:r,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function QW(t,e,n){var r=n.axesInfo=[];Object(v["each"])(e,(function(e,n){var i=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(i.status="show"),i.value=o.value,i.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(i.status="hide"),"show"===i.status&&r.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:i.value})}))}function tU(t,e,n,r){if(!iU(e)&&t.list.length){var i=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};r({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:t.list})}else r({type:"hideTip"})}function eU(t,e,n){var r=n.getZr(),i="axisPointerLastHighlights",o=$W(r)[i]||{},a=$W(r)[i]={};Object(v["each"])(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&Object(v["each"])(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];Object(v["each"])(o,(function(t,e){!a[e]&&l.push(t)})),Object(v["each"])(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function nU(t,e){for(var n=0;n<(t||[]).length;n++){var r=t[n];if(e.axis.dim===r.axisDim&&e.axis.model.componentIndex===r.axisIndex)return r}}function rU(t){var e=t.axis.model,n={},r=n.axisDim=t.axis.dim;return n.axisIndex=n[r+"AxisIndex"]=e.componentIndex,n.axisName=n[r+"AxisName"]=e.name,n.axisId=n[r+"AxisId"]=e.id,n}function iU(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function oU(t){_D.registerAxisPointerClass("CartesianAxisPointer",LW),t.registerComponentModel(PW),t.registerComponentView(UW),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!Object(v["isArray"])(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=lD(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},XW)}function aU(t){d_(jD),d_(oU)}var sU=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.makeElOption=function(t,e,n,r,i){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o),l=s.getExtent(),u=o.dataToCoord(e),c=r.get("type");if(c&&"none"!==c){var h=bW(r),f=uU[c](o,a,u,l);f.style=h,t.graphicKey=f.type,t.pointer=f}var p=r.get(["label","margin"]),d=lU(e,n,r,a,p);xW(t,n,r,i,d)},e}(mW);function lU(t,e,n,r,i){var o=e.axis,a=o.dataToCoord(t),s=r.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,c,h=r.getRadiusAxis().getExtent();if("radius"===o.dim){var f=wt();It(f,f,s),At(f,f,[r.cx,r.cy]),l=Uv([a,-i],f);var p=e.getModel("axisLabel").get("rotate")||0,d=sD.innerTextLayout(s,p*Math.PI/180,-1);u=d.textAlign,c=d.textVerticalAlign}else{var g=h[1];l=r.coordToPoint([g+i,a]);var v=r.cx,y=r.cy;u=Math.abs(l[0]-v)/g<.3?"center":l[0]>v?"left":"right",c=Math.abs(l[1]-y)/g<.3?"middle":l[1]>y?"top":"bottom"}return{position:l,align:u,verticalAlign:c}}var uU={line:function(t,e,n,r){return"angle"===t.dim?{type:"Line",shape:MW(e.coordToPoint([r[0],n]),e.coordToPoint([r[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,r){var i=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:IW(e.cx,e.cy,r[0],r[1],(-n-i/2)*o,(i/2-n)*o)}:{type:"Sector",shape:IW(e.cx,e.cy,n-i/2,n+i/2,0,2*Math.PI)}}},cU=sU,hU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.findAxisModel=function(t){var e,n=this.ecModel;return n.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(yh),fU=hU,pU=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Ji).models[0]},e.type="polarAxis",e}(yh);v["mixin"](pU,zS);var dU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="angleAxis",e}(pU),gU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="radiusAxis",e}(pU),vU=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return d(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(MO);vU.prototype.dataToRadius=MO.prototype.dataToCoord,vU.prototype.radiusToData=MO.prototype.coordToData;var yU=vU,mU=Xi(),bU=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return d(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,r=n.getExtent(),i=n.count();if(r[1]-r[0]<1)return 0;var o=r[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=vr(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7),c=u/s;isNaN(c)&&(c=1/0);var h=Math.max(0,Math.floor(c)),f=mU(t.model),p=f.lastAutoInterval,d=f.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-i)<=1&&p>h?h=p:(f.lastTickCount=i,f.lastAutoInterval=h),h},e}(MO);bU.prototype.dataToAngle=MO.prototype.dataToCoord,bU.prototype.angleToData=MO.prototype.coordToData;var xU=bU,_U=["radius","angle"],wU=function(){function t(t){this.dimensions=_U,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new yU,this._angleAxis=new xU,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){var e="_"+t+"Axis";return this[e]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,r=this._radiusAxis;return n.scale.type===t&&e.push(n),r.scale.type===t&&e.push(r),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,r=this.getAngleAxis(),i=r.getExtent(),o=Math.min(i[0],i[1]),a=Math.max(i[0],i[1]);r.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;var l=Math.atan2(-n,e)/Math.PI*180,u=la)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI,r=Math.cos(n)*e+this.cx,i=-Math.sin(n)*e+this.cy;return[r,i]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis(),n=e.getExtent().slice();n[0]>n[1]&&n.reverse();var r=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:n[0],r:n[1],startAngle:-r[0]*i,endAngle:-r[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,r=e-this.cy,i=n*n+r*r-1e-4,o=this.r,a=this.r0;return i<=o*o&&i>=a*a}}},t.prototype.convertToPixel=function(t,e,n){var r=SU(e);return r===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var r=SU(e);return r===this?this.pointToData(n):null},t}();function SU(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var OU=wU;function MU(t,e,n){var r=e.get("center"),i=n.getWidth(),o=n.getHeight();t.cx=Qr(r[0],i),t.cy=Qr(r[1],o);var a=t.getRadiusAxis(),s=Math.min(i,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:v["isArray"](l)||(l=[0,l]);var u=[Qr(l[0],s),Qr(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}function AU(t,e){var n=this,r=n.getAngleAxis(),i=n.getRadiusAxis();if(r.scale.setExtent(1/0,-1/0),i.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();v["each"](RS(e,"radius"),(function(t){i.scale.unionExtentFromData(e,t)})),v["each"](RS(e,"angle"),(function(t){r.scale.unionExtentFromData(e,t)}))}})),IS(r.scale,r.model),IS(i.scale,i.model),"category"===r.type&&!r.onBand){var o=r.getExtent(),a=360/r.scale.count();r.inverse?o[1]+=a:o[1]-=a,r.setExtent(o[0],o[1])}}function IU(t){return"angleAxis"===t.mainType}function TU(t,e){if(t.type=e.get("type"),t.scale=TS(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),IU(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var CU={dimensions:_U,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,r){var i=new OU(r+"");i.update=AU;var o=i.getRadiusAxis(),a=i.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");TU(o,s),TU(a,l),MU(i,t,e),n.push(i),t.coordinateSystem=i,i.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Ji).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},DU=CU,kU=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function LU(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var r=t.coordToPoint([e[0],n]),i=t.coordToPoint([e[1],n]);return{x1:r[0],y1:r[1],x2:i[0],y2:i[1]}}function jU(t){var e=t.getRadiusAxis();return e.inverse?0:1}function PU(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var EU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return d(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,r=n.polar,i=r.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=v["map"](n.getViewLabels(),(function(t){t=v["clone"](t);var e=n.scale,r="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(r),t}));PU(s),PU(o),v["each"](kU,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||RU[e](this.group,t,r,o,a,i,s)}),this)}},e.type="angleAxis",e}(_D),RU={axisLine:function(t,e,n,r,i,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=jU(n),u=l?0:1;a=0===o[u]?new xg({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Wg({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0}),a.style.fill=null,t.add(a)},axisTick:function(t,e,n,r,i,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[jU(n)],u=v["map"](r,(function(t){return new nv({shape:LU(n,[l,l+s],t.coord)})}));t.add(Bv(u,{style:v["defaults"](a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,r,i,o){if(i.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[jU(n)],c=[],h=0;hd?"left":"right",m=Math.abs(p[1]-g)/f<.3?"middle":p[1]>g?"top":"bottom";if(s&&s[h]){var b=s[h];v["isObject"](b)&&b.textStyle&&(a=new Uu(b.textStyle,l,l.ecModel))}var x=new Gs({silent:sD.isLabelSilent(e),style:_u(a,{x:p[0],y:p[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:r.formattedLabel,align:y,verticalAlign:m})});if(t.add(x),c){var _=sD.makeAxisEventDataBase(e);_.targetType="axisLabel",_.value=r.rawLabel,Hs(x).eventData=_}}),this)},splitLine:function(t,e,n,r,i,o){var a=e.getModel("splitLine"),s=a.getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],h=0;h=0?"p":"n",A=x;m&&(r[s][O]||(r[s][O]={p:x,n:x}),A=r[s][O][M]);var I=void 0,T=void 0,C=void 0,D=void 0;if("radius"===h.dim){var k=h.dataToCoord(S)-x,L=o.dataToCoord(O);Math.abs(k)=D})}}}))}function $U(t){var e={};v["each"](t,(function(t,n){var r=t.getData(),i=t.coordinateSystem,o=i.getBaseAxis(),a=UU(i,o),s=o.getExtent(),l="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/r.count(),u=e[a]||{bandWidth:l,remainedWidth:l,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},c=u.stacks;e[a]=u;var h=WU(t);c[h]||u.autoWidthCount++,c[h]=c[h]||{width:0,maxWidth:0};var f=Qr(t.get("barWidth"),l),p=Qr(t.get("barMaxWidth"),l),d=t.get("barGap"),g=t.get("barCategoryGap");f&&!c[h].width&&(f=Math.min(u.remainedWidth,f),c[h].width=f,u.remainedWidth-=f),p&&(c[h].maxWidth=p),null!=d&&(u.gap=d),null!=g&&(u.categoryGap=g)}));var n={};return v["each"](e,(function(t,e){n[e]={};var r=t.stacks,i=t.bandWidth,o=Qr(t.categoryGap,i),a=Qr(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),v["each"](r,(function(t,e){var n=t.maxWidth;n&&n=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),r=[],i="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),r[i]=e.toGlobalCoord(e.dataToCoord(+t)),r[1-i]=0===i?n.y+n.height/2:n.x+n.width/2,r},t.prototype.convertToPixel=function(t,e,n){var r=hY(e);return r===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var r=hY(e);return r===this?this.pointToData(n):null},t}();function hY(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var fY=cY;function pY(t,e){var n=[];return t.eachComponent("singleAxis",(function(r,i){var o=new fY(r,t,e);o.name="single_"+i,o.resize(r,e),r.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Ji).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n}var dY={create:pY,dimensions:uY},gY=dY,vY=["x","y"],yY=["width","height"],mY=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.makeElOption=function(t,e,n,r,i){var o=n.axis,a=o.coordinateSystem,s=_Y(a,1-xY(o)),l=a.dataToPoint(e)[0],u=r.get("type");if(u&&"none"!==u){var c=bW(r),h=bY[u](o,l,s);h.style=c,t.graphicKey=h.type,t.pointer=h}var f=QU(n);OW(e,t,f,n,r,i)},e.prototype.getHandleTransform=function(t,e,n){var r=QU(e,{labelInside:!1});r.labelMargin=n.get(["handle","margin"]);var i=SW(e.axis,t,r);return{x:i[0],y:i[1],rotation:r.rotation+(r.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,r){var i=n.axis,o=i.coordinateSystem,a=xY(i),s=_Y(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=_Y(o,1-a),c=(u[1]+u[0])/2,h=[c,c];return h[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:h,tooltipOption:{verticalAlign:"middle"}}},e}(mW),bY={line:function(t,e,n){var r=MW([e,n[0]],[e,n[1]],xY(t));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(t,e,n){var r=t.getBandWidth(),i=n[1]-n[0];return{type:"Rect",shape:AW([e-r/2,n[0]],[r,i],xY(t))}}};function xY(t){return t.isHorizontal()?0:1}function _Y(t,e){var n=t.getRect();return[n[vY[e]],n[vY[e]]+n[yY[e]]]}var wY=mY,SY=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="single",e}($d);function OY(t){d_(oU),_D.registerAxisPointerClass("SingleAxisPointer",wY),t.registerComponentView(SY),t.registerComponentView(iY),t.registerComponentModel(aY),TC(t,"single",aY,aY.defaultOption),t.registerCoordinateSystem("single",gY)}var MY=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(e,n,r){var i=fh(e);t.prototype.init.apply(this,arguments),AY(e,i)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),AY(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(yh);function AY(t,e){var n,r=t.cellSize;n=v["isArray"](r)?r:t.cellSize=[r,r],1===n.length&&(n[1]=n[0]);var i=v["map"]([0,1],(function(t){return uh(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));hh(t,e,{type:"box",ignoreSize:i})}var IY=MY,TY=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){var r=this.group;r.removeAll();var i=t.coordinateSystem,o=i.getRangeInfo(),a=i.getOrient(),s=e.getLocaleModel();this._renderDayRect(t,o,r),this._renderLines(t,o,a,r),this._renderYearText(t,o,a,r),this._renderMonthText(t,s,a,r),this._renderWeekText(t,s,o,a,r)},e.prototype._renderDayRect=function(t,e,n){for(var r=t.coordinateSystem,i=t.getModel("itemStyle").getItemStyle(),o=r.getCellWidth(),a=r.getCellHeight(),s=e.start.time;s<=e.end.time;s=r.getNextNDay(s,1).time){var l=r.dataToRect([s],!1).tl,u=new Os({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:i});n.add(u)}},e.prototype._renderLines=function(t,e,n,r){var i=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,c=0;u.time<=e.end.time;c++){f(u.formatedDate),0===c&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var h=u.date;h.setMonth(h.getMonth()+1),u=o.getDateInfo(h)}function f(e){i._firstDayOfMonth.push(o.getDateInfo(e)),i._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=i._getLinePointsOfOneWeek(t,e,n);i._tlpoints.push(l[0]),i._blpoints.push(l[l.length-1]),s&&i._drawSplitline(l,a,r)}f(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(i._getEdgesPoints(i._tlpoints,l,n),a,r),s&&this._drawSplitline(i._getEdgesPoints(i._blpoints,l,n),a,r)},e.prototype._getEdgesPoints=function(t,e,n){var r=[t[0].slice(),t[t.length-1].slice()],i="horizontal"===n?0:1;return r[0][i]=r[0][i]-e/2,r[1][i]=r[1][i]+e/2,r},e.prototype._drawSplitline=function(t,e,n){var r=new Jg({z2:20,shape:{points:t},style:e});n.add(r)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var r=t.coordinateSystem,i=r.getDateInfo(e),o=[],a=0;a<7;a++){var s=r.getNextNDay(i.time,a),l=r.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return Object(v["isString"])(t)&&t?qc(t,e):Object(v["isFunction"])(t)?t(e):e.nameMap},e.prototype._yearTextPositionControl=function(t,e,n,r,i){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===r?(a+=i,s=["center","top"]):"left"===r?o-=i:"right"===r?(o+=i,s=["center","top"]):a-=i;var l=0;return"left"!==r&&"right"!==r||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,r){var i=t.getModel("yearLabel");if(i.get("show")){var o=i.get("margin"),a=i.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,c="horizontal"===n?0:1,h={top:[l,s[c][1]],bottom:[l,s[1-c][1]],left:[s[1-c][0],u],right:[s[c][0],u]},f=e.start.y;+e.end.y>+e.start.y&&(f=f+"-"+e.end.y);var p=i.get("formatter"),d={start:e.start.y,end:e.end.y,nameMap:f},g=this._formatterLabel(p,d),v=new Gs({z2:30,style:_u(i,{text:g})});v.attr(this._yearTextPositionControl(v,h[a],n,a,o)),r.add(v)}},e.prototype._monthTextPositionControl=function(t,e,n,r,i){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=i,e&&(o="center"),"start"===r&&(a="bottom")):(s+=i,e&&(a="middle"),"start"===r&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n,r){var i=t.getModel("monthLabel");if(i.get("show")){var o=i.get("nameMap"),a=i.get("margin"),s=i.get("position"),l=i.get("align"),u=[this._tlpoints,this._blpoints];o&&!Object(v["isString"])(o)||(o&&(e=sc(o)||e),o=e.get(["time","monthAbbr"])||[]);var c="start"===s?0:1,h="horizontal"===n?0:1;a="start"===s?-a:a;for(var f="center"===l,p=0;p=r.start.time&&n.timea.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var r=Math.floor(n[1].time/DY)-Math.floor(n[0].time/DY)+1,i=new Date(n[0].time),o=i.getDate(),a=n[1].date.getDate();i.setDate(o+r-1);var s=i.getDate();if(s!==a){var l=i.getTime()-n[1].time>0?1:-1;while((s=i.getDate())!==a&&(i.getTime()-n[1].time)*l>0)r-=l,i.setDate(s-l)}var u=Math.floor((r+n[0].day+6)/7),c=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:r,weeks:u,nthWeek:c,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var r=this._getRangeInfo(n);if(t>r.weeks||0===t&&er.lweek)return null;var i=7*(t-1)-r.fweek+e,o=new Date(r.start.time);return o.setDate(+r.start.d+i),this.getDateInfo(o)},t.create=function(e,n){var r=[];return e.eachComponent("calendar",(function(i){var o=new t(i,e,n);r.push(o),i.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=r[t.get("calendarIndex")||0])})),r},t.dimensions=["time","value"],t}();function LY(t){var e=t.calendarModel,n=t.seriesModel,r=e?e.coordinateSystem:n?n.coordinateSystem:null;return r}var jY=kY;function PY(t){t.registerComponentModel(IY),t.registerComponentView(CY),t.registerCoordinateSystem("calendar",jY)}function EY(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var r=e.parentOption;r?e.parentId=r.id:n&&(e.parentId=n.parentId)}e.parentOption=null}function RY(t,e){var n;return v["each"](e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}function NY(t,e,n){var r=v["extend"]({},n),i=t[e],o=n.$action||"merge";"merge"===o?i?(v["merge"](i,r,!0),hh(i,r,{ignoreSize:!0}),ph(n,i),VY(n,i),VY(n,i,"shape"),VY(n,i,"style"),VY(n,i,"extra"),n.clipPath=i.clipPath):t[e]=r:"replace"===o?t[e]=r:"remove"===o&&i&&(t[e]=null)}var zY=["transition","enterFrom","leaveTo"],BY=zY.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function VY(t,e,n){if(n&&(!t[n]&&e[n]&&(t[n]={}),t=t[n],e=e[n]),t&&e)for(var r=n?zY:BY,i=0;i=0;l--){u=n[l],c=Vi(u.id,null),h=null!=c?i.get(c):null;if(h){f=h.parent,g=WY(f);var y=f===r?{width:o,height:a}:{width:g.width,height:g.height},m={},b=lh(h,u,y,null,{hv:u.hv,boundingMode:u.bounding},m);if(!WY(h).isNew&&b){for(var x=u.transition,_={},w=0;w=0)?_[S]=O:h[S]=O}lu(h,_,t,0)}else h.attr(m)}}},e.prototype._clear=function(){var t=this,e=this._elMap;e.each((function(n){XY(n,WY(n).option,e,t._lastGraphicModel)})),this._elMap=v["createHashMap"]()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}($d);function YY(t){var e=v["hasOwn"](HY,t)?HY[t]:Ev(t);var n=new e({});return WY(n).type=t,n}function $Y(t,e,n,r){var i=YY(n);return e.add(i),r.set(t,i),WY(i).id=t,WY(i).isNew=!0,i}function XY(t,e,n,r){var i=t&&t.parent;i&&("group"===t.type&&t.traverse((function(t){XY(t,e,n,r)})),oH(t,e,r),n.removeKey(WY(t).id))}function qY(t,e,n,r){t.isGroup||v["each"]([["cursor",ta.prototype.cursor],["zlevel",r||0],["z",n||0],["z2",0]],(function(n){var r=n[0];v["hasOwn"](e,r)?t[r]=v["retrieve2"](e[r],n[1]):null==t[r]&&(t[r]=n[1])})),v["each"](v["keys"](e),(function(n){if(0===n.indexOf("on")){var r=e[n];t[n]=v["isFunction"](r)?r:null}})),v["hasOwn"](e,"draggable")&&(t.draggable=e.draggable),null!=e.name&&(t.name=e.name),null!=e.id&&(t.id=e.id)}function ZY(t){return t=v["extend"]({},t),v["each"](["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(nh),(function(e){delete t[e]})),t}function KY(t,e,n){var r=Hs(t).eventData;t.silent||t.ignore||r||(r=Hs(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name}),r&&(r.info=n.info)}function JY(t){t.registerComponentModel(GY),t.registerComponentView(UY),t.registerPreprocessor((function(t){var e=t.graphic;Object(v["isArray"])(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])}))}var QY=["x","y","radius","angle","single"],t$=["cartesian2d","polar","singleAxis"];function e$(t){var e=t.get("coordinateSystem");return Object(v["indexOf"])(t$,e)>=0}function n$(t){return t+"Axis"}function r$(t,e){var n,r=Object(v["createHashMap"])(),i=[],o=Object(v["createHashMap"])();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&l(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),i.push(t),u(t)}function l(t){var e=!1;return t.eachTargetAxis((function(t,n){var i=r.get(t);i&&i[n]&&(e=!0)})),e}function u(t){t.eachTargetAxis((function(t,e){(r.get(t)||r.set(t,[]))[e]=!0}))}return i}function i$(t){var e=t.ecModel,n={infoList:[],infoMap:Object(v["createHashMap"])()};return t.eachTargetAxis((function(t,r){var i=e.getComponent(n$(t),r);if(i){var o=i.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(i)}}})),n}var o$=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),a$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return d(e,t),e.prototype.init=function(t,e,n){var r=s$(t);this.settledOption=r,this.mergeDefaultAndTheme(t,n),this._doInit(r)},e.prototype.mergeOption=function(t){var e=s$(t);Object(v["merge"])(this.option,t,!0),Object(v["merge"])(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;Object(v["each"])([["start","startValue"],["end","endValue"]],(function(t,r){"value"===this._rangePropMode[r]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=Object(v["createHashMap"])(),n=this._fillSpecifiedTargetAxis(e);n?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return Object(v["each"])(QY,(function(n){var r=this.getReferringComponents(n$(n),Qi);if(r.specified){e=!0;var i=new o$;Object(v["each"])(r.models,(function(t){i.add(t.componentIndex)})),t.set(n,i)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,r=!0;if(r){var i="vertical"===e?"y":"x",o=n.findComponents({mainType:i+"Axis"});a(o,i)}if(r){o=n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}});a(o,"single")}function a(e,n){var i=e[0];if(i){var o=new o$;if(o.add(i.componentIndex),t.set(n,o),r=!1,"x"===n||"y"===n){var a=i.getReferringComponents("grid",Ji).models[0];a&&Object(v["each"])(e,(function(t){i.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Ji).models[0]&&o.add(t.componentIndex)}))}}}r&&Object(v["each"])(QY,(function(e){if(r){var i=n.findComponents({mainType:n$(e),filter:function(t){return"category"===t.get("type",!0)}});if(i[0]){var o=new o$;o.add(i[0].componentIndex),t.set(e,o),r=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");Object(v["each"])([["start","startValue"],["end","endValue"]],(function(r,i){var o=null!=t[r[0]],a=null!=t[r[1]];o&&!a?e[i]="percent":!o&&a?e[i]="value":n?e[i]=n[i]:o&&(e[i]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(n$(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,r){Object(v["each"])(n.indexList,(function(n){t.call(e,r,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(n$(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;Object(v["each"])([["start","startValue"],["end","endValue"]],(function(r){null==t[r[0]]&&null==t[r[1]]||(e[r[0]]=n[r[0]]=t[r[0]],e[r[1]]=n[r[1]]=t[r[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;Object(v["each"])(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),r=0;ro[1];if(c&&!h&&!f)return!0;c&&(i=!0),h&&(e=!0),f&&(n=!0)}return i&&e&&n}))}else g$(r,(function(n){if("empty"===i)t.setData(e=e.map(n,(function(t){return a(t)?t:NaN})));else{var r={};r[n]=o,e.selectRange(r)}}));g$(r,(function(t){e.setApproximateExtent(o,t)}))}}))}function a(t){return t>=o[0]&&t<=o[1]}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;g$(["min","max"],(function(r){var i=e.get(r+"Span"),o=e.get(r+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?i=Jr(n[0]+o,n,[0,100],!0):null!=i&&(o=Jr(i,[0,100],n,!0)-n[0]),t[r+"Span"]=i,t[r+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var r=ii(n,[0,500]);r=Math.min(r,20);var i=t.axis.scale.rawExtentInfo;0!==e[0]&&i.setDeterminedMinMax("min",+n[0].toFixed(r)),100!==e[1]&&i.setDeterminedMinMax("max",+n[1].toFixed(r)),i.freeze()}},t}();function m$(t,e,n){var r=[1/0,-1/0];g$(n,(function(t){NS(r,t.getData(),e)}));var i=t.getAxisModel(),o=SS(i.axis.scale,i,r).calculate();return[o.min,o.max]}var b$=y$,x$={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(r,i){var o=t.getComponent(n$(r),i);e(r,i,o,n)}))}))}e((function(t,e,n,r){n.__dzAxisProxy=null}));var n=[];e((function(e,r,i,o){i.__dzAxisProxy||(i.__dzAxisProxy=new b$(e,r,o,t),n.push(i.__dzAxisProxy))}));var r=Object(v["createHashMap"])();return Object(v["each"])(n,(function(t){Object(v["each"])(t.getTargetSeriesModels(),(function(t){r.set(t.uid,t)}))})),r},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,r){t.getAxisProxy(n,r).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),r=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:r[0],endValue:r[1]})}}))}},_$=x$;function w$(t){t.registerAction("dataZoom",(function(t,e){var n=r$(e,t);Object(v["each"])(n,(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}var S$=!1;function O$(t){S$||(S$=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,_$),w$(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function M$(t){t.registerComponentModel(c$),t.registerComponentView(d$),O$(t)}var A$=function(){function t(){}return t}(),I$={};function T$(t,e){I$[t]=e}function C$(t){return I$[t]}var D$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;v["each"](this.option.feature,(function(t,n){var r=C$(n);r&&(r.getDefaultOption&&(r.defaultOption=r.getDefaultOption(e)),v["merge"](t,r.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(yh),k$=D$;function L$(t,e,n){var r=e.getBoxLayoutParams(),i=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=sh(r,o,i);oh(e.get("orient"),t,e.get("itemGap"),a.width,a.height),lh(t,r,o,i)}function j$(t,e){var n=Wc(e.get("padding")),r=e.getItemStyle(["color","opacity"]);return r.fill=e.get("backgroundColor"),t=new Os({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:r,silent:!0,z2:-1}),t}var P$=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.render=function(t,e,n,r){var i=this.group;if(i.removeAll(),t.get("show")){var o=+t.get("itemSize"),a="vertical"===t.get("orient"),s=t.get("feature")||{},l=this._features||(this._features={}),u=[];v["each"](s,(function(t,e){u.push(e)})),new m_(this._featureNames||[],u).add(c).update(c).remove(v["curry"](c,null)).execute(),this._featureNames=u,L$(i,t,n),i.add(j$(i.getBoundingRect(),t)),a||i.eachChild((function(t){var e=t.__title,r=t.ensureState("emphasis"),a=r.textConfig||(r.textConfig={}),s=t.getTextContent(),l=s&&s.ensureState("emphasis");if(l&&!v["isFunction"](l)&&e){var u=l.style||(l.style={}),c=vr(e,Gs.makeFont(u)),h=t.x+i.x,f=t.y+i.y+o,p=!1;f+c.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-c.height:o+10;h+c.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):h-c.width/2<0&&(a.position=[0,d],u.align="left")}}))}function c(i,o){var a,c=u[i],f=u[o],p=s[c],d=new Uu(p,t,t.ecModel);if(r&&null!=r.newTitle&&r.featureName===c&&(p.title=r.newTitle),c&&!f){if(E$(c))a={onclick:d.option.onclick,featureName:c};else{var g=C$(c);if(!g)return;a=new g}l[c]=a}else if(a=l[f],!a)return;a.uid=$u("toolbox-feature"),a.model=d,a.ecModel=e,a.api=n;var v=a instanceof A$;c||!f?!d.get("show")||v&&a.unusable?v&&a.remove&&a.remove(e,n):(h(d,a,c),d.setIconStatus=function(t,e){var n=this.option,r=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,r[t]&&("emphasis"===e?Tl:Cl)(r[t])},a instanceof A$&&a.render&&a.render(d,e,n,r)):v&&a.dispose&&a.dispose(e,n)}function h(r,s,l){var u,c,h=r.getModel("iconStyle"),f=r.getModel(["emphasis","iconStyle"]),p=s instanceof A$&&s.getIcons?s.getIcons():r.get("icon"),d=r.get("title")||{};v["isString"](p)?(u={},u[l]=p):u=p,v["isString"](d)?(c={},c[l]=d):c=d;var g=r.iconPaths={};v["each"](u,(function(l,u){var p=Jv(l,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle());var d=p.ensureState("emphasis");d.style=f.getItemStyle();var y=new Gs({style:{text:c[u],align:f.get("textAlign"),borderRadius:f.get("textBorderRadius"),padding:f.get("textPadding"),fill:null},ignore:!0});p.setTextContent(y),ry({el:p,componentModel:t,itemName:u,formatterParamsExtra:{title:c[u]}}),p.__title=c[u],p.on("mouseover",(function(){var e=f.getItemStyle(),r=a?null==t.get("right")&&"right"!==t.get("left")?"right":"left":null==t.get("bottom")&&"bottom"!==t.get("top")?"bottom":"top";y.setStyle({fill:f.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:f.get("textBackgroundColor")}),p.setTextConfig({position:f.get("textPosition")||r}),y.ignore=!t.get("showTitle"),n.enterEmphasis(this)})).on("mouseout",(function(){"emphasis"!==r.get(["iconStatus",u])&&n.leaveEmphasis(this),y.hide()})),("emphasis"===r.get(["iconStatus",u])?Tl:Cl)(p),i.add(p),p.on("click",v["bind"](s.onclick,s,e,n,u)),g[u]=p}))}},e.prototype.updateView=function(t,e,n,r){v["each"](this._features,(function(t){t instanceof A$&&t.updateView&&t.updateView(t.model,e,n,r)}))},e.prototype.remove=function(t,e){v["each"](this._features,(function(n){n instanceof A$&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){v["each"](this._features,(function(n){n instanceof A$&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}($d);function E$(t){return 0===t.indexOf("my")}var R$=P$,N$=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.onclick=function(t,e){var n=this.model,r=n.get("name")||t.get("title.0.text")||"echarts",i="svg"===e.getZr().painter.getType(),o=i?"svg":n.get("type",!0)||"png",a=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),s=g["a"].browser;if(Object(v["isFunction"])(MouseEvent)&&(s.newEdge||!s.ie&&!s.edge)){var l=document.createElement("a");l.download=r+"."+o,l.target="_blank",l.href=a;var u=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});l.dispatchEvent(u)}else if(window.navigator.msSaveOrOpenBlob||i){var c=a.split(","),h=c[0].indexOf("base64")>-1,f=i?decodeURIComponent(c[1]):c[1];h&&(f=window.atob(f));var p=r+"."+o;if(window.navigator.msSaveOrOpenBlob){var d=f.length,y=new Uint8Array(d);while(d--)y[d]=f.charCodeAt(d);var m=new Blob([y]);window.navigator.msSaveOrOpenBlob(m,p)}else{var b=document.createElement("iframe");document.body.appendChild(b);var x=b.contentWindow,_=x.document;_.open("image/svg+xml","replace"),_.write(f),_.close(),x.focus(),_.execCommand("SaveAs",!0,p),document.body.removeChild(b)}}else{var w=n.get("lang"),S='',O=window.open();O.document.write(S),O.document.title=r}},e.getDefaultOption=function(t){var e={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return e},e}(A$),z$=N$,B$="__ec_magicType_stack__",V$=[["line","bar"],["stack"]],F$=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return v["each"](t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){var e={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return e},e.prototype.onclick=function(t,e,n){var r=this.model,i=r.get(["seriesIndex",n]);if(G$[n]){var o,a={series:[]},s=function(t){var e=t.subType,i=t.id,o=G$[n](e,i,t,r);o&&(v["defaults"](o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim,c=u+"Axis",h=t.getReferringComponents(c,Ji).models[0],f=h.componentIndex;a[c]=a[c]||[];for(var p=0;p<=f;p++)a[c][f]=a[c][f]||{};a[c][f].boundaryGap="bar"===n}}};v["each"](V$,(function(t){v["indexOf"](t,n)>=0&&v["each"](t,(function(t){r.setIconStatus(t,"normal")}))})),r.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==i?null:{seriesIndex:i}},s);var l=n;"stack"===n&&(o=v["merge"]({stack:r.option.title.tiled,tiled:r.option.title.stack},r.option.title),"emphasis"!==r.get(["iconStatus",n])&&(l="tiled")),e.dispatchAction({type:"changeMagicType",currentType:l,newOption:a,newTitle:o,featureName:"magicType"})}},e}(A$),G$={line:function(t,e,n,r){if("bar"===t)return v["merge"]({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get(["option","line"])||{},!0)},bar:function(t,e,n,r){if("line"===t)return v["merge"]({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get(["option","bar"])||{},!0)},stack:function(t,e,n,r){var i=n.get("stack")===B$;if("line"===t||"bar"===t)return r.setIconStatus("stack",i?"normal":"emphasis"),v["merge"]({id:e,stack:i?"":B$},r.get(["option","stack"])||{},!0)}};Qx({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var H$=F$,W$=new Array(60).join("-"),U$="\t";function Y$(t){var e={},n=[],r=[];return t.eachRawSeries((function(t){var i=t.coordinateSystem;if(!i||"cartesian2d"!==i.type&&"polar"!==i.type)n.push(t);else{var o=i.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},r.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:r}}function $$(t){var e=[];return v["each"](t,(function(t,n){var r=t.categoryAxis,i=t.valueAxis,o=i.dim,a=[" "].concat(v["map"](t.series,(function(t){return t.name}))),s=[r.model.getCategories()];v["each"](t.series,(function(t){var e=t.getRawData();s.push(t.getRawData().mapArray(e.mapDimension(o),(function(t){return t})))}));for(var l=[a.join(U$)],u=0;u=0)return!0}var J$=new RegExp("["+U$+"]+","g");function Q$(t){for(var e=t.split(/\n+/g),n=Z$(e.shift()).split(J$),r=[],i=v["map"](n,(function(t){return{name:t,data:[]}})),o=0;o=0;i--){var o=n[i];if(o[r])break}if(i<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:r})[0];if(a){var s=a.getPercentRange();n[0][r]={dataZoomId:r,start:s[0],end:s[1]}}}})),n.push(e)}function lX(t){var e=hX(t),n=e[e.length-1];e.length>1&&e.pop();var r={};return oX(n,(function(t,n){for(var i=e.length-1;i>=0;i--)if(t=e[i][n],t){r[n]=t;break}})),r}function uX(t){aX(t).snapshots=null}function cX(t){return hX(t).length}function hX(t){var e=aX(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var fX=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.onclick=function(t,e){uX(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){var e={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocaleModel().get(["toolbox","restore","title"])};return e},e}(A$);Qx({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var pX=fX,dX=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],gX=function(){function t(t,e,n){var r=this;this._targetInfoList=[];var i=yX(e,t);Object(v["each"])(mX,(function(t,e){(!n||!n.include||Object(v["indexOf"])(n.include,e)>=0)&&t(i,r._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var r=_X[t.brushType](0,n,e);t.__rangeOffset={offset:SX[t.brushType](r.values,t.range,[1,1]),xyMinMax:r.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){Object(v["each"])(t,(function(t){var r=this.findTargetInfo(t,e);r&&!0!==r&&Object(v["each"])(r.coordSyses,(function(r){var i=_X[t.brushType](1,r,t.range,!0);n(t,i.values,r,e)}))}),this)},t.prototype.setInputRanges=function(t,e){Object(v["each"])(t,(function(t){var n=this.findTargetInfo(t,e);if(t.range=t.range||[],n&&!0!==n){t.panelId=n.panelId;var r=_X[t.brushType](0,n.coordSys,t.coordRange),i=t.__rangeOffset;t.range=i?SX[t.brushType](r.values,i.offset,MX(r.xyMinMax,i.xyMinMax)):r.values}}),this)},t.prototype.makePanelOpts=function(t,e){return Object(v["map"])(this._targetInfoList,(function(n){var r=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:eB(r),isTargetByCursor:rB(r,t,n.coordSysModel),getLinearBrushOtherExtent:nB(r)}}))},t.prototype.controlSeries=function(t,e,n){var r=this.findTargetInfo(t,n);return!0===r||r&&Object(v["indexOf"])(r.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,r=yX(e,t),i=0;it[1]&&t.reverse(),t}function yX(t,e){return Zi(t,e,{includeMainTypes:dX})}var mX={grid:function(t,e){var n=t.xAxisModels,r=t.yAxisModels,i=t.gridModels,o=Object(v["createHashMap"])(),a={},s={};(n||r||i)&&(Object(v["each"])(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),Object(v["each"])(r,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),Object(v["each"])(i,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var i=t.coordinateSystem,o=[];Object(v["each"])(i.getCartesians(),(function(t,e){(Object(v["indexOf"])(n,t.getAxis("x").model)>=0||Object(v["indexOf"])(r,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:xX.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){Object(v["each"])(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:xX.geo})}))}},bX=[function(t,e){var n=t.xAxisModel,r=t.yAxisModel,i=t.gridModel;return!i&&n&&(i=n.axis.grid.model),!i&&r&&(i=r.axis.grid.model),i&&i===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],xX={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Wv(t)),e}},_X={lineX:Object(v["curry"])(wX,0),lineY:Object(v["curry"])(wX,1),rect:function(t,e,n,r){var i=t?e.pointToData([n[0][0],n[1][0]],r):e.dataToPoint([n[0][0],n[1][0]],r),o=t?e.pointToData([n[0][1],n[1][1]],r):e.dataToPoint([n[0][1],n[1][1]],r),a=[vX([i[0],o[0]]),vX([i[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,n,r){var i=[[1/0,-1/0],[1/0,-1/0]],o=Object(v["map"])(n,(function(n){var o=t?e.pointToData(n,r):e.dataToPoint(n,r);return i[0][0]=Math.min(i[0][0],o[0]),i[1][0]=Math.min(i[1][0],o[1]),i[0][1]=Math.max(i[0][1],o[0]),i[1][1]=Math.max(i[1][1],o[1]),o}));return{values:o,xyMinMax:i}}};function wX(t,e,n,r){var i=n.getAxis(["x","y"][t]),o=vX(Object(v["map"])([0,1],(function(t){return e?i.coordToData(i.toLocalCoord(r[t]),!0):i.toGlobalCoord(i.dataToCoord(r[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var SX={lineX:Object(v["curry"])(OX,0),lineY:Object(v["curry"])(OX,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return Object(v["map"])(t,(function(t,r){return[t[0]-n[0]*e[r][0],t[1]-n[1]*e[r][1]]}))}};function OX(t,e,n,r){return[e[0]-r[t]*n[0],e[1]-r[t]*n[1]]}function MX(t,e){var n=AX(t),r=AX(e),i=[n[0]/r[0],n[1]/r[1]];return isNaN(i[0])&&(i[0]=1),isNaN(i[1])&&(i[1]=1),i}function AX(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var IX=gX,TX=v["each"],CX=Hi("toolbox-dataZoom_"),DX=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.render=function(t,e,n,r){this._brushController||(this._brushController=new tB(n.getZr()),this._brushController.on("brush",v["bind"](this._onBrush,this)).mount()),PX(t,e,this,r,n),jX(t,e)},e.prototype.onclick=function(t,e,n){kX[n].call(this)},e.prototype.remove=function(t,e){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,e){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},r=this.ecModel;this._brushController.updateCovers([]);var i=new IX(LX(this.model),r,{include:["grid"]});i.matchOutputRanges(e,r,(function(t,e,n){if("cartesian2d"===n.type){var r=t.brushType;"rect"===r?(o("x",n,e[0]),o("y",n,e[1])):o({lineX:"x",lineY:"y"}[r],n,e)}})),sX(r,n),this._dispatchZoomAction(n)}function o(t,e,i){var o=e.getAxis(t),s=o.model,l=a(t,s,r),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(i=BN(0,i.slice(),o.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(n[l.id]={dataZoomId:l.id,startValue:i[0],endValue:i[1]})}function a(t,e,n){var r;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){var i=n.getAxisModel(t,e.componentIndex);i&&(r=n)})),r}},e.prototype._dispatchZoomAction=function(t){var e=[];TX(t,(function(t,n){e.push(v["clone"](t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){var e={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return e},e}(A$),kX={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(lX(this.ecModel))}};function LX(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}function jX(t,e){t.setIconStatus("back",cX(e)>1?"emphasis":"normal")}function PX(t,e,n,r,i){var o=n._isZoomActive;r&&"takeGlobalCursor"===r.type&&(o="dataZoomSelect"===r.key&&r.dataZoomSelectActive),n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new IX(LX(t),e,{include:["grid"]}),s=a.makePanelOpts(i,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n._brushController.setPanels(s).enableBrush(!(!o||!s.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}Vh("dataZoom",(function(t){var e=t.getComponent("toolbox",0),n=["feature","dataZoom"];if(e&&null!=e.get(n)){var r=e.getModel(n),i=[],o=LX(r),a=Zi(t,o);return TX(a.xAxisModels,(function(t){return s(t,"xAxis","xAxisIndex")})),TX(a.yAxisModels,(function(t){return s(t,"yAxis","yAxisIndex")})),i}function s(t,e,n){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:r.get("filterMode",!0)||"filter",id:CX+e+o};a[n]=o,i.push(a)}}));var EX=DX;function RX(t){t.registerComponentModel(k$),t.registerComponentView(R$),T$("saveAsImage",z$),T$("magicType",H$),T$("dataView",iX),T$("dataZoom",EX),T$("restore",pX),d_(M$)}var NX=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(yh),zX=NX;function BX(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function VX(t){if(g["a"].domSupported)for(var e=document.documentElement.style,n=0,r=t.length;n-1?(l+="top:50%",u+="translateY(-50%) rotate("+(o="left"===a?-225:-45)+"deg)"):(l+="left:50%",u+="translateX(-50%) rotate("+(o="top"===a?225:45)+"deg)");var c=o*Math.PI/180,h=s+i,f=h*Math.abs(Math.cos(c))+h*Math.abs(Math.sin(c)),p=Math.round(100*((f-Math.SQRT2*i)/2+Math.SQRT2*i-(f-h)/2))/100;l+=";"+a+":-"+p+"px";var d=e+" solid "+i+"px;",g=["position:absolute;width:"+s+"px;height:"+s+"px;z-index:-1;",l+";"+u+";","border-bottom:"+d,"border-right:"+d,"background-color:"+r+";"];return'
'}function ZX(t,e){var n="cubic-bezier(0.23,1,0.32,1)",r=" "+t/2+"s "+n,i="opacity"+r+",visibility"+r;return e||(r=" "+t+"s "+n,i+=g["a"].transformSupported?","+YX+r:",left"+r+",top"+r),UX+":"+i}function KX(t,e,n){var r=t.toFixed(0)+"px",i=e.toFixed(0)+"px";if(!g["a"].transformSupported)return n?"top:"+i+";left:"+r+";":[["top",i],["left",r]];var o=g["a"].transform3dSupported,a="translate"+(o?"3d":"")+"("+r+","+i+(o?",0":"")+")";return n?"top:0;left:0;"+YX+":"+a+";":[["top",0],["left",0],[FX,a]]}function JX(t){var e=[],n=t.get("fontSize"),r=t.getTextColor();r&&e.push("color:"+r),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var i=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return i&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+i),Object(v["each"])(["decoration","align"],(function(n){var r=t.get(n);r&&e.push("text-"+n+":"+r)})),e.join(";")}function QX(t,e,n){var r=[],i=t.get("transitionDuration"),o=t.get("backgroundColor"),a=t.get("shadowBlur"),s=t.get("shadowColor"),l=t.get("shadowOffsetX"),u=t.get("shadowOffsetY"),c=t.getModel("textStyle"),h=Cd(t,"html"),f=l+"px "+u+"px "+a+"px "+s;return r.push("box-shadow:"+f),e&&i&&r.push(ZX(i,n)),o&&r.push("background-color:"+o),Object(v["each"])(["width","color","radius"],(function(e){var n="border-"+e,i=Hc(n),o=t.get(i);null!=o&&r.push(n+":"+o+("color"===e?"":"px"))})),r.push(JX(c)),null!=h&&r.push("padding:"+Wc(h).join("px ")+"px"),r.join(";")+";"}function tq(t,e,n,r,i){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&J(t,a,document.body,r,i)}else{t[0]=r,t[1]=i;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var eq=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,g["a"].wxa)return null;var r=document.createElement("div");r.domBelongToZr=!0,this.el=r;var i=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;tq(this._styleCoord,i,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(r):t.appendChild(r),this._container=t;var a=this;r.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},r.onmousemove=function(t){if(t=t||window.event,!a._enterable){var e=i.handler,n=i.painter.getViewportRoot();ft(n,t,!0),e.dispatch("mousemove",t)}},r.onmouseleave=function(){a._inContent=!1,a._enterable&&a._show&&a.hideLater(a._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=WX(e,"position"),r=e.style;"absolute"!==r.position&&"absolute"!==n&&(r.position="relative");var i=t.get("alwaysShowContent");i&&this._moveIfResized(),this._alwaysShowContent=i,this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,r=n.style,i=this._styleCoord;n.innerHTML?r.cssText=$X+QX(t,!this._firstShow,this._longHide)+KX(i[0],i[1],!0)+"border-color:"+Qc(e)+";"+(t.get("extraCssText")||"")+";pointer-events:"+(this._enterable?"auto":"none"):r.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,r,i){var o=this.el;if(null!=t){var a="";if(Object(v["isString"])(i)&&"item"===n.get("trigger")&&!BX(n)&&(a=qX(n,r,i)),Object(v["isString"])(t))o.innerHTML=t+a;else if(t){o.innerHTML="",Object(v["isArray"])(t)||(t=[t]);for(var s=0;s=0?this._tryShow(n,r):"leave"===t&&this._hide(r))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api,r=t.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==r&&"click"!==r){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,r){if(r.from!==this.uid&&!g["a"].node&&n.getDom()){var i=hq(r,n);this._ticket="";var o=r.dataByCoordSys,a=vq(r,e,n);if(a){var s=a.el.getBoundingRect().clone();s.applyTransform(a.el.transform),this._tryShow({offsetX:s.x+s.width/2,offsetY:s.y+s.height/2,target:a.el,position:r.position,positionDefault:"bottom"},i)}else if(r.tooltip&&null!=r.x&&null!=r.y){var l=lq;l.x=r.x,l.y=r.y,l.update(),Hs(l).tooltipConfig={name:null,option:r.tooltip},this._tryShow({offsetX:r.x,offsetY:r.y,target:l},i)}else if(o)this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,dataByCoordSys:o,tooltipOption:r.tooltipOption},i);else if(null!=r.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,r))return;var u=YW(r,e),c=u.point[0],h=u.point[1];null!=c&&null!=h&&this._tryShow({offsetX:c,offsetY:h,target:u.el,position:r.position,positionDefault:"bottom"},i)}else null!=r.x&&null!=r.y&&(n.dispatchAction({type:"updateAxisPointer",x:r.x,y:r.y}),this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,target:n.getZr().findHover(r.x,r.y).target},i))}},e.prototype.manuallyHideTip=function(t,e,n,r){var i=this._tooltipContent;this._tooltipModel&&i.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,r.from!==this.uid&&this._hide(hq(r,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,r){var i=r.seriesIndex,o=r.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=i&&null!=o&&null!=a){var s=e.getSeriesByIndex(i);if(s){var l=s.getData(),u=cq([l.getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel);if("axis"===u.get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:i,dataIndex:o,position:r.position}),!0}}},e.prototype._tryShow=function(t,e){var n=t.target,r=this._tooltipModel;if(r){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;if(i&&i.length)this._showAxisTooltip(i,t);else if(n){var o,a;this._lastDataByCoordSys=null,pm(n,(function(t){return null!=Hs(t).dataIndex?(o=t,!0):null!=Hs(t).tooltipConfig?(a=t,!0):void 0}),!0),o?this._showSeriesItemTooltip(t,o,e):a?this._showComponentItemTooltip(t,a,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=Object(v["bind"])(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,r=this._tooltipModel,i=[e.offsetX,e.offsetY],o=cq([e.tooltipOption],r),a=this._renderMode,s=[],l=gd("section",{blocks:[],noHeader:!0}),u=[],c=new Dd;Object(v["each"])(t,(function(t){Object(v["each"])(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var o=wW(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),h=gd("section",{header:o,noHeader:!Object(v["trim"])(o),sortBlocks:!0,blocks:[]});l.blocks.push(h),Object(v["each"])(t.seriesDataIndices,(function(l){var f=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=f.getDataParams(p);if(!(d.dataIndex<0)){d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=kS(e.axis,{value:i}),d.axisValueLabel=o,d.marker=c.makeTooltipMarker("item",Qc(d.color),a);var g=Mp(f.formatTooltip(p,!0,null)),y=g.frag;if(y){var m=cq([f],r).get("valueFormatter");h.blocks.push(m?Object(v["extend"])({valueFormatter:m},y):y)}g.text&&u.push(g.text),s.push(d)}}))}}))})),l.blocks.reverse(),u.reverse();var h=e.position,f=o.get("order"),p=_d(l,c,a,f,n.get("useUTC"),o.get("textStyle"));p&&u.unshift(p);var d="richText"===a?"\n\n":"
",g=u.join(d);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t,s)?this._updatePosition(o,h,i[0],i[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",i[0],i[1],h,null,c)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var r=this._ecModel,i=Hs(e),o=i.seriesIndex,a=r.getSeriesByIndex(o),s=i.dataModel||a,l=i.dataIndex,u=i.dataType,c=s.getData(u),h=this._renderMode,f=t.positionDefault,p=cq([c.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,f?{position:f}:null),d=p.get("trigger");if(null==d||"item"===d){var g=s.getDataParams(l,u),y=new Dd;g.marker=y.makeTooltipMarker("item",Qc(g.color),h);var m=Mp(s.formatTooltip(l,!1,u)),b=p.get("order"),x=p.get("valueFormatter"),_=m.frag,w=_?_d(x?Object(v["extend"])({valueFormatter:x},_):_,y,h,b,r.get("useUTC"),p.get("textStyle")):m.text,S="item_"+s.name+"_"+l;this._showOrMove(p,(function(){this._showTooltipContent(p,w,g,S,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:l,dataIndex:c.getRawIndex(l),seriesIndex:o,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var r=Hs(e),i=r.tooltipConfig,o=i.option||{};if(Object(v["isString"])(o)){var a=o;o={content:a,formatter:a}}var s=[o],l=this._ecModel.getComponent(r.componentMainType,r.componentIndex);l&&s.push(l),s.push({formatter:o.content});var u=t.positionDefault,c=cq(s,this._tooltipModel,u?{position:u}:null),h=c.get("content"),f=Math.random()+"",p=new Dd;this._showOrMove(c,(function(){var n=Object(v["clone"])(c.get("formatterParams")||{});this._showTooltipContent(c,h,n,f,t.offsetX,t.offsetY,t.position,e,p)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,r,i,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent;u.setEnterable(t.get("enterable"));var c=t.get("formatter");a=a||t.get("position");var h=e,f=this._getNearestPoint([i,o],n,t.get("trigger"),t.get("borderColor")),p=f.color;if(c)if(Object(v["isString"])(c)){var d=t.ecModel.get("useUTC"),g=Object(v["isArray"])(n)?n[0]:n,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;h=c,y&&(h=Sc(g.axisValue,h,d)),h=Xc(h,n,!0)}else if(Object(v["isFunction"])(c)){var m=Object(v["bind"])((function(e,r){e===this._ticket&&(u.setContent(r,l,t,p,a),this._updatePosition(t,a,i,o,u,n,s))}),this);this._ticket=r,h=c(n,r,m)}else h=c;u.setContent(h,l,t,p,a),u.show(t,p),this._updatePosition(t,a,i,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,r){return"axis"===n||Object(v["isArray"])(e)?{color:r||("html"===this._renderMode?"#fff":"none")}:Object(v["isArray"])(e)?void 0:{color:r||e.color||e.borderColor}},e.prototype._updatePosition=function(t,e,n,r,i,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=i.getSize(),c=t.get("align"),h=t.get("verticalAlign"),f=a&&a.getBoundingRect().clone();if(a&&f.applyTransform(a.transform),Object(v["isFunction"])(e)&&(e=e([n,r],o,i.el,f,{viewSize:[s,l],contentSize:u.slice()})),Object(v["isArray"])(e))n=Qr(e[0],s),r=Qr(e[1],l);else if(Object(v["isObject"])(e)){var p=e;p.width=u[0],p.height=u[1];var d=sh(p,{width:s,height:l});n=d.x,r=d.y,c=null,h=null}else if(Object(v["isString"])(e)&&a){var g=dq(e,f,u,t.get("borderWidth"));n=g[0],r=g[1]}else{g=fq(n,r,i,s,l,c?null:20,h?null:20);n=g[0],r=g[1]}if(c&&(n-=gq(c)?u[0]/2:"right"===c?u[0]:0),h&&(r-=gq(h)?u[1]/2:"bottom"===h?u[1]:0),BX(t)){g=pq(n,r,i,s,l);n=g[0],r=g[1]}i.moveTo(n,r)},e.prototype._updateContentNotChangedOnAxis=function(t,e){var n=this._lastDataByCoordSys,r=this._cbParamsList,i=!!n&&n.length===t.length;return i&&Object(v["each"])(n,(function(n,o){var a=n.dataByAxis||[],s=t[o]||{},l=s.dataByAxis||[];i=i&&a.length===l.length,i&&Object(v["each"])(a,(function(t,n){var o=l[n]||{},a=t.seriesDataIndices||[],s=o.seriesDataIndices||[];i=i&&t.value===o.value&&t.axisType===o.axisType&&t.axisId===o.axisId&&a.length===s.length,i&&Object(v["each"])(a,(function(t,e){var n=s[e];i=i&&t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})),r&&Object(v["each"])(t.seriesDataIndices,(function(t){var n=t.seriesIndex,o=e[n],a=r[n];o&&a&&a.data!==o.data&&(i=!1)}))}))})),this._lastDataByCoordSys=t,this._cbParamsList=e,!!i},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){!g["a"].node&&e.getDom()&&(xy(this,"_updatePosition"),this._tooltipContent.dispose(),HW("itemTooltip",e))},e.type="tooltip",e}($d);function cq(t,e,n){var r,i=e.ecModel;n?(r=new Uu(n,i,i),r=new Uu(e.option,r,i)):r=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof Uu&&(a=a.get("tooltip",!0)),Object(v["isString"])(a)&&(a={formatter:a}),a&&(r=new Uu(a,r,i)))}return r}function hq(t,e){return t.dispatchAction||Object(v["bind"])(e.dispatchAction,e)}function fq(t,e,n,r,i,o,a){var s=n.getSize(),l=s[0],u=s[1];return null!=o&&(t+l+o+2>r?t-=l+o:t+=o),null!=a&&(e+u+a>i?e-=u+a:e+=a),[t,e]}function pq(t,e,n,r,i){var o=n.getSize(),a=o[0],s=o[1];return t=Math.min(t+a,r)-a,e=Math.min(e+s,i)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function dq(t,e,n,r){var i=n[0],o=n[1],a=Math.ceil(Math.SQRT2*r)+8,s=0,l=0,u=e.width,c=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+c/2-o/2;break;case"top":s=e.x+u/2-i/2,l=e.y-o-a;break;case"bottom":s=e.x+u/2-i/2,l=e.y+c+a;break;case"left":s=e.x-i-a,l=e.y+c/2-o/2;break;case"right":s=e.x+u+a,l=e.y+c/2-o/2}return[s,l]}function gq(t){return"center"===t||"middle"===t}function vq(t,e,n){var r=Ki(t).queryOptionMap,i=r.keys()[0];if(i&&"series"!==i){var o=to(e,i,r.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),a=o.models[0];if(a){var s,l=n.getViewOfComponentModel(a);return l.group.traverse((function(e){var n=Hs(e).tooltipConfig;if(n&&n.name===t.name)return s=e,!0})),s?{componentMainType:i,componentIndex:a.componentIndex,el:s}:void 0}}}var yq=uq;function mq(t){d_(oU),t.registerComponentModel(zX),t.registerComponentView(yq),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},v["noop"]),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},v["noop"])}var bq=["rect","polygon","keep","clear"];function xq(t,e){var n=Ai(t?t.brush:[]);if(n.length){var r=[];v["each"](n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(r=r.concat(e))}));var i=t&&t.toolbox;v["isArray"](i)&&(i=i[0]),i||(i={feature:{}},t.toolbox=[i]);var o=i.feature||(i.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,r),_q(s),e&&!s.length&&s.push.apply(s,bq)}}function _q(t){var e={};v["each"](t,(function(t){e[t]=1})),t.length=0,v["each"](e,(function(e,n){t.push(n)}))}var wq=v["each"];function Sq(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function Oq(t,e,n){var r={};return wq(e,(function(e){var o=r[e]=i();wq(t[e],(function(t,r){if($P.isValidType(r)){var i={type:r,visual:t};n&&n(i,e),o[r]=new $P(i),"opacity"===r&&(i=v["clone"](i),i.type="colorAlpha",o.__hidden.__alphaForOpacity=new $P(i))}}))})),r;function i(){var t=function(){};t.prototype.__hidden=t.prototype;var e=new t;return e}}function Mq(t,e,n){var r;v["each"](n,(function(t){e.hasOwnProperty(t)&&Sq(e[t])&&(r=!0)})),r&&v["each"](n,(function(n){e.hasOwnProperty(n)&&Sq(e[n])?t[n]=v["clone"](e[n]):delete t[n]}))}function Aq(t,e,n,r,i,o){var a,s={};function l(t){return sm(n,a,t)}function u(t,e){um(n,a,t,e)}function c(t,c){a=null==o?t:c;var h=n.getRawDataItem(a);if(!h||!1!==h.visualMap)for(var f=r.call(i,t),p=e[f],d=s[f],g=0,v=d.length;ge[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&Gq(e)}};function Gq(t){return new Gt(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var Hq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new tB(e.getZr())).on("brush",v["bind"](this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,r){this.model=t,this._updateController(t,e,n,r)},e.prototype.updateTransform=function(t,e,n,r){Eq(e),this._updateController(t,e,n,r)},e.prototype.updateVisual=function(t,e,n,r){this.updateTransform(t,e,n,r)},e.prototype.updateView=function(t,e,n,r){this._updateController(t,e,n,r)},e.prototype._updateController=function(t,e,n,r){(!r||r.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:v["clone"](n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:v["clone"](n),$from:e})},e.type="brush",e}($d),Wq=Hq,Uq="#ddd",Yq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return d(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&Mq(n,t,["inBrush","outOfBrush"]);var r=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:Uq},r.hasOwnProperty("liftZ")||(r.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=v["map"](t,(function(t){return $q(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=$q(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(yh);function $q(t,e){return v["merge"]({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Uu(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var Xq=Yq,qq=["rect","polygon","lineX","lineY","keep","clear"],Zq=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.render=function(t,e,n){var r,i,o;e.eachComponent({mainType:"brush"},(function(t){r=t.brushType,i=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=r,this._brushMode=i,v["each"](t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===i:"clear"===e?o:e===r)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return v["each"](t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var r=this._brushType,i=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?r:r!==n&&n,brushMode:"keep"===n?"multiple"===i?"single":"multiple":i}})},e.getDefaultOption=function(t){var e={show:!0,type:qq.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])};return e},e}(A$),Kq=Zq;function Jq(t){t.registerComponentView(Wq),t.registerComponentModel(Xq),t.registerPreprocessor(xq),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,Rq),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},v["noop"]),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},v["noop"]),T$("brush",Kq)}var Qq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return d(e,t),e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(yh),tZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var r=this.group,i=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=v["retrieve2"](t.get("textBaseline"),t.get("textVerticalAlign")),l=new Gs({style:_u(i,{text:t.get("text"),fill:i.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),c=t.get("subtext"),h=new Gs({style:_u(o,{text:c,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),f=t.get("link"),p=t.get("sublink"),d=t.get("triggerEvent",!0);l.silent=!f&&!d,h.silent=!p&&!d,f&&l.on("click",(function(){th(f,"_"+t.get("target"))})),p&&h.on("click",(function(){th(p,"_"+t.get("subtarget"))})),Hs(l).eventData=Hs(h).eventData=d?{componentType:"title",componentIndex:t.componentIndex}:null,r.add(l),c&&r.add(h);var g=r.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var m=sh(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||(a=t.get("left")||t.get("right"),"middle"===a&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||(s=t.get("top")||t.get("bottom"),"center"===s&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),r.x=m.x,r.y=m.y,r.markRedraw();var b={align:a,verticalAlign:s};l.setStyle(b),h.setStyle(b),g=r.getBoundingRect();var x=m.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var w=new Os({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});r.add(w)}},e.type="title",e}($d);function eZ(t){t.registerComponentModel(Qq),t.registerComponentView(tZ)}var nZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return d(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],r=e.axisType,i=this._names=[];"category"===r?(t=[],Object(v["each"])(n,(function(e,n){var r,o=Vi(Ci(e),"");Object(v["isObject"])(e)?(r=Object(v["clone"])(e),r.value=n):r=n,t.push(r),i.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[r]||"number",a=this._data=new X_([{name:"value",type:o}],this);a.initData(t,i)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(yh),rZ=nZ,iZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="timeline.slider",e.defaultOption=Zu(rZ.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(rZ);Object(v["mixin"])(iZ,Op.prototype);var oZ=iZ,aZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="timeline",e}($d),sZ=aZ,lZ=function(t){function e(e,n,r,i){var o=t.call(this,e,n,r)||this;return o.type=i||"value",o}return d(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(MO),uZ=lZ,cZ=Math.PI,hZ=Xi(),fZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var r=this._layout(t,n),i=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(r,t);t.formatTooltip=function(t){var e=a.scale.getLabel({value:t});return gd("nameValue",{noName:!0,value:e})},Object(v["each"])(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](r,i,a,t)}),this),this._renderAxisLabel(r,o,a,t),this._position(r,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,r=t.get(["label","position"]),i=t.get("orient"),o=dZ(t,e);n=null==r||"auto"===r?"horizontal"===i?o.y+o.height/2=0||"+"===n?"left":"right"},c={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},h={horizontal:0,vertical:cZ/2},f="vertical"===i?o.height:o.width,p=t.getModel("controlStyle"),d=p.get("show",!0),g=d?p.get("itemSize"):0,y=d?p.get("itemGap"):0,m=g+y,b=t.get(["label","rotate"])||0;b=b*cZ/180;var x=p.get("position",!0),_=d&&p.get("showPlayBtn",!0),w=d&&p.get("showPrevBtn",!0),S=d&&p.get("showNextBtn",!0),O=0,M=f;"left"===x||"bottom"===x?(_&&(a=[0,0],O+=m),w&&(s=[O,0],O+=m),S&&(l=[M-g,0],M-=m)):(_&&(a=[M-g,0],M-=m),w&&(s=[0,0],O+=m),S&&(l=[M-g,0],M-=m));var A=[O,M];return t.get("inverse")&&A.reverse(),{viewRect:o,mainLength:f,orient:i,rotation:h[i],labelRotation:b,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[i],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||c[i],playPosition:a,prevBtnPosition:s,nextBtnPosition:l,axisExtent:A,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,r=this._labelGroup,i=t.viewRect;if("vertical"===t.orient){var o=wt(),a=i.x,s=i.y+i.height;At(o,o,[-a,-s]),It(o,o,-cZ/2),At(o,o,[a,s]),i=i.clone(),i.applyTransform(o)}var l=y(i),u=y(n.getBoundingRect()),c=y(r.getBoundingRect()),h=[n.x,n.y],f=[r.x,r.y];f[0]=h[0]=l[0][0];var p=t.labelPosOpt;if(null==p||Object(v["isString"])(p)){var d="+"===p?0:1;m(h,u,l,1,d),m(f,c,l,1,1-d)}else{d=p>=0?0:1;m(h,u,l,1,d),f[1]=h[1]+p}function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function m(t,e,n,r,i){t[r]+=n[r][i]-e[r][i]}n.setPosition(h),r.setPosition(f),n.rotation=r.rotation=t.rotation,g(n),g(r)},e.prototype._createAxis=function(t,e){var n=e.getData(),r=e.get("axisType"),i=pZ(e,r);i.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");i.setExtent(o[0],o[1]),i.calcNiceTicks();var a=new uZ("value",i,t.axisExtent,r);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Nr;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,r){var i=n.getExtent();if(r.get(["lineStyle","show"])){var o=new nv({shape:{x1:i[0],y1:0,x2:i[1],y2:0},style:Object(v["extend"])({lineCap:"round"},r.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new nv({shape:{x1:i[0],x2:this._currentPointer?this._currentPointer.x:i[0],y1:0,y2:0},style:Object(v["defaults"])({lineCap:"round",lineWidth:o.style.lineWidth},r.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,r){var i=this,o=r.getData(),a=n.scale.getTicks();this._tickSymbols=[],Object(v["each"])(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),c=s.getModel(["progress","itemStyle"]),h={x:a,y:0,onclick:Object(v["bind"])(i._changeTimeline,i,t.value)},f=vZ(s,l,e,h);f.ensureState("emphasis").style=u.getItemStyle(),f.ensureState("progress").style=c.getItemStyle(),Ul(f);var p=Hs(f);s.get("tooltip")?(p.dataIndex=t.value,p.dataModel=r):p.dataIndex=p.dataModel=null,i._tickSymbols.push(f)}))},e.prototype._renderAxisLabel=function(t,e,n,r){var i=this,o=n.getLabelModel();if(o.get("show")){var a=r.getData(),s=n.getViewLabels();this._tickLabels=[],Object(v["each"])(s,(function(r){var o=r.tickValue,s=a.getItemModel(o),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),c=s.getModel(["progress","label"]),h=n.dataToCoord(r.tickValue),f=new Gs({x:h,y:0,rotation:t.labelRotation-t.rotation,onclick:Object(v["bind"])(i._changeTimeline,i,o),silent:!1,style:_u(l,{text:r.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});f.ensureState("emphasis").style=_u(u),f.ensureState("progress").style=_u(c),e.add(f),Ul(f),hZ(f).dataIndex=o,i._tickLabels.push(f)}))}},e.prototype._renderControl=function(t,e,n,r){var i=t.controlSize,o=t.rotation,a=r.getModel("controlStyle").getItemStyle(),s=r.getModel(["emphasis","controlStyle"]).getItemStyle(),l=r.getPlayState(),u=r.get("inverse",!0);function c(t,n,l,u){if(t){var c=xr(Object(v["retrieve2"])(r.get(["controlStyle",n+"BtnSize"]),i),i),h=[0,-c/2,c,c],f=gZ(r,n+"Icon",h,{x:t[0],y:t[1],originX:i/2,originY:0,rotation:u?-o:0,rectHover:!0,style:a,onclick:l});f.ensureState("emphasis").style=s,e.add(f),Ul(f)}}c(t.nextBtnPosition,"next",Object(v["bind"])(this._changeTimeline,this,u?"-":"+")),c(t.prevBtnPosition,"prev",Object(v["bind"])(this._changeTimeline,this,u?"+":"-")),c(t.playPosition,l?"stop":"play",Object(v["bind"])(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,r){var i=r.getData(),o=r.getCurrentIndex(),a=i.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=Object(v["bind"])(s._handlePointerDrag,s),t.ondragend=Object(v["bind"])(s._handlePointerDragend,s),yZ(t,s._progressLine,o,n,r,!0)},onUpdate:function(t){yZ(t,s._progressLine,o,n,r)}};this._currentPointer=vZ(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],r=this._axis,i=ei(r.getExtent().slice());n>i[1]&&(n=i[1]),n=0&&(a[o]=+a[o].toFixed(f)),[a,h]}var EZ={min:Object(v["curry"])(PZ,"min"),max:Object(v["curry"])(PZ,"max"),average:Object(v["curry"])(PZ,"average"),median:Object(v["curry"])(PZ,"median")};function RZ(t,e){if(e){var n=t.getData(),r=t.coordinateSystem,i=r&&r.dimensions;if(!jZ(e)&&!Object(v["isArray"])(e.coord)&&Object(v["isArray"])(i)){var o=NZ(e,n,r,t);if(e=Object(v["clone"])(e),e.type&&EZ[e.type]&&o.baseAxis&&o.valueAxis){var a=Object(v["indexOf"])(i,o.baseAxis.dim),s=Object(v["indexOf"])(i,o.valueAxis.dim),l=EZ[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else e.coord=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis]}if(null!=e.coord&&Object(v["isArray"])(i))for(var u=e.coord,c=0;c<2;c++)EZ[u[c]]&&(u[c]=GZ(n,n.mapDimension(i[c]),u[c]));else e.coord=[];return e}}function NZ(t,e,n,r){var i={};return null!=t.valueIndex||null!=t.valueDim?(i.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,i.valueAxis=n.getAxis(zZ(r,i.valueDataDim)),i.baseAxis=n.getOtherAxis(i.valueAxis),i.baseDataDim=e.mapDimension(i.baseAxis.dim)):(i.baseAxis=r.getBaseAxis(),i.valueAxis=n.getOtherAxis(i.baseAxis),i.baseDataDim=e.mapDimension(i.baseAxis.dim),i.valueDataDim=e.mapDimension(i.valueAxis.dim)),i}function zZ(t,e){var n=t.getData().getDimensionInfo(e);return n&&n.coordDim}function BZ(t,e){return!(t&&t.containData&&e.coord&&!LZ(e))||t.containData(e.coord)}function VZ(t,e,n){return!(t&&t.containZone&&e.coord&&n.coord&&!LZ(e)&&!LZ(n))||t.containZone(e.coord,n.coord)}function FZ(t,e){return t?function(t,n,r,i){var o=i<2?t.coord&&t.coord[i]:t.value;return Cp(o,e[i])}:function(t,n,r,i){return Cp(t.value,e[i])}}function GZ(t,e,n){if("average"===n){var r=0,i=0;return t.each(e,(function(t,e){isNaN(t)||(r+=t,i++)})),r/i}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var HZ=Xi(),WZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.init=function(){this.markerGroupMap=Object(v["createHashMap"])()},e.prototype.render=function(t,e,n){var r=this,i=this.markerGroupMap;i.each((function(t){HZ(t).keep=!1})),e.eachSeries((function(t){var i=CZ.getMarkerModelFromSeries(t,r.type);i&&r.renderSeries(t,i,e,n)})),i.each((function(t){!HZ(t).keep&&r.group.remove(t.group)}))},e.prototype.markKeep=function(t){HZ(t).keep=!0},e.prototype.toggleBlurSeries=function(t,e){var n=this;Object(v["each"])(t,(function(t){var r=CZ.getMarkerModelFromSeries(t,n.type);if(r){var i=r.getData();i.eachItemGraphicEl((function(t){t&&(e?Dl(t):kl(t))}))}}))},e.type="marker",e}($d),UZ=WZ;function YZ(t,e,n){var r=e.coordinateSystem;t.each((function(i){var o,a=t.getItemModel(i),s=Qr(a.get("x"),n.getWidth()),l=Qr(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,i));else if(r){var u=t.get(r.dimensions[0],i),c=t.get(r.dimensions[1],i);o=r.dataToPoint([u,c])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(i,o)}))}var $Z=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=CZ.getMarkerModelFromSeries(t,"markPoint");e&&(YZ(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,r){var i=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new dI),u=XZ(i,t,e);e.setData(u),YZ(e.getData(),t,r),u.each((function(t){var n=u.getItemModel(t),r=n.getShallow("symbol"),i=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate"),s=n.getShallow("symbolOffset"),l=n.getShallow("symbolKeepAspect");if(Object(v["isFunction"])(r)||Object(v["isFunction"])(i)||Object(v["isFunction"])(o)||Object(v["isFunction"])(s)){var c=e.getRawValue(t),h=e.getDataParams(t);Object(v["isFunction"])(r)&&(r=r(c,h)),Object(v["isFunction"])(i)&&(i=i(c,h)),Object(v["isFunction"])(o)&&(o=o(c,h)),Object(v["isFunction"])(s)&&(s=s(c,h))}var f=n.getModel("itemStyle").getItemStyle(),p=lm(a,"color");f.fill||(f.fill=p),u.setItemVisual(t,{symbol:r,symbolSize:i,symbolRotate:o,symbolOffset:s,symbolKeepAspect:l,style:f})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){Hs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(UZ);function XZ(t,e,n){var r;r=t?Object(v["map"])(t&&t.dimensions,(function(t){var n=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return Object(v["extend"])(Object(v["extend"])({},n),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var i=new X_(r,n),o=Object(v["map"])(n.get("data"),Object(v["curry"])(RZ,e));t&&(o=Object(v["filter"])(o,Object(v["curry"])(BZ,t)));var a=FZ(!!t,r);return i.initData(o,null,a),i}var qZ=$Z;function ZZ(t){t.registerComponentModel(kZ),t.registerComponentView(qZ),t.registerPreprocessor((function(t){MZ(t.series,"markPoint")&&(t.markPoint=t.markPoint||{})}))}var KZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,r){return new e(t,n,r)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(CZ),JZ=KZ,QZ=Xi(),tK=function(t,e,n,r){var i,o=t.getData();if(Object(v["isArray"])(r))i=r;else{var a=r.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=r.xAxis||null!=r.yAxis){var s=void 0,l=void 0;if(null!=r.yAxis||null!=r.xAxis)s=e.getAxis(null!=r.yAxis?"y":"x"),l=Object(v["retrieve"])(r.yAxis,r.xAxis);else{var u=NZ(r,o,e,t);s=u.valueAxis;var c=sw(o,u.valueDataDim);l=GZ(o,c,a)}var h="x"===s.dim?0:1,f=1-h,p=Object(v["clone"])(r),d={coord:[]};p.type=null,p.coord=[],p.coord[f]=-1/0,d.coord[f]=1/0;var g=n.get("precision");g>=0&&Object(v["isNumber"])(l)&&(l=+l.toFixed(Math.min(g,20))),p.coord[h]=d.coord[h]=l,i=[p,d,{type:a,valueIndex:r.valueIndex,value:l}]}else i=[]}var y=[RZ(t,i[0]),RZ(t,i[1]),Object(v["extend"])({},i[2])];return y[2].type=y[2].type||null,Object(v["merge"])(y[2],y[0]),Object(v["merge"])(y[2],y[1]),y};function eK(t){return!isNaN(t)&&!isFinite(t)}function nK(t,e,n,r){var i=1-t,o=r.dimensions[t];return eK(e[i])&&eK(n[i])&&e[t]===n[t]&&r.getAxis(o).containData(e[t])}function rK(t,e){if("cartesian2d"===t.type){var n=e[0].coord,r=e[1].coord;if(n&&r&&(nK(1,n,r,t)||nK(0,n,r,t)))return!0}return BZ(t,e[0])&&BZ(t,e[1])}function iK(t,e,n,r,i){var o,a=r.coordinateSystem,s=t.getItemModel(e),l=Qr(s.get("x"),i.getWidth()),u=Qr(s.get("y"),i.getHeight());if(isNaN(l)||isNaN(u)){if(r.getMarkerPosition)o=r.getMarkerPosition(t.getValues(t.dimensions,e));else{var c=a.dimensions,h=t.get(c[0],e),f=t.get(c[1],e);o=a.dataToPoint([h,f])}if(kI(a,"cartesian2d")){var p=a.getAxis("x"),d=a.getAxis("y");c=a.dimensions;eK(t.get(c[0],e))?o[0]=p.toGlobalCoord(p.getExtent()[n?0:1]):eK(t.get(c[1],e))&&(o[1]=d.toGlobalCoord(d.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var oK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=CZ.getMarkerModelFromSeries(t,"markLine");if(e){var r=e.getData(),i=QZ(e).from,o=QZ(e).to;i.each((function(e){iK(i,e,!0,t,n),iK(o,e,!1,t,n)})),r.each((function(t){r.setItemLayout(t,[i.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,r){var i=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new _R);this.group.add(l.group);var u=aK(i,t,e),c=u.from,h=u.to,f=u.line;QZ(e).from=c,QZ(e).to=h,e.setData(f);var p=e.get("symbol"),d=e.get("symbolSize"),g=e.get("symbolRotate"),y=e.get("symbolOffset");function m(e,n,i){var o=e.getItemModel(n);iK(e,n,i,t,r);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=lm(a,"color")),e.setItemVisual(n,{symbolKeepAspect:o.get("symbolKeepAspect"),symbolOffset:Object(v["retrieve2"])(o.get("symbolOffset",!0),y[i?0:1]),symbolRotate:Object(v["retrieve2"])(o.get("symbolRotate",!0),g[i?0:1]),symbolSize:Object(v["retrieve2"])(o.get("symbolSize"),d[i?0:1]),symbol:Object(v["retrieve2"])(o.get("symbol",!0),p[i?0:1]),style:s})}Object(v["isArray"])(p)||(p=[p,p]),Object(v["isArray"])(d)||(d=[d,d]),Object(v["isArray"])(g)||(g=[g,g]),Object(v["isArray"])(y)||(y=[y,y]),u.from.each((function(t){m(c,t,!0),m(h,t,!1)})),f.each((function(t){var e=f.getItemModel(t).getModel("lineStyle").getLineStyle();f.setItemLayout(t,[c.getItemLayout(t),h.getItemLayout(t)]),null==e.stroke&&(e.stroke=c.getItemVisual(t,"style").fill),f.setItemVisual(t,{fromSymbolKeepAspect:c.getItemVisual(t,"symbolKeepAspect"),fromSymbolOffset:c.getItemVisual(t,"symbolOffset"),fromSymbolRotate:c.getItemVisual(t,"symbolRotate"),fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolKeepAspect:h.getItemVisual(t,"symbolKeepAspect"),toSymbolOffset:h.getItemVisual(t,"symbolOffset"),toSymbolRotate:h.getItemVisual(t,"symbolRotate"),toSymbolSize:h.getItemVisual(t,"symbolSize"),toSymbol:h.getItemVisual(t,"symbol"),style:e})})),l.updateData(f),u.line.eachItemGraphicEl((function(t){Hs(t).dataModel=e,t.traverse((function(t){Hs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(UZ);function aK(t,e,n){var r;r=t?Object(v["map"])(t&&t.dimensions,(function(t){var n=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return Object(v["extend"])(Object(v["extend"])({},n),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var i=new X_(r,n),o=new X_(r,n),a=new X_([],n),s=Object(v["map"])(n.get("data"),Object(v["curry"])(tK,e,t,n));t&&(s=Object(v["filter"])(s,Object(v["curry"])(rK,t)));var l=FZ(!!t,r);return i.initData(Object(v["map"])(s,(function(t){return t[0]})),null,l),o.initData(Object(v["map"])(s,(function(t){return t[1]})),null,l),a.initData(Object(v["map"])(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:i,to:o,line:a}}var sK=oK;function lK(t){t.registerComponentModel(JZ),t.registerComponentView(sK),t.registerPreprocessor((function(t){MZ(t.series,"markLine")&&(t.markLine=t.markLine||{})}))}var uK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,r){return new e(t,n,r)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(CZ),cK=uK,hK=Xi(),fK=function(t,e,n,r){var i=r[0],o=r[1];if(i&&o){var a=RZ(t,i),s=RZ(t,o),l=a.coord,u=s.coord;l[0]=Object(v["retrieve"])(l[0],-1/0),l[1]=Object(v["retrieve"])(l[1],-1/0),u[0]=Object(v["retrieve"])(u[0],1/0),u[1]=Object(v["retrieve"])(u[1],1/0);var c=Object(v["mergeAll"])([{},a,s]);return c.coord=[a.coord,s.coord],c.x0=a.x,c.y0=a.y,c.x1=s.x,c.y1=s.y,c}};function pK(t){return!isNaN(t)&&!isFinite(t)}function dK(t,e,n,r){var i=1-t;return pK(e[i])&&pK(n[i])}function gK(t,e){var n=e.coord[0],r=e.coord[1],i={coord:n,x:e.x0,y:e.y0},o={coord:r,x:e.x1,y:e.y1};return kI(t,"cartesian2d")?!(!n||!r||!dK(1,n,r,t)&&!dK(0,n,r,t))||VZ(t,i,o):BZ(t,i)||BZ(t,o)}function vK(t,e,n,r,i){var o,a=r.coordinateSystem,s=t.getItemModel(e),l=Qr(s.get(n[0]),i.getWidth()),u=Qr(s.get(n[1]),i.getHeight());if(isNaN(l)||isNaN(u)){if(r.getMarkerPosition){var c=t.getValues(["x0","y0"],e),h=t.getValues(["x1","y1"],e),f=a.clampData(c),p=a.clampData(h),d=[];"x0"===n[0]?d[0]=f[0]>p[0]?h[0]:c[0]:d[0]=f[0]>p[0]?c[0]:h[0],"y0"===n[1]?d[1]=f[1]>p[1]?h[1]:c[1]:d[1]=f[1]>p[1]?c[1]:h[1],o=r.getMarkerPosition(d,n,!0)}else{var g=t.get(n[0],e),v=t.get(n[1],e),y=[g,v];a.clampData&&a.clampData(y,y),o=a.dataToPoint(y,!0)}if(kI(a,"cartesian2d")){var m=a.getAxis("x"),b=a.getAxis("y");g=t.get(n[0],e),v=t.get(n[1],e);pK(g)?o[0]=m.toGlobalCoord(m.getExtent()["x0"===n[0]?0:1]):pK(v)&&(o[1]=b.toGlobalCoord(b.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var yK=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],mK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=CZ.getMarkerModelFromSeries(t,"markArea");if(e){var r=e.getData();r.each((function(e){var i=Object(v["map"])(yK,(function(i){return vK(r,e,i,t,n)}));r.setItemLayout(e,i);var o=r.getItemGraphicEl(e);o.setShape("points",i)}))}}),this)},e.prototype.renderSeries=function(t,e,n,r){var i=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Nr});this.group.add(l.group),this.markKeep(l);var u=bK(i,t,e);e.setData(u),u.each((function(e){var n=Object(v["map"])(yK,(function(n){return vK(u,e,n,t,r)})),o=i.getAxis("x").scale,s=i.getAxis("y").scale,l=o.getExtent(),c=s.getExtent(),h=[o.parse(u.get("x0",e)),o.parse(u.get("x1",e))],f=[s.parse(u.get("y0",e)),s.parse(u.get("y1",e))];ei(h),ei(f);var p=!(l[0]>h[1]||l[1]f[1]||c[1]=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(yh),OK=SK,MK=v["curry"],AK=v["each"],IK=Nr,TK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return d(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new IK),this.group.add(this._selectorGroup=new IK),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var r=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var i=t.get("align"),o=t.get("orient");i&&"auto"!==i||(i="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(i,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},c=t.get("padding"),h=sh(l,u,c),f=this.layoutInner(t,i,h,r,a,s),p=sh(v["defaults"]({width:f.width,height:f.height},l),u,c);this.group.x=p.x-f.x,this.group.y=p.y-f.y,this.group.markRedraw(),this.group.add(this._backgroundEl=j$(f,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,r,i,o,a){var s=this.getContentGroup(),l=v["createHashMap"](),u=e.get("selectedMode"),c=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&c.push(t.id)})),AK(e.getData(),(function(i,o){var a=i.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var h=new IK;return h.newline=!0,void s.add(h)}var f=n.getSeriesByName(a)[0];if(!l.get(a)){if(f){var p=f.getData(),d=p.getVisual("legendLineStyle")||{},g=p.getVisual("legendIcon"),y=p.getVisual("style"),m=this._createItem(f,a,o,i,e,t,d,y,g,u,r);m.on("click",MK(kK,a,null,r,c)).on("mouseover",MK(jK,f.name,null,r,c)).on("mouseout",MK(PK,f.name,null,r,c)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var h=s.indexOfName(a),f=s.getItemVisual(h,"style"),p=s.getItemVisual(h,"legendIcon"),d=Object(Je["parse"])(f.fill);d&&0===d[3]&&(d[3]=.2,f=v["extend"](v["extend"]({},f),{fill:Object(Je["stringify"])(d,"rgba")}));var g=this._createItem(n,a,o,i,e,t,{},f,p,u,r);g.on("click",MK(kK,null,a,r,c)).on("mouseover",MK(jK,null,a,r,c)).on("mouseout",MK(PK,null,a,r,c)),l.set(a,!0)}}),this);0}}),this),i&&this._createSelector(i,e,r,o,a)},e.prototype._createSelector=function(t,e,n,r,i){var o=this.getSelectorGroup();AK(t,(function(t){var r=t.type,i=new Gs({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===r?"legendAllSelect":"legendInverseSelect"})}});o.add(i);var a=e.getModel("selectorLabel"),s=e.getModel(["emphasis","selectorLabel"]);bu(i,{normal:a,emphasis:s},{defaultText:t.title}),Ul(i)}))},e.prototype._createItem=function(t,e,n,r,i,o,a,s,l,u,c){var h=t.visualDrawType,f=i.get("itemWidth"),p=i.get("itemHeight"),d=i.isSelected(e),g=r.get("symbolRotate"),y=r.get("symbolKeepAspect"),m=r.get("icon");l=m||l||"roundRect";var b=CK(l,r,a,s,h,d,c),x=new IK,_=r.getModel("textStyle");if(!v["isFunction"](t.getLegendIcon)||m&&"inherit"!==m){var w="inherit"===m&&t.getData().getVisual("symbol")?"inherit"===g?t.getData().getVisual("symbolRotate"):g:0;x.add(DK({itemWidth:f,itemHeight:p,icon:l,iconRotate:w,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}))}else x.add(t.getLegendIcon({itemWidth:f,itemHeight:p,icon:l,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:y}));var S="left"===o?f+5:-5,O=o,M=i.get("formatter"),A=e;v["isString"](M)&&M?A=M.replace("{name}",null!=e?e:""):v["isFunction"](M)&&(A=M(e));var I=r.get("inactiveColor");x.add(new Gs({style:_u(_,{text:A,x:S,y:p/2,fill:d?_.getTextColor():I,align:O,verticalAlign:"middle"})}));var T=new Os({shape:x.getBoundingRect(),invisible:!0}),C=r.getModel("tooltip");return C.get("show")&&ry({el:T,componentModel:i,itemName:e,itemTooltipOption:C.option}),x.add(T),x.eachChild((function(t){t.silent=!0})),T.silent=!u,this.getContentGroup().add(x),Ul(x),x.__legendDataIndex=n,x},e.prototype.layoutInner=function(t,e,n,r,i,o){var a=this.getContentGroup(),s=this.getSelectorGroup();oh(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),i){oh("horizontal",s,t.get("selectorItemGap",!0));var c=s.getBoundingRect(),h=[-c.x,-c.y],f=t.get("selectorButtonGap",!0),p=t.getOrient().index,d=0===p?"width":"height",g=0===p?"height":"width",v=0===p?"y":"x";"end"===o?h[p]+=l[d]+f:u[p]+=c[d]+f,h[1-p]+=l[g]/2-c[g]/2,s.x=h[0],s.y=h[1],a.x=u[0],a.y=u[1];var y={x:0,y:0};return y[d]=l[d]+f+c[d],y[g]=Math.max(l[g],c[g]),y[v]=Math.min(0,c[v]+h[1-p]),y}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}($d);function CK(t,e,n,r,i,o,a){function s(t,e){"auto"===t.lineWidth&&(t.lineWidth=e.lineWidth>0?2:0),AK(t,(function(n,r){"inherit"===t[r]&&(t[r]=e[r])}))}var l=e.getModel("itemStyle"),u=l.getItemStyle(),c=0===t.lastIndexOf("empty",0)?"fill":"stroke",h=l.getShallow("decal");u.decal=h&&"inherit"!==h?vb(h,a):r.decal,"inherit"===u.fill&&(u.fill=r[i]),"inherit"===u.stroke&&(u.stroke=r[c]),"inherit"===u.opacity&&(u.opacity=("fill"===i?r:n).opacity),s(u,r);var f=e.getModel("lineStyle"),p=f.getLineStyle();if(s(p,n),"auto"===u.fill&&(u.fill=r.fill),"auto"===u.stroke&&(u.stroke=r.fill),"auto"===p.stroke&&(p.stroke=r.fill),!o){var d=e.get("inactiveBorderWidth"),g=u[c];u.lineWidth="auto"===d?r.lineWidth>0&&g?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),p.stroke=f.get("inactiveColor"),p.lineWidth=f.get("inactiveWidth")}return{itemStyle:u,lineStyle:p}}function DK(t){var e=t.icon||"roundRect",n=Im(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill,t.symbolKeepAspect);return n.setStyle(t.itemStyle),n.rotation=(t.iconRotate||0)*Math.PI/180,n.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n}function kK(t,e,n,r){PK(t,e,n,r),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),jK(t,e,n,r)}function LK(t){var e,n=t.getZr().storage.getDisplayList(),r=0,i=n.length;while(rn[i],d=[-h.x,-h.y];e||(d[r]=l[s]);var g=[0,0],y=[-f.x,-f.y],m=v["retrieve2"](t.get("pageButtonGap",!0),t.get("itemGap",!0));if(p){var b=t.get("pageButtonPosition",!0);"end"===b?y[r]+=n[i]-f[i]:g[r]+=f[i]+m}y[1-r]+=h[o]/2-f[o]/2,l.setPosition(d),u.setPosition(g),c.setPosition(y);var x={x:0,y:0};if(x[i]=p?n[i]:h[i],x[o]=Math.max(h[o],f[o]),x[a]=Math.min(0,f[a]+y[1-r]),u.__rectSize=n[i],p){var _={x:0,y:0};_[i]=Math.max(n[i]-f[i]-m,0),_[o]=x[o],u.setClipPath(new Os({shape:_})),u.__rectSize=_[i]}else c.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var w=this._getPageInfo(t);return null!=w.pageIndex&&lu(l,{x:w.contentPosition[0],y:w.contentPosition[1]},p?t:null),this._updatePageInfoView(t,w),x},e.prototype._pageGo=function(t,e,n){var r=this._getPageInfo(e)[t];null!=r&&n.dispatchAction({type:"legendScroll",scrollDataIndex:r,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;v["each"](["pagePrev","pageNext"],(function(r){var i=r+"DataIndex",o=null!=e[i],a=n.childOfName(r);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")}));var r=n.childOfName("pageText"),i=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;r&&i&&r.setStyle("text",v["isString"](i)?i.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):i({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),r=this._containerGroup.__rectSize,i=t.getOrient().index,o=WK[i],a=UK[i],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],c=l.length,h=c?1:0,f={contentPosition:[n.x,n.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return f;var p=m(u);f.contentPosition[i]=-p.s;for(var d=s+1,g=p,v=p,y=null;d<=c;++d)y=m(l[d]),(!y&&v.e>g.s+r||y&&!b(y,g.s))&&(g=v.i>g.i?v:y,g&&(null==f.pageNextDataIndex&&(f.pageNextDataIndex=g.i),++f.pageCount)),v=y;for(d=s-1,g=p,v=p,y=null;d>=-1;--d)y=m(l[d]),y&&b(v,y.s)||!(g.i=e&&t.s<=e+r}},e.prototype._findTargetItemIndex=function(t){if(!this._showController)return 0;var e,n,r=this.getContentGroup();return r.eachChild((function(r,i){var o=r.__legendDataIndex;null==n&&null!=o&&(n=i),o===t&&(e=i)})),null!=e?e:n},e.type="legend.scroll",e}(EK),$K=YK;function XK(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}function qK(t){d_(BK),t.registerComponentModel(GK),t.registerComponentView($K),XK(t)}function ZK(t){d_(BK),d_(qK)}var KK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="dataZoom.inside",e.defaultOption=Zu(l$.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(l$),JK=KK,QK=Xi();function tJ(t,e,n){QK(t).coordSysRecordMap.each((function(t){var r=t.dataZoomInfoMap.get(e.uid);r&&(r.getRange=n)}))}function eJ(t,e){for(var n=QK(t).coordSysRecordMap,r=n.keys(),i=0;ir[n+e]&&(e=a),i=i&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!i}}}function sJ(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=QK(e),r=n.coordSysRecordMap||(n.coordSysRecordMap=Object(v["createHashMap"])());r.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){var n=i$(t);Object(v["each"])(n.infoList,(function(n){var i=n.model.uid,o=r.get(i)||r.set(i,rJ(e,n.model)),a=o.dataZoomInfoMap||(o.dataZoomInfoMap=Object(v["createHashMap"])());a.set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),r.each((function(t){var e,n=t.controller,i=t.dataZoomInfoMap;if(i){var o=i.keys()[0];null!=o&&(e=i.get(o))}if(e){var a=aJ(i);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),by(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else nJ(r,t)}))}))}var lJ=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return d(e,t),e.prototype.render=function(e,n,r){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),tJ(r,e,{pan:Object(v["bind"])(uJ.pan,this),zoom:Object(v["bind"])(uJ.zoom,this),scrollMove:Object(v["bind"])(uJ.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){eJ(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(f$),uJ={zoom:function(t,e,n,r){var i=this.range,o=i.slice(),a=t.axisModels[0];if(a){var s=hJ[e](null,[r.originX,r.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/r.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var c=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return BN(0,o,[0,100],0,c.minSpan,c.maxSpan),this.range=o,i[0]!==o[0]||i[1]!==o[1]?o:void 0}},pan:cJ((function(t,e,n,r,i,o){var a=hJ[r]([o.oldX,o.oldY],[o.newX,o.newY],e,i,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:cJ((function(t,e,n,r,i,o){var a=hJ[r]([0,0],[o.scrollDelta,o.scrollDelta],e,i,n);return a.signal*(t[1]-t[0])*o.scrollDelta}))};function cJ(t){return function(e,n,r,i){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s){var l=t(a,s,e,n,r,i);return BN(l,a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}}var hJ={grid:function(t,e,n,r,i){var o=n.axis,a={},s=i.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,r,i){var o=n.axis,a={},s=i.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,r,i){var o=n.axis,a=i.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}},fJ=lJ;function pJ(t){O$(t),t.registerComponentModel(JK),t.registerComponentView(fJ),sJ(t)}var dJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=Zu(l$.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(l$),gJ=dJ,vJ=Os,yJ=7,mJ=1,bJ=30,xJ=7,_J="horizontal",wJ="vertical",SJ=5,OJ=["line","bar","candlestick","scatter"],MJ={easing:"cubicOut",duration:100,delay:0},AJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return d(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=Object(v["bind"])(this._onBrush,this),this._onBrushEnd=Object(v["bind"])(this._onBrushEnd,this)},e.prototype.render=function(e,n,r,i){if(t.prototype.render.apply(this,arguments),by(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){xy(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Nr;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect"),r=n?xJ:0,i=this._findCoordRect(),o={width:e.getWidth(),height:e.getHeight()},a=this._orient===_J?{right:o.width-i.x-i.width,top:o.height-bJ-yJ-r,width:i.width,height:bJ}:{right:yJ,top:i.y,width:bJ,height:i.height},s=fh(t.option);Object(v["each"])(["right","top","width","height"],(function(t){"ph"===s[t]&&(s[t]=a[t])}));var l=sh(s,o);this._location={x:l.x,y:l.y},this._size=[l.width,l.height],this._orient===wJ&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,r=this.dataZoomModel.getFirstTargetAxisModel(),i=r&&r.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==_J||i?n===_J&&i?{scaleY:a?1:-1,scaleX:-1}:n!==wJ||i?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,r=t.get("brushSelect");n.add(new vJ({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var i=new vJ({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:Object(v["bind"])(this._onClickPanel,this)}),o=this.api.getZr();r?(i.on("mousedown",this._onBrushStart,this),i.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(i)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=this._shadowSize||[],r=t.series,i=r.getRawData(),o=r.getShadowDim&&r.getShadowDim(),a=o&&i.getDimensionInfo(o)?r.getShadowDim():t.otherDim;if(null!=a){var s=this._shadowPolygonPts,l=this._shadowPolylinePts;if(i!==this._shadowData||a!==this._shadowDim||e[0]!==n[0]||e[1]!==n[1]){var u=i.getDataExtent(a),c=.3*(u[1]-u[0]);u=[u[0]-c,u[1]+c];var h,f=[0,e[1]],p=[0,e[0]],d=[[e[0],0],[0,0]],g=[],v=p[1]/(i.count()-1),y=0,m=Math.round(i.count()/e[0]);i.each([a],(function(t,e){if(m>0&&e%m)y+=v;else{var n=null==t||isNaN(t)||""===t,r=n?0:Jr(t,u,f,!0);n&&!h&&e?(d.push([d[d.length-1][0],0]),g.push([g[g.length-1][0],0])):!n&&h&&(d.push([y,0]),g.push([y,0])),d.push([y,r]),g.push([y,r]),y+=v,h=n}})),s=this._shadowPolygonPts=d,l=this._shadowPolylinePts=g}this._shadowData=i,this._shadowDim=a,this._shadowSize=[e[0],e[1]];for(var b=this.dataZoomModel,x=0;x<3;x++){var _=w(1===x);this._displayables.sliderGroup.add(_),this._displayables.dataShadowSegs.push(_)}}}function w(t){var e=b.getModel(t?"selectedDataBackground":"dataBackground"),n=new Nr,r=new qg({shape:{points:s},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),i=new Jg({shape:{points:l},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(r),n.add(i),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,r=this.ecModel;return t.eachTargetAxis((function(i,o){var a=t.getAxisProxy(i,o).getTargetSeriesModels();Object(v["each"])(a,(function(t){if(!n&&!(!0!==e&&Object(v["indexOf"])(OJ,t.get("type"))<0)){var a,s=r.getComponent(n$(i),o).axis,l=IJ(i),u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:i,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],r=e.handleLabels=[null,null],i=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),c=e.filler=new vJ({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});i.add(c),i.add(new vJ({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:mJ,fill:"rgba(0,0,0,0)"}})),Object(v["each"])([0,1],(function(e){var o=a.get("handleIcon");!Om[o]&&o.indexOf("path://")<0&&o.indexOf("image://")<0&&(o="path://"+o);var s=Im(o,-1,0,2,2,null,!0);s.attr({cursor:TJ(this._orient),draggable:!0,drift:Object(v["bind"])(this._onDragMove,this,e),ondragend:Object(v["bind"])(this._onDragEnd,this),onmouseover:Object(v["bind"])(this._showDataInfo,this,!0),onmouseout:Object(v["bind"])(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Qr(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Ul(s);var c=a.get("handleColor");null!=c&&(s.style.fill=c),i.add(n[e]=s);var h=a.getModel("textStyle");t.add(r[e]=new Gs({silent:!0,invisible:!0,style:_u(h,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:h.getTextColor(),font:h.getFont()}),z2:10}))}),this);var h=c;if(u){var f=Qr(a.get("moveHandleSize"),o[1]),p=e.moveHandle=new Os({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:f}}),d=.8*f,g=e.moveHandleIcon=Im(a.get("moveHandleIcon"),-d/2,-d/2,d,d,"#fff",!0);g.silent=!0,g.y=o[1]+f/2-.5,p.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(f,10));h=e.moveZone=new Os({invisible:!0,shape:{y:o[1]-y,height:f+y}}),h.on("mouseover",(function(){s.enterEmphasis(p)})).on("mouseout",(function(){s.leaveEmphasis(p)})),i.add(p),i.add(g),i.add(h)}h.attr({draggable:!0,cursor:TJ(this._orient),drift:Object(v["bind"])(this._onDragMove,this,"all"),ondragstart:Object(v["bind"])(this._showDataInfo,this,!0),ondragend:Object(v["bind"])(this._onDragEnd,this),onmouseover:Object(v["bind"])(this._showDataInfo,this,!0),onmouseout:Object(v["bind"])(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Jr(t[0],[0,100],e,!0),Jr(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,r=this._handleEnds,i=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];BN(e,r,i,n.get("zoomLock")?"all":t,null!=o.minSpan?Jr(o.minSpan,a,i,!0):null,null!=o.maxSpan?Jr(o.maxSpan,a,i,!0):null);var s=this._range,l=this._range=ei([Jr(r[0],i,a,!0),Jr(r[1],i,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,r=ei(n.slice()),i=this._size;Object(v["each"])([0,1],(function(t){var r=e.handles[t],o=this._handleHeight;r.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:i[1]/2-o/2})}),this),e.filler.setShape({x:r[0],y:0,width:r[1]-r[0],height:i[1]});var o={x:r[0],width:r[1]-r[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,r[0],r[1],i[0]],l=0;le[0]||n[1]<0||n[1]>e[1])){var r=this._handleEnds,i=(r[0]+r[1])/2,o=this._updateInterval("all",n[0]-i);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Lt(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape,r=+new Date;if(!(r-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),o=[0,100];this._range=ei([Jr(n.x,i,o,!0),Jr(n.x+n.width,i,o,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(vt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,r=this.dataZoomModel,i=n.brushRect;i||(i=n.brushRect=new vJ({silent:!0,style:r.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(i)),i.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),i.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?MJ:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=i$(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var r=this.api.getWidth(),i=this.api.getHeight();t={x:.2*r,y:.2*i,width:.6*r,height:.6*i}}return t},e.type="dataZoom.slider",e}(f$);function IJ(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function TJ(t){return"vertical"===t?"ns-resize":"ew-resize"}var CJ=AJ;function DJ(t){t.registerComponentModel(gJ),t.registerComponentView(CJ),O$(t)}function kJ(t){d_(pJ),d_(DJ)}var LJ={get:function(t,e,n){var r=v["clone"]((jJ[t]||{})[e]);return n&&v["isArray"](r)?r[r.length-1]:r}},jJ={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},PJ=LJ,EJ=$P.mapVisual,RJ=$P.eachVisual,NJ=v["isArray"],zJ=v["each"],BJ=ei,VJ=Jr,FJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return d(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&Mq(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=v["bind"](t,this),this.controllerVisuals=Oq(this.option.controller,e,t),this.targetVisuals=Oq(this.option.target,e,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=Ai(t),e},e.prototype.eachTargetSeries=function(t,e){v["each"](this.getTargetSeriesIndices(),(function(n){var r=this.ecModel.getSeriesByIndex(n);r&&t.call(e,r)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var r,i=this.option,o=i.precision,a=this.dataBound,s=i.formatter;n=n||["<",">"],v["isArray"](t)&&(t=t.slice(),r=!0);var l=e?t:r?[u(t[0]),u(t[1])]:u(t);return v["isString"](s)?s.replace("{value}",r?l[0]:l).replace("{value2}",r?l[1]:l):v["isFunction"](s)?r?s(t[0],t[1]):s(t):r?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=BJ([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimensionIndex=function(t){var e=this.option.dimension;if(null!=e)return t.getDimensionIndex(e);for(var n=t.dimensions,r=n.length-1;r>=0;r--){var i=n[r],o=t.getDimensionInfo(i);if(!o.isCalculationCoord)return o.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},r=e.target||(e.target={}),i=e.controller||(e.controller={});v["merge"](r,n),v["merge"](i,n);var o=this.isCategory();function a(n){NJ(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}function s(t,e,n){var r=t[e],i=t[n];r&&!i&&(i=t[n]={},zJ(r,(function(t,e){if($P.isValidType(e)){var n=PJ.get(e,"inactive",o);null!=n&&(i[e]=n,"color"!==e||i.hasOwnProperty("opacity")||i.hasOwnProperty("colorAlpha")||(i.opacity=[0,0]))}})))}function l(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,r=this.get("inactiveColor"),i=this.getItemSymbol(),a=i||"roundRect";zJ(this.stateList,(function(i){var s=this.itemSize,l=t[i];l||(l=t[i]={color:o?r:[r]}),null==l.symbol&&(l.symbol=e&&v["clone"](e)||(o?a:[a])),null==l.symbolSize&&(l.symbolSize=n&&v["clone"](n)||(o?s[0]:[s[0],s[0]])),l.symbol=EJ(l.symbol,(function(t){return"none"===t?a:t}));var u=l.symbolSize;if(null!=u){var c=-1/0;RJ(u,(function(t){t>c&&(c=t)})),l.symbolSize=EJ(u,(function(t){return VJ(t,[0,c],[0,s[0]],!0)}))}}),this)}a.call(this,r),a.call(this,i),s.call(this,r,"inRange","outOfRange"),l.call(this,i)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(yh),GJ=FJ,HJ=[20,140],WJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=HJ[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=HJ[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):v["isArray"](e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),v["each"](this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=ei((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var r=[],i=n.getData();i.each(this.getDataDimensionIndex(i),(function(e,n){t[0]<=e&&e<=t[1]&&r.push(n)}),this),e.push({seriesId:n.id,dataIndex:r})}),this),e},e.prototype.getVisualMeta=function(t){var e=UJ(this,"outOfRange",this.getExtent()),n=UJ(this,"inRange",this.option.range.slice()),r=[];function i(e,n){r.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;at[1])break;r.push({color:this.getControllerVisual(a,"color",e),offset:o/n})}return r.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),r},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Nr("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,r=this.visualMapModel,i=n.handleThumbs,o=n.handleLabels,a=r.itemSize,s=r.getExtent();QJ([0,1],(function(l){var u=i[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var c=JJ(t[l],[0,a[1]],s,!0),h=this.getControllerVisual(c,"symbolSize");u.scaleX=u.scaleY=h/a[0],u.x=a[0]-h/2;var f=Uv(n.handleLabelPoints[l],Wv(u,this.group));o[l].setStyle({x:f[0],y:f[1],text:r.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,r){var i=this.visualMapModel,o=i.getExtent(),a=i.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var c={convertOpacityToAlpha:!0},h=this.getControllerVisual(t,"color",c),f=this.getControllerVisual(t,"symbolSize"),p=JJ(t,o,s,!0),d=a[0]-f/2,g={x:u.x,y:u.y};u.y=p,u.x=d;var v=Uv(l.indicatorLabelPoint,Wv(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var m=this._applyTransform("left",l.mainGroup),b=this._orient,x="horizontal"===b;y.setStyle({text:(n||"")+i.formatValueText(e),verticalAlign:x?m:"middle",align:x?"center":m});var _={x:d,y:p,style:{fill:h}},w={style:{x:v[0],y:v[1]}};if(i.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var S={duration:100,easing:"cubicInOut",additive:!0};u.x=g.x,u.y=g.y,u.animateTo(_,S),y.animateTo(w,S)}else u.attr(_),y.attr(w);this._firstShowIndicator=!1;var O=this._shapes.handleLabels;if(O)for(var M=0;Mi[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var c=this._hoverLinkDataIndices,h=[];(e||sQ(n))&&(h=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var f=Yi(c,h);this._dispatchHighDown("downplay",KJ(f[0],n)),this._dispatchHighDown("highlight",KJ(f[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var e;if(pm(t.target,(function(t){var n=Hs(t);if(null!=n.dataIndex)return e=n,!0}),!0),e){var n=this.ecModel.getSeriesByIndex(e.seriesIndex),r=this.visualMapModel;if(r.isTargetSeries(n)){var i=n.getData(e.dataType),o=i.getStore().get(r.getDataDimensionIndex(i),e.dataIndex);isNaN(o)||this._showIndicator(o,o)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n=0&&(i.dimension=o,r.push(i))}})),t.getData().setVisual("visualMeta",r)}}];function pQ(t,e,n,r){for(var i=e.targetVisuals[r],o=$P.prepareVisualTypes(i),a={color:lm(t.getData(),"color")},s=0,l=o.length;s0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(cQ,hQ),Object(v["each"])(fQ,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(gQ))}function bQ(t){t.registerComponentModel(YJ),t.registerComponentView(uQ),mQ(t)}var xQ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return d(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var r=this._mode=this._determineMode();this._pieceList=[],_Q[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var i=this.option.categories;this.resetVisual((function(t,e){"categories"===r?(t.mappingMethod="category",t.categories=v["clone"](i)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=v["map"](this._pieceList,(function(t){return t=v["clone"](t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},r=$P.listVisualTypes(),i=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}v["each"](e.pieces,(function(t){v["each"](r,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),v["each"](n,(function(t,n){var r=!1;v["each"](this.stateList,(function(t){r=r||o(e,t,n)||o(e.target,t,n)}),this),!r&&v["each"](this.stateList,(function(t){(e[t]||(e[t]={}))[n]=PJ.get(n,"inRange"===t?"active":"inactive",i)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,r=this._pieceList,i=(e?n:t).selected||{};if(n.selected=i,v["each"](r,(function(t,e){var n=this.getSelectedMapKey(t);i.hasOwnProperty(n)||(i[n]=!0)}),this),"single"===n.selectedMode){var o=!1;v["each"](r,(function(t,e){var n=this.getSelectedMapKey(t);i[n]&&(o?i[n]=!1:o=!0)}),this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=v["clone"](t)},e.prototype.getValueState=function(t){var e=$P.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(r){var i=[],o=r.getData();o.each(this.getDataDimensionIndex(o),(function(e,r){var o=$P.findPieceIndex(e,n);o===t&&i.push(r)}),this),e.push({seriesId:r.id,dataIndex:i})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],r=this,i=this._pieceList.slice();if(i.length){var o=i[0].interval[0];o!==-1/0&&i.unshift({interval:[-1/0,o]}),o=i[i.length-1].interval[1],o!==1/0&&i.push({interval:[o,1/0]})}else i.push({interval:[-1/0,1/0]});var a=-1/0;return v["each"](i,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(i,o){var a=r.getRepresentValue({interval:i});o||(o=r.getValueState(a));var s=t(a,o);i[0]===-1/0?n[0]=s:i[1]===1/0?n[1]=s:e.push({value:i[0],color:s},{value:i[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=Zu(GJ.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(GJ),_Q={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),r=this.getExtent(),i=e.splitNumber;i=Math.max(parseInt(i,10),1),e.splitNumber=i;var o=(r[1]-r[0])/i;while(+o.toFixed(n)!==o&&n<5)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,r[0]],close:[0,0]});for(var a=0,s=r[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function wQ(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var SQ=xQ,OQ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return d(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),r=e.textStyleModel,i=r.getFont(),o=r.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,c=v["retrieve"](e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,c,a),v["each"](l.viewPieceList,(function(r){var l=r.piece,u=new Nr;u.onclick=v["bind"](this._onItemClick,this,l),this._enableHoverLink(u,r.indexInModelPieceList);var h=e.getRepresentValue(l);if(this._createItemSymbol(u,h,[0,0,s[0],s[1]]),c){var f=this.visualMapModel.getValueState(h);u.add(new Gs({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:i,fill:o,opacity:"outOfRange"===f?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,c,a),oh(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return r("highlight")})).on("mouseout",(function(){return r("downplay")}));var r=function(t){var r=n.visualMapModel;r.option.hoverLink&&n.api.dispatchAction({type:t,batch:KJ(r.findTargetDataIndices(e),r)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return ZJ(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,r,i){if(e){var o=new Nr,a=this.visualMapModel.textStyleModel;o.add(new Gs({style:_u(a,{x:r?"right"===i?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:r?i:"center",text:e})})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=v["map"](t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),r=t.get("orient"),i=t.get("inverse");return("horizontal"===r?i:!i)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(Im(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,r=n.selectedMode;if(r){var i=v["clone"](n.selected),o=e.getSelectedMapKey(t);"single"===r||!0===r?(i[o]=!0,v["each"](i,(function(t,e){i[e]=e===o}))):i[o]=!i[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})}},e.type="visualMap.piecewise",e}(XJ),MQ=OQ;function AQ(t){t.registerComponentModel(SQ),t.registerComponentView(MQ),mQ(t)}function IQ(t){d_(bQ),d_(AQ)}var TQ={label:{enabled:!0},decal:{show:!1}},CQ=Xi(),DQ={};function kQ(t,e){var n=t.getModel("aria");if(n.get("enabled")){var r=v["clone"](TQ);v["merge"](r.label,t.getLocaleModel().get("aria"),!1),v["merge"](n.option,r,!1),i(),o()}function i(){var e=n.getModel("decal"),r=e.get("show");if(r){var i=v["createHashMap"]();t.eachSeries((function(t){if(!t.isColorBySeries()){var e=i.get(t.type);e||(e={},i.set(t.type,e)),CQ(t).scope=e}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if(v["isFunction"](e.enableAriaDecal))e.enableAriaDecal();else{var n=e.getData();if(e.isColorBySeries()){var r=Uh(e.ecModel,e.name,DQ,t.getSeriesCount()),i=n.getVisual("decal");n.setVisual("decal",u(i,r))}else{var o=e.getRawData(),a={},s=CQ(e).scope;n.each((function(t){var e=n.getRawIndex(t);a[e]=t}));var l=o.count();o.each((function(t){var r=a[t],i=o.getName(t)||t+"",c=Uh(e.ecModel,i,s,l),h=n.getItemVisual(r,"decal");n.setItemVisual(r,"decal",u(h,c))}))}}function u(t,e){var n=t?v["extend"](v["extend"]({},e),t):e;return n.dirty=!0,n}}))}}function o(){var r=t.getLocaleModel().get("aria"),i=n.getModel("label");if(i.option=v["defaults"](i.option,r),i.get("enabled")){var o=e.getZr().dom;if(i.get("description"))o.setAttribute("aria-label",i.get("description"));else{var u,c=t.getSeriesCount(),h=i.get(["data","maxCount"])||10,f=i.get(["series","maxCount"])||10,p=Math.min(c,f);if(!(c<1)){var d=s();if(d){var g=i.get(["general","withTitle"]);u=a(g,{title:d})}else u=i.get(["general","withoutTitle"]);var y=[],m=c>1?i.get(["series","multiple","prefix"]):i.get(["series","single","prefix"]);u+=a(m,{seriesCount:c}),t.eachSeries((function(t,e){if(e1?i.get(["series","multiple",o]):i.get(["series","single",o]),n=a(n,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:l(t.subType)});var s=t.getData();if(s.count()>h){var u=i.get(["data","partialData"]);n+=a(u,{displayCnt:h})}else n+=i.get(["data","allData"]);for(var f=i.get(["data","separator","middle"]),d=i.get(["data","separator","end"]),g=[],v=0;v":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},EQ=function(){function t(t){var e=this._condVal=Object(v["isString"])(t)?new RegExp(t):Object(v["isRegExp"])(t)?t:null;if(null==e){var n="";0,Qh(n)}}return t.prototype.evaluate=function(t){var e=typeof t;return Object(v["isString"])(e)?this._condVal.test(t):!!Object(v["isNumber"])(e)&&this._condVal.test(t+"")},t}(),RQ=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),NQ=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&l.push(e),e=[t,n]}function d(t,n,r,i){e0(t,r)&&e0(n,i)||e.push(t,n,r,i,r,i)}function g(t,n,r,i,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=nO:I2&&l.push(e),l}function r0(t,e,n,r,i,o,a,s,l,u){if(e0(t,n)&&e0(e,r)&&e0(i,a)&&e0(o,s))l.push(a,s);else{var c=2/u,h=c*c,f=a-t,p=s-e,d=Math.sqrt(f*f+p*p);f/=d,p/=d;var g=n-t,v=r-e,y=i-a,m=o-s,b=g*g+v*v,x=y*y+m*m;if(b=0&&O=0)l.push(a,s);else{var M=[],A=[];ze(t,n,i,a,.5,M),ze(e,r,o,s,.5,A),r0(M[0],A[0],M[1],A[1],M[2],A[2],M[3],A[3],l,u),r0(M[4],A[4],M[5],A[5],M[6],A[6],M[7],A[7],l,u)}}}}function i0(t,e){var n=n0(t),r=[];e=e||1;for(var i=0;i0)for(u=0;uMath.abs(u),h=o0([l,u],c?0:1,e),f=(c?s:u)/h.length,p=0;pi,a=o0([r,i],o?0:1,e),s=o?"width":"height",l=o?"height":"width",u=o?"x":"y",c=o?"y":"x",h=t[s]/a.length,f=0;f1?null:new Lt(g*l+t,g*u+e)}function c0(t,e,n){var r=new Lt;Lt.sub(r,n,e),r.normalize();var i=new Lt;Lt.sub(i,t,e);var o=i.dot(r);return o}function h0(t,e){var n=t[t.length-1];n&&n[0]===e[0]&&n[1]===e[1]||t.push(e)}function f0(t,e,n){for(var r=t.length,i=[],o=0;oa?(u.x=c.x=s+o/2,u.y=l,c.y=l+a):(u.y=c.y=l+a/2,u.x=s,c.x=s+o),f0(e,u,c)}function d0(t,e,n,r){if(1===n)r.push(e);else{var i=Math.floor(n/2),o=t(e);d0(t,o[0],i,r),d0(t,o[1],n-i,r)}return r}function g0(t,e){for(var n=[],r=0;r0)for(var _=r/n,w=-r/2;w<=r/2;w+=_){var S=Math.sin(w),O=Math.cos(w),M=0;for(b=0;b0;u/=2){var c=0,h=0;(t&u)>0&&(c=1),(e&u)>0&&(h=1),l+=u*u*(3*c^h),0===h&&(1===c&&(t=u-1-t,e=u-1-e),s=t,t=e,e=s)}return l}function P0(t){var e=1/0,n=1/0,r=-1/0,i=-1/0,o=Object(v["map"])(t,(function(t){var o=t.getBoundingRect(),a=t.getComputedTransform(),s=o.x+o.width/2+(a?a[4]:0),l=o.y+o.height/2+(a?a[5]:0);return e=Math.min(s,e),n=Math.min(l,n),r=Math.max(s,r),i=Math.max(l,i),[s,l]})),a=Object(v["map"])(o,(function(o,a){return{cp:o,z:j0(o[0],o[1],e,n,r,i),path:t[a]}}));return a.sort((function(t,e){return t.z-e.z})).map((function(t){return t.path}))}function E0(t){return m0(t.path,t.count)}function R0(){return{fromIndividuals:[],toIndividuals:[],count:0}}function N0(t,e,n){var r=[];function i(t){for(var e=0;e=0;i--)if(!n[i].many.length){var l=n[s].many;if(l.length<=1){if(!s)return n;s=0}o=l.length;var u=Math.ceil(o/2);n[i].many=l.slice(u,o),n[s].many=l.slice(0,u),s++}return n}var F0={clone:function(t){for(var e=[],n=1-Math.pow(1-t.path.style.opacity,1/t.count),r=0;r0){var s,l,u=r.getModel("universalTransition").get("delay"),c=Object.assign({setToFinal:!0},a);B0(t)&&(s=t,l=e),B0(e)&&(s=e,l=t);for(var h=s?s===t:t.length>e.length,f=s?V0(l,s):V0(h?e:t,[h?t:e]),p=0,d=0;dW0))for(var r=n.getIndices(),i=Y0(n),o=0;o0&&i.group.traverse((function(t){t instanceof ss&&!t.animators.length&&t.animateFrom({style:{opacity:0}},o)}))}))}function t1(t){var e=t.getModel("universalTransition").get("seriesKey");return e||t.id}function e1(t){return Object(v["isArray"])(t)?t.sort().join(","):t}function n1(t){if(t.hostModel)return t.hostModel.getModel("universalTransition").get("divideShape")}function r1(t,e){var n=Object(v["createHashMap"])(),r=Object(v["createHashMap"])(),i=Object(v["createHashMap"])();return Object(v["each"])(t.oldSeries,(function(e,n){var o=t.oldDataGroupIds[n],a=t.oldData[n],s=t1(e),l=e1(s);r.set(l,{dataGroupId:o,data:a}),Object(v["isArray"])(s)&&Object(v["each"])(s,(function(t){i.set(t,{key:l,dataGroupId:o,data:a})}))})),Object(v["each"])(e.updatedSeries,(function(t){if(t.isUniversalTransitionEnabled()&&t.isAnimationEnabled()){var e=t.get("dataGroupId"),o=t.getData(),a=t1(t),s=e1(a),l=r.get(s);if(l)n.set(s,{oldSeries:[{dataGroupId:l.dataGroupId,divide:n1(l.data),data:l.data}],newSeries:[{dataGroupId:e,divide:n1(o),data:o}]});else if(Object(v["isArray"])(a)){0;var u=[];Object(v["each"])(a,(function(t){var e=r.get(t);e.data&&u.push({dataGroupId:e.dataGroupId,divide:n1(e.data),data:e.data})})),u.length&&n.set(s,{oldSeries:u,newSeries:[{dataGroupId:e,data:o,divide:n1(o)}]})}else{var c=i.get(a);if(c){var h=n.get(c.key);h||(h={oldSeries:[{dataGroupId:c.dataGroupId,data:c.data,divide:n1(c.data)}],newSeries:[]},n.set(c.key,h)),h.newSeries.push({dataGroupId:e,data:o,divide:n1(o)})}}}})),n}function i1(t,e){for(var n=0;n=0&&i.push({dataGroupId:e.oldDataGroupIds[n],data:e.oldData[n],divide:n1(e.oldData[n]),dim:t.dimension})})),Object(v["each"])(Ai(t.to),(function(t){var r=i1(n.updatedSeries,t);if(r>=0){var i=n.updatedSeries[r].getData();o.push({dataGroupId:e.oldDataGroupIds[r],data:i,divide:n1(i),dim:t.dimension})}})),i.length>0&&o.length>0&&Q0(i,o,r)}function a1(t){t.registerUpdateLifecycle("series:beforeupdate",(function(t,e,n){Object(v["each"])(Ai(n.seriesTransition),(function(t){Object(v["each"])(Ai(t.to),(function(t){for(var e=n.updatedSeries,r=0;r
'};function n(t,e,n){return tn?n:t}function r(t){return 100*(-1+t)}function i(t,n,i){var o;return o="translate3d"===e.positionUsing?{transform:"translate3d("+r(t)+"%,0,0)"}:"translate"===e.positionUsing?{transform:"translate("+r(t)+"%,0)"}:{"margin-left":r(t)+"%"},o.transition="all "+n+"ms "+i,o}t.configure=function(t){var n,r;for(n in t)r=t[n],void 0!==r&&t.hasOwnProperty(n)&&(e[n]=r);return this},t.status=null,t.set=function(r){var s=t.isStarted();r=n(r,e.minimum,1),t.status=1===r?null:r;var l=t.render(!s),u=l.querySelector(e.barSelector),c=e.speed,h=e.easing;return l.offsetWidth,o((function(n){""===e.positionUsing&&(e.positionUsing=t.getPositioningCSS()),a(u,i(r,c,h)),1===r?(a(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){a(l,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){t.remove(),n()}),c)}),c)):setTimeout(n,c)})),this},t.isStarted=function(){return"number"===typeof t.status},t.start=function(){t.status||t.set(0);var n=function(){setTimeout((function(){t.status&&(t.trickle(),n())}),e.trickleSpeed)};return e.trickle&&n(),this},t.done=function(e){return e||t.status?t.inc(.3+.5*Math.random()).set(1):this},t.inc=function(e){var r=t.status;return r?("number"!==typeof e&&(e=(1-r)*n(Math.random()*r,.1,.95)),r=n(r+e,0,.994),t.set(r)):t.start()},t.trickle=function(){return t.inc(Math.random()*e.trickleRate)},function(){var e=0,n=0;t.promise=function(r){return r&&"resolved"!==r.state()?(0===n&&t.start(),e++,n++,r.always((function(){n--,0===n?(e=0,t.done()):t.set((e-n)/e)})),this):this}}(),t.render=function(n){if(t.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var i=document.createElement("div");i.id="nprogress",i.innerHTML=e.template;var o,s=i.querySelector(e.barSelector),u=n?"-100":r(t.status||0),c=document.querySelector(e.parent);return a(s,{transition:"all 0 linear",transform:"translate3d("+u+"%,0,0)"}),e.showSpinner||(o=i.querySelector(e.spinnerSelector),o&&h(o)),c!=document.body&&l(c,"nprogress-custom-parent"),c.appendChild(i),i},t.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(e.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&h(t)},t.isRendered=function(){return!!document.getElementById("nprogress")},t.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var o=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),a=function(){var t=["Webkit","O","Moz","ms"],e={};function n(t){return t.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()}))}function r(e){var n=document.body.style;if(e in n)return e;var r,i=t.length,o=e.charAt(0).toUpperCase()+e.slice(1);while(i--)if(r=t[i]+o,r in n)return r;return e}function i(t){return t=n(t),e[t]||(e[t]=r(t))}function o(t,e,n){e=i(e),t.style[e]=n}return function(t,e){var n,r,i=arguments;if(2==i.length)for(n in e)r=e[n],void 0!==r&&e.hasOwnProperty(n)&&o(t,n,r);else o(t,i[1],i[2])}}();function s(t,e){var n="string"==typeof t?t:c(t);return n.indexOf(" "+e+" ")>=0}function l(t,e){var n=c(t),r=n+e;s(n,e)||(t.className=r.substring(1))}function u(t,e){var n,r=c(t);s(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function c(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function h(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return t}))},3397:function(t,e,n){var r=n("7a41");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},3410:function(t,e,n){var r=n("23e7"),i=n("d039"),o=n("7b0b"),a=n("e163"),s=n("e177"),l=i((function(){a(1)}));r({target:"Object",stat:!0,forced:l,sham:!s},{getPrototypeOf:function(t){return a(o(t))}})},"342f":function(t,e){t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},3511:function(t,e){var n=TypeError,r=9007199254740991;t.exports=function(t){if(t>r)throw n("Maximum allowed index exceeded");return t}},3529:function(t,e,n){"use strict";var r=n("23e7"),i=n("c65b"),o=n("59ed"),a=n("f069"),s=n("e667"),l=n("2266"),u=n("5eed");r({target:"Promise",stat:!0,forced:u},{race:function(t){var e=this,n=a.f(e),r=n.reject,u=s((function(){var a=o(e.resolve);l(t,(function(t){i(a,e,t).then(n.resolve,r)}))}));return u.error&&r(u.value),n.promise}})},"35a1":function(t,e,n){var r=n("f5df"),i=n("dc4a"),o=n("7234"),a=n("3f8c"),s=n("b622"),l=s("iterator");t.exports=function(t){if(!o(t))return i(t,l)||i(t,"@@iterator")||a[r(t)]}},"37e8":function(t,e,n){var r=n("83ab"),i=n("aed9"),o=n("9bf2"),a=n("825a"),s=n("fc6a"),l=n("df75");e.f=r&&!i?Object.defineProperties:function(t,e){a(t);var n,r=s(e),i=l(e),u=i.length,c=0;while(u>c)o.f(t,n=i[c++],r[n]);return t}},"393a":function(t,e,n){"use strict";var r=n("e444"),i=n("512c"),o=n("ba01"),a=n("051b"),s=n("8a0d"),l=n("26dd"),u=n("92f0"),c=n("ce7a"),h=n("cc15")("iterator"),f=!([].keys&&"next"in[].keys()),p="@@iterator",d="keys",g="values",v=function(){return this};t.exports=function(t,e,n,y,m,b,x){l(n,e,y);var _,w,S,O=function(t){if(!f&&t in T)return T[t];switch(t){case d:return function(){return new n(this,t)};case g:return function(){return new n(this,t)}}return function(){return new n(this,t)}},M=e+" Iterator",A=m==g,I=!1,T=t.prototype,C=T[h]||T[p]||m&&T[m],D=C||O(m),k=m?A?O("entries"):D:void 0,L="Array"==e&&T.entries||C;if(L&&(S=c(L.call(new t)),S!==Object.prototype&&S.next&&(u(S,M,!0),r||"function"==typeof S[h]||a(S,h,v))),A&&C&&C.name!==g&&(I=!0,D=function(){return C.call(this)}),r&&!x||!f&&!I&&T[h]||a(T,h,D),s[e]=D,s[M]=v,m)if(_={values:A?D:O(g),keys:b?D:O(d),entries:k},x)for(w in _)w in T||o(T,w,_[w]);else i(i.P+i.F*(f||I),e,_);return _}},"39ad":function(t,e,n){var r=n("6ca1"),i=n("d16a"),o=n("9d11");t.exports=function(t){return function(e,n,a){var s,l=r(e),u=i(l.length),c=o(a,u);if(t&&n!=n){while(u>c)if(s=l[c++],s!=s)return!0}else for(;u>c;c++)if((t||c in l)&&l[c]===n)return t||c||0;return!t&&-1}}},"3a34":function(t,e,n){"use strict";var r=n("83ab"),i=n("e8b5"),o=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(i(t)&&!a(t,"length").writable)throw o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},"3a9b":function(t,e,n){var r=n("e330");t.exports=r({}.isPrototypeOf)},"3bbe":function(t,e,n){var r=n("1626"),i=String,o=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw o("Can't set "+i(t)+" as a prototype")}},"3c4e":function(t,e,n){"use strict";var r=function(t){return i(t)&&!o(t)};function i(t){return!!t&&"object"===typeof t}function o(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||l(t)}var a="function"===typeof Symbol&&Symbol.for,s=a?Symbol.for("react.element"):60103;function l(t){return t.$$typeof===s}function u(t){return Array.isArray(t)?[]:{}}function c(t,e){var n=e&&!0===e.clone;return n&&r(t)?p(u(t),t,e):t}function h(t,e,n){var i=t.slice();return e.forEach((function(e,o){"undefined"===typeof i[o]?i[o]=c(e,n):r(e)?i[o]=p(t[o],e,n):-1===t.indexOf(e)&&i.push(c(e,n))})),i}function f(t,e,n){var i={};return r(t)&&Object.keys(t).forEach((function(e){i[e]=c(t[e],n)})),Object.keys(e).forEach((function(o){r(e[o])&&t[o]?i[o]=p(t[o],e[o],n):i[o]=c(e[o],n)})),i}function p(t,e,n){var r=Array.isArray(e),i=Array.isArray(t),o=n||{arrayMerge:h},a=r===i;if(a){if(r){var s=o.arrayMerge||h;return s(t,e,n)}return f(t,e,n)}return c(e,n)}p.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,n){return p(t,n,e)}))};var d=p;t.exports=d},"3ca3":function(t,e,n){"use strict";var r=n("6547").charAt,i=n("577e"),o=n("69f3"),a=n("c6d2"),s=n("4754"),l="String Iterator",u=o.set,c=o.getterFor(l);a(String,"String",(function(t){u(this,{type:l,string:i(t),index:0})}),(function(){var t,e=c(this),n=e.string,i=e.index;return i>=n.length?s(void 0,!0):(t=r(n,i),e.index+=t.length,s(t,!1))}))},"3f6b":function(t,e,n){t.exports={default:n("b9c7"),__esModule:!0}},"3f8c":function(t,e){t.exports={}},"408a":function(t,e,n){var r=n("e330");t.exports=r(1..valueOf)},"40d5":function(t,e,n){var r=n("d039");t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},"41b2":function(t,e,n){"use strict";e.__esModule=!0;var r=n("3f6b"),i=o(r);function o(t){return t&&t.__esModule?t:{default:t}}e.default=i.default||function(t){for(var e=1;e255?255:t}function a(t){return t=Math.round(t),t<0?0:t>360?360:t}function s(t){return t<0?0:t>1?1:t}function l(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?o(parseFloat(e)/100*255):o(parseInt(e,10))}function u(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?s(parseFloat(e)/100):s(parseFloat(e))}function c(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function h(t,e,n){return t+(e-t)*n}function f(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t}function p(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var d=new r["a"](20),g=null;function v(t,e){g&&p(g,e),g=d.put(t,g||e.slice())}function y(t,e){if(t){e=e||[];var n=d.get(t);if(n)return p(e,n);t+="";var r=t.replace(/ /g,"").toLowerCase();if(r in i)return p(e,i[r]),v(t,e),e;var o=r.length;if("#"!==r.charAt(0)){var a=r.indexOf("("),s=r.indexOf(")");if(-1!==a&&s+1===o){var c=r.substr(0,a),h=r.substr(a+1,s-(a+1)).split(","),g=1;switch(c){case"rgba":if(4!==h.length)return 3===h.length?f(e,+h[0],+h[1],+h[2],1):f(e,0,0,0,1);g=u(h.pop());case"rgb":return h.length>=3?(f(e,l(h[0]),l(h[1]),l(h[2]),3===h.length?g:u(h[3])),v(t,e),e):void f(e,0,0,0,1);case"hsla":return 4!==h.length?void f(e,0,0,0,1):(h[3]=u(h[3]),m(h,e),v(t,e),e);case"hsl":return 3!==h.length?void f(e,0,0,0,1):(m(h,e),v(t,e),e);default:return}}f(e,0,0,0,1)}else{if(4===o||5===o){var y=parseInt(r.slice(1,4),16);return y>=0&&y<=4095?(f(e,(3840&y)>>4|(3840&y)>>8,240&y|(240&y)>>4,15&y|(15&y)<<4,5===o?parseInt(r.slice(4),16)/15:1),v(t,e),e):void f(e,0,0,0,1)}if(7===o||9===o){y=parseInt(r.slice(1,7),16);return y>=0&&y<=16777215?(f(e,(16711680&y)>>16,(65280&y)>>8,255&y,9===o?parseInt(r.slice(7),16)/255:1),v(t,e),e):void f(e,0,0,0,1)}}}}function m(t,e){var n=(parseFloat(t[0])%360+360)%360/360,r=u(t[1]),i=u(t[2]),a=i<=.5?i*(r+1):i+r-i*r,s=2*i-a;return e=e||[],f(e,o(255*c(s,a,n+1/3)),o(255*c(s,a,n)),o(255*c(s,a,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function b(t){if(t){var e,n,r=t[0]/255,i=t[1]/255,o=t[2]/255,a=Math.min(r,i,o),s=Math.max(r,i,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var c=((s-r)/6+l/2)/l,h=((s-i)/6+l/2)/l,f=((s-o)/6+l/2)/l;r===s?e=f-h:i===s?e=1/3+c-f:o===s&&(e=2/3+h-c),e<0&&(e+=1),e>1&&(e-=1)}var p=[360*e,n,u];return null!=t[3]&&p.push(t[3]),p}}function x(t,e){var n=y(t);if(n){for(var r=0;r<3;r++)n[r]=e<0?n[r]*(1-e)|0:(255-n[r])*e+n[r]|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return T(n,4===n.length?"rgba":"rgb")}}function _(t){var e=y(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function w(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var r=t*(e.length-1),i=Math.floor(r),a=Math.ceil(r),l=e[i],u=e[a],c=r-i;return n[0]=o(h(l[0],u[0],c)),n[1]=o(h(l[1],u[1],c)),n[2]=o(h(l[2],u[2],c)),n[3]=s(h(l[3],u[3],c)),n}}var S=w;function O(t,e,n){if(e&&e.length&&t>=0&&t<=1){var r=t*(e.length-1),i=Math.floor(r),a=Math.ceil(r),l=y(e[i]),u=y(e[a]),c=r-i,f=T([o(h(l[0],u[0],c)),o(h(l[1],u[1],c)),o(h(l[2],u[2],c)),s(h(l[3],u[3],c))],"rgba");return n?{color:f,leftIndex:i,rightIndex:a,value:r}:f}}var M=O;function A(t,e,n,r){var i=y(t);if(t)return i=b(i),null!=e&&(i[0]=a(e)),null!=n&&(i[1]=u(n)),null!=r&&(i[2]=u(r)),T(m(i),"rgba")}function I(t,e){var n=y(t);if(n&&null!=e)return n[3]=s(e),T(n,"rgba")}function T(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function C(t,e){var n=y(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}function D(){return T([Math.round(255*Math.random()),Math.round(255*Math.random()),Math.round(255*Math.random())],"rgb")}},"428f":function(t,e,n){var r=n("da84");t.exports=r},4362:function(t,e,n){e.nextTick=function(t){var e=Array.prototype.slice.call(arguments);e.shift(),setTimeout((function(){t.apply(null,e)}),0)},e.platform=e.arch=e.execPath=e.title="browser",e.pid=1,e.browser=!0,e.env={},e.argv=[],e.binding=function(t){throw new Error("No such module. (Possibly not yet loaded)")},function(){var t,r="/";e.cwd=function(){return r},e.chdir=function(e){t||(t=n("df7c")),r=t.resolve(e,r)}}(),e.exit=e.kill=e.umask=e.dlopen=e.uptime=e.memoryUsage=e.uvCounters=function(){},e.features={}},"44ad":function(t,e,n){var r=n("e330"),i=n("d039"),o=n("c6b6"),a=Object,s=r("".split);t.exports=i((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?s(t,""):a(t)}:a},"44d2":function(t,e,n){var r=n("b622"),i=n("7c73"),o=n("9bf2").f,a=r("unscopables"),s=Array.prototype;void 0==s[a]&&o(s,a,{configurable:!0,value:i(null)}),t.exports=function(t){s[a][t]=!0}},"44de":function(t,e){t.exports=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(n){}}},"44e7":function(t,e,n){var r=n("861d"),i=n("c6b6"),o=n("b622"),a=o("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[a])?!!e:"RegExp"==i(t))}},4581:function(t,e,n){"use strict";e["a"]=null},4625:function(t,e,n){var r=n("c6b6"),i=n("e330");t.exports=function(t){if("Function"===r(t))return i(t)}},"466d":function(t,e,n){"use strict";var r=n("c65b"),i=n("d784"),o=n("825a"),a=n("7234"),s=n("50c4"),l=n("577e"),u=n("1d80"),c=n("dc4a"),h=n("8aa5"),f=n("14c3");i("match",(function(t,e,n){return[function(e){var n=u(this),i=a(e)?void 0:c(e,t);return i?r(i,e,n):new RegExp(e)[t](l(n))},function(t){var r=o(this),i=l(t),a=n(e,r,i);if(a.done)return a.value;if(!r.global)return f(r,i);var u=r.unicode;r.lastIndex=0;var c,p=[],d=0;while(null!==(c=f(r,i))){var g=l(c[0]);p[d]=g,""===g&&(r.lastIndex=h(i,s(r.lastIndex),u)),d++}return 0===d?null:p}]}))},4738:function(t,e,n){var r=n("da84"),i=n("d256"),o=n("1626"),a=n("94ca"),s=n("8925"),l=n("b622"),u=n("6069"),c=n("6c59"),h=n("c430"),f=n("2d00"),p=i&&i.prototype,d=l("species"),g=!1,v=o(r.PromiseRejectionEvent),y=a("Promise",(function(){var t=s(i),e=t!==String(i);if(!e&&66===f)return!0;if(h&&(!p["catch"]||!p["finally"]))return!0;if(!f||f<51||!/native code/.test(t)){var n=new i((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},o=n.constructor={};if(o[d]=r,g=n.then((function(){}))instanceof r,!g)return!0}return!e&&(u||c)&&!v}));t.exports={CONSTRUCTOR:y,REJECTION_EVENT:v,SUBCLASSING:g}},4754:function(t,e){t.exports=function(t,e){return{value:t,done:e}}},4840:function(t,e,n){var r=n("825a"),i=n("5087"),o=n("7234"),a=n("b622"),s=a("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||o(n=r(a)[s])?e:i(n)}},"485a":function(t,e,n){var r=n("c65b"),i=n("1626"),o=n("861d"),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&i(n=t.toString)&&!o(s=r(n,t)))return s;if(i(n=t.valueOf)&&!o(s=r(n,t)))return s;if("string"!==e&&i(n=t.toString)&&!o(s=r(n,t)))return s;throw a("Can't convert object to primitive value")}},"498a":function(t,e,n){"use strict";var r=n("23e7"),i=n("58a8").trim,o=n("c8d2");r({target:"String",proto:!0,forced:o("trim")},{trim:function(){return i(this)}})},"4b8b":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"4d20":function(t,e,n){var r=n("1917"),i=n("10db"),o=n("6ca1"),a=n("3397"),s=n("9c0e"),l=n("faf5"),u=Object.getOwnPropertyDescriptor;e.f=n("0bad")?u:function(t,e){if(t=o(t),e=a(e,!0),l)try{return u(t,e)}catch(n){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},"4d63":function(t,e,n){var r=n("83ab"),i=n("da84"),o=n("e330"),a=n("94ca"),s=n("7156"),l=n("9112"),u=n("241c").f,c=n("3a9b"),h=n("44e7"),f=n("577e"),p=n("90d8"),d=n("9f7f"),g=n("aeb0"),v=n("cb2d"),y=n("d039"),m=n("1a2d"),b=n("69f3").enforce,x=n("2626"),_=n("b622"),w=n("fce3"),S=n("107c"),O=_("match"),M=i.RegExp,A=M.prototype,I=i.SyntaxError,T=o(A.exec),C=o("".charAt),D=o("".replace),k=o("".indexOf),L=o("".slice),j=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,P=/a/g,E=/a/g,R=new M(P)!==P,N=d.MISSED_STICKY,z=d.UNSUPPORTED_Y,B=r&&(!R||N||w||S||y((function(){return E[O]=!1,M(P)!=P||M(E)==E||"/a/i"!=M(P,"i")}))),V=function(t){for(var e,n=t.length,r=0,i="",o=!1;r<=n;r++)e=C(t,r),"\\"!==e?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),i+=e):i+="[\\s\\S]":i+=e+C(t,++r);return i},F=function(t){for(var e,n=t.length,r=0,i="",o=[],a={},s=!1,l=!1,u=0,c="";r<=n;r++){if(e=C(t,r),"\\"===e)e+=C(t,++r);else if("]"===e)s=!1;else if(!s)switch(!0){case"["===e:s=!0;break;case"("===e:T(j,L(t,r+1))&&(r+=2,l=!0),i+=e,u++;continue;case">"===e&&l:if(""===c||m(a,c))throw new I("Invalid capture group name");a[c]=!0,o[o.length]=[c,u],l=!1,c="";continue}l?c+=e:i+=e}return[i,o]};if(a("RegExp",B)){for(var G=function(t,e){var n,r,i,o,a,u,d=c(A,this),g=h(t),v=void 0===e,y=[],m=t;if(!d&&g&&v&&t.constructor===G)return t;if((g||c(A,t))&&(t=t.source,v&&(e=p(m))),t=void 0===t?"":f(t),e=void 0===e?"":f(e),m=t,w&&"dotAll"in P&&(r=!!e&&k(e,"s")>-1,r&&(e=D(e,/s/g,""))),n=e,N&&"sticky"in P&&(i=!!e&&k(e,"y")>-1,i&&z&&(e=D(e,/y/g,""))),S&&(o=F(t),t=o[0],y=o[1]),a=s(M(t,e),d?this:A,G),(r||i||y.length)&&(u=b(a),r&&(u.dotAll=!0,u.raw=G(V(t),n)),i&&(u.sticky=!0),y.length&&(u.groups=y)),t!==m)try{l(a,"source",""===m?"(?:)":m)}catch(x){}return a},H=u(M),W=0;H.length>W;)g(G,M,H[W++]);A.constructor=G,G.prototype=A,v(i,"RegExp",G,{constructor:!0})}x("RegExp")},"4d64":function(t,e,n){var r=n("fc6a"),i=n("23cb"),o=n("07fa"),a=function(t){return function(e,n,a){var s,l=r(e),u=o(l),c=i(a,u);if(t&&n!=n){while(u>c)if(s=l[c++],s!=s)return!0}else for(;u>c;c++)if((t||c in l)&&l[c]===n)return t||c||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4d88":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"4dae":function(t,e,n){var r=n("23cb"),i=n("07fa"),o=n("8418"),a=Array,s=Math.max;t.exports=function(t,e,n){for(var l=i(t),u=r(e,l),c=r(void 0===n?l:n,l),h=a(s(c-u,0)),f=0;u1?arguments[1]:void 0)}})},"4df4":function(t,e,n){"use strict";var r=n("0366"),i=n("c65b"),o=n("7b0b"),a=n("9bdd"),s=n("e95a"),l=n("68ee"),u=n("07fa"),c=n("8418"),h=n("9a1f"),f=n("35a1"),p=Array;t.exports=function(t){var e=o(t),n=l(this),d=arguments.length,g=d>1?arguments[1]:void 0,v=void 0!==g;v&&(g=r(g,d>2?arguments[2]:void 0));var y,m,b,x,_,w,S=f(e),O=0;if(!S||this===p&&s(S))for(y=u(e),m=n?new this(y):p(y);y>O;O++)w=v?g(e[O],O):e[O],c(m,O,w);else for(x=h(e,S),_=x.next,m=n?new this:[];!(b=i(_,x)).done;O++)w=v?a(x,g,[b.value,O],!0):b.value,c(m,O,w);return m.length=O,m}},"4e71":function(t,e,n){n("e198")("observable")},"4ebc":function(t,e,n){var r=n("4d88");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"4fad":function(t,e,n){var r=n("d039"),i=n("861d"),o=n("c6b6"),a=n("d86b"),s=Object.isExtensible,l=r((function(){s(1)}));t.exports=l||a?function(t){return!!i(t)&&((!a||"ArrayBuffer"!=o(t))&&(!s||s(t)))}:s},5087:function(t,e,n){var r=n("68ee"),i=n("0d51"),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a constructor")}},"50c4":function(t,e,n){var r=n("5926"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},"511f":function(t,e,n){n("0b99"),n("658f"),t.exports=n("fcd4").f("iterator")},"512c":function(t,e,n){var r=n("ef08"),i=n("5524"),o=n("9c0c"),a=n("051b"),s=n("9c0e"),l="prototype",u=function(t,e,n){var c,h,f,p=t&u.F,d=t&u.G,g=t&u.S,v=t&u.P,y=t&u.B,m=t&u.W,b=d?i:i[e]||(i[e]={}),x=b[l],_=d?r:g?r[e]:(r[e]||{})[l];for(c in d&&(n=e),n)h=!p&&_&&void 0!==_[c],h&&s(b,c)||(f=h?_[c]:n[c],b[c]=d&&"function"!=typeof _[c]?n[c]:y&&h?o(f,r):m&&_[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[l]=t[l],e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((b.virtual||(b.virtual={}))[c]=f,t&u.R&&x&&!x[c]&&a(x,c,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},"51eb":function(t,e,n){"use strict";var r=n("825a"),i=n("485a"),o=TypeError;t.exports=function(t){if(r(this),"string"===t||"default"===t)t="string";else if("number"!==t)throw o("Incorrect hint");return i(this,t)}},5319:function(t,e,n){"use strict";var r=n("2ba4"),i=n("c65b"),o=n("e330"),a=n("d784"),s=n("d039"),l=n("825a"),u=n("1626"),c=n("7234"),h=n("5926"),f=n("50c4"),p=n("577e"),d=n("1d80"),g=n("8aa5"),v=n("dc4a"),y=n("0cb2"),m=n("14c3"),b=n("b622"),x=b("replace"),_=Math.max,w=Math.min,S=o([].concat),O=o([].push),M=o("".indexOf),A=o("".slice),I=function(t){return void 0===t?t:String(t)},T=function(){return"$0"==="a".replace(/./,"$0")}(),C=function(){return!!/./[x]&&""===/./[x]("a","$0")}(),D=!s((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$
")}));a("replace",(function(t,e,n){var o=C?"$":"$0";return[function(t,n){var r=d(this),o=c(t)?void 0:v(t,x);return o?i(o,t,r,n):i(e,p(r),t,n)},function(t,i){var a=l(this),s=p(t);if("string"==typeof i&&-1===M(i,o)&&-1===M(i,"$<")){var c=n(e,a,s,i);if(c.done)return c.value}var d=u(i);d||(i=p(i));var v=a.global;if(v){var b=a.unicode;a.lastIndex=0}var x=[];while(1){var T=m(a,s);if(null===T)break;if(O(x,T),!v)break;var C=p(T[0]);""===C&&(a.lastIndex=g(s,f(a.lastIndex),b))}for(var D="",k=0,L=0;L=k&&(D+=A(s,k,P)+B,k=P+j.length)}return D+A(s,k)}]}),!D||!T||C)},"53ca":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0");function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}},5524:function(t,e){var n=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},5530:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));n("b64b"),n("a4d3"),n("4de4"),n("d3b7"),n("e439"),n("14d9"),n("159b"),n("dbb4");var r=n("ade3");function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;et?u():!0!==e&&(i=setTimeout(r?c:u,void 0===r?t-s:t))}return"boolean"!==typeof e&&(r=n,n=e,e=void 0),a}},"59ed":function(t,e,n){var r=n("1626"),i=n("0d51"),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a function")}},"5a34":function(t,e,n){var r=n("44e7"),i=TypeError;t.exports=function(t){if(r(t))throw i("The method doesn't accept regular expressions");return t}},"5a47":function(t,e,n){var r=n("23e7"),i=n("04f8"),o=n("d039"),a=n("7418"),s=n("7b0b"),l=!i||o((function(){a.f(1)}));r({target:"Object",stat:!0,forced:l},{getOwnPropertySymbols:function(t){var e=a.f;return e?e(s(t)):[]}})},"5a94":function(t,e,n){var r=n("b367")("keys"),i=n("8b1a");t.exports=function(t){return r[t]||(r[t]=i(t))}},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5e77":function(t,e,n){var r=n("83ab"),i=n("1a2d"),o=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=i(o,"name"),l=s&&"something"===function(){}.name,u=s&&(!r||r&&a(o,"name").configurable);t.exports={EXISTS:s,PROPER:l,CONFIGURABLE:u}},"5e7e":function(t,e,n){"use strict";var r,i,o,a,s=n("23e7"),l=n("c430"),u=n("605d"),c=n("da84"),h=n("c65b"),f=n("cb2d"),p=n("d2bb"),d=n("d44e"),g=n("2626"),v=n("59ed"),y=n("1626"),m=n("861d"),b=n("19aa"),x=n("4840"),_=n("2cf4").set,w=n("b575"),S=n("44de"),O=n("e667"),M=n("01b4"),A=n("69f3"),I=n("d256"),T=n("4738"),C=n("f069"),D="Promise",k=T.CONSTRUCTOR,L=T.REJECTION_EVENT,j=T.SUBCLASSING,P=A.getterFor(D),E=A.set,R=I&&I.prototype,N=I,z=R,B=c.TypeError,V=c.document,F=c.process,G=C.f,H=G,W=!!(V&&V.createEvent&&c.dispatchEvent),U="unhandledrejection",Y="rejectionhandled",$=0,X=1,q=2,Z=1,K=2,J=function(t){var e;return!(!m(t)||!y(e=t.then))&&e},Q=function(t,e){var n,r,i,o=e.value,a=e.state==X,s=a?t.ok:t.fail,l=t.resolve,u=t.reject,c=t.domain;try{s?(a||(e.rejection===K&&it(e),e.rejection=Z),!0===s?n=o:(c&&c.enter(),n=s(o),c&&(c.exit(),i=!0)),n===t.promise?u(B("Promise-chain cycle")):(r=J(n))?h(r,n,l,u):l(n)):u(o)}catch(f){c&&!i&&c.exit(),u(f)}},tt=function(t,e){t.notified||(t.notified=!0,w((function(){var n,r=t.reactions;while(n=r.get())Q(n,t);t.notified=!1,e&&!t.rejection&&nt(t)})))},et=function(t,e,n){var r,i;W?(r=V.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),c.dispatchEvent(r)):r={promise:e,reason:n},!L&&(i=c["on"+t])?i(r):t===U&&S("Unhandled promise rejection",n)},nt=function(t){h(_,c,(function(){var e,n=t.facade,r=t.value,i=rt(t);if(i&&(e=O((function(){u?F.emit("unhandledRejection",r,n):et(U,n,r)})),t.rejection=u||rt(t)?K:Z,e.error))throw e.value}))},rt=function(t){return t.rejection!==Z&&!t.parent},it=function(t){h(_,c,(function(){var e=t.facade;u?F.emit("rejectionHandled",e):et(Y,e,t.value)}))},ot=function(t,e,n){return function(r){t(e,r,n)}},at=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=q,tt(t,!0))},st=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw B("Promise can't be resolved itself");var r=J(e);r?w((function(){var n={done:!1};try{h(r,e,ot(st,n,t),ot(at,n,t))}catch(i){at(n,i,t)}})):(t.value=e,t.state=X,tt(t,!1))}catch(i){at({done:!1},i,t)}}};if(k&&(N=function(t){b(this,z),v(t),h(r,this);var e=P(this);try{t(ot(st,e),ot(at,e))}catch(n){at(e,n)}},z=N.prototype,r=function(t){E(this,{type:D,done:!1,notified:!1,parent:!1,reactions:new M,rejection:!1,state:$,value:void 0})},r.prototype=f(z,"then",(function(t,e){var n=P(this),r=G(x(this,N));return n.parent=!0,r.ok=!y(t)||t,r.fail=y(e)&&e,r.domain=u?F.domain:void 0,n.state==$?n.reactions.add(r):w((function(){Q(r,n)})),r.promise})),i=function(){var t=new r,e=P(t);this.promise=t,this.resolve=ot(st,e),this.reject=ot(at,e)},C.f=G=function(t){return t===N||t===o?new i(t):H(t)},!l&&y(I)&&R!==Object.prototype)){a=R.then,j||f(R,"then",(function(t,e){var n=this;return new N((function(t,e){h(a,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete R.constructor}catch(lt){}p&&p(R,z)}s({global:!0,constructor:!0,wrap:!0,forced:k},{Promise:N}),d(N,D,!1,!0),g(D)},"5eed":function(t,e,n){var r=n("d256"),i=n("1c7e"),o=n("4738").CONSTRUCTOR;t.exports=o||!i((function(t){r.all(t).then(void 0,(function(){}))}))},"605d":function(t,e,n){(function(e){var r=n("c6b6");t.exports="undefined"!=typeof e&&"process"==r(e)}).call(this,n("4362"))},6062:function(t,e,n){n("1c59")},6069:function(t,e,n){var r=n("6c59"),i=n("605d");t.exports=!r&&!i&&"object"==typeof window&&"object"==typeof document},"60da":function(t,e,n){"use strict";var r=n("83ab"),i=n("e330"),o=n("c65b"),a=n("d039"),s=n("df75"),l=n("7418"),u=n("d1e7"),c=n("7b0b"),h=n("44ad"),f=Object.assign,p=Object.defineProperty,d=i([].concat);t.exports=!f||a((function(){if(r&&1!==f({b:1},f(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=f({},t)[n]||s(f({},e)).join("")!=i}))?function(t,e){var n=c(t),i=arguments.length,a=1,f=l.f,p=u.f;while(i>a){var g,v=h(arguments[a++]),y=f?d(s(v),f(v)):s(v),m=y.length,b=0;while(m>b)g=y[b++],r&&!o(p,v,g)||(n[g]=v[g])}return n}:f},6374:function(t,e,n){var r=n("da84"),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},6438:function(t,e,n){var r=n("03d6"),i=n("9742").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},6547:function(t,e,n){var r=n("e330"),i=n("5926"),o=n("577e"),a=n("1d80"),s=r("".charAt),l=r("".charCodeAt),u=r("".slice),c=function(t){return function(e,n){var r,c,h=o(a(e)),f=i(n),p=h.length;return f<0||f>=p?t?"":void 0:(r=l(h,f),r<55296||r>56319||f+1===p||(c=l(h,f+1))<56320||c>57343?t?s(h,f):r:t?u(h,f,f+2):c-56320+(r-55296<<10)+65536)}};t.exports={codeAt:c(!1),charAt:c(!0)}},6566:function(t,e,n){"use strict";var r=n("7c73"),i=n("edd0"),o=n("6964"),a=n("0366"),s=n("19aa"),l=n("7234"),u=n("2266"),c=n("c6d2"),h=n("4754"),f=n("2626"),p=n("83ab"),d=n("f183").fastKey,g=n("69f3"),v=g.set,y=g.getterFor;t.exports={getConstructor:function(t,e,n,c){var h=t((function(t,i){s(t,f),v(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),p||(t.size=0),l(i)||u(i,t[c],{that:t,AS_ENTRIES:n})})),f=h.prototype,g=y(e),m=function(t,e,n){var r,i,o=g(t),a=b(t,e);return a?a.value=n:(o.last=a={index:i=d(e,!0),key:e,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=a),r&&(r.next=a),p?o.size++:t.size++,"F"!==i&&(o.index[i]=a)),t},b=function(t,e){var n,r=g(t),i=d(e);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==e)return n};return o(f,{clear:function(){var t=this,e=g(t),n=e.index,r=e.first;while(r)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete n[r.index],r=r.next;e.first=e.last=void 0,p?e.size=0:t.size=0},delete:function(t){var e=this,n=g(e),r=b(e,t);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),p?n.size--:e.size--}return!!r},forEach:function(t){var e,n=g(this),r=a(t,arguments.length>1?arguments[1]:void 0);while(e=e?e.next:n.first){r(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!b(this,t)}}),o(f,n?{get:function(t){var e=b(this,t);return e&&e.value},set:function(t,e){return m(this,0===t?0:t,e)}}:{add:function(t){return m(this,t=0===t?0:t,t)}}),p&&i(f,"size",{configurable:!0,get:function(){return g(this).size}}),h},setStrong:function(t,e,n){var r=e+" Iterator",i=y(e),o=y(r);c(t,e,(function(t,e){v(this,{type:r,target:t,state:i(t),kind:e,last:void 0})}),(function(){var t=o(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?h("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,h(void 0,!0))}),n?"entries":"values",!n,!0),f(e)}}},"658f":function(t,e,n){n("6858");for(var r=n("ef08"),i=n("051b"),o=n("8a0d"),a=n("cc15")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},"68ee":function(t,e,n){var r=n("e330"),i=n("d039"),o=n("1626"),a=n("f5df"),s=n("d066"),l=n("8925"),u=function(){},c=[],h=s("Reflect","construct"),f=/^\s*(?:class|function)\b/,p=r(f.exec),d=!f.exec(u),g=function(t){if(!o(t))return!1;try{return h(u,c,t),!0}catch(e){return!1}},v=function(t){if(!o(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(f,l(t))}catch(e){return!0}};v.sham=!0,t.exports=!h||i((function(){var t;return g(g.call)||!g(Object)||!g((function(){t=!0}))||t}))?v:g},"693d":function(t,e,n){"use strict";var r=n("ef08"),i=n("9c0e"),o=n("0bad"),a=n("512c"),s=n("ba01"),l=n("e34a").KEY,u=n("4b8b"),c=n("b367"),h=n("92f0"),f=n("8b1a"),p=n("cc15"),d=n("fcd4"),g=n("e198"),v=n("0ae2"),y=n("4ebc"),m=n("77e9"),b=n("7a41"),x=n("0983"),_=n("6ca1"),w=n("3397"),S=n("10db"),O=n("6f4f"),M=n("1836"),A=n("4d20"),I=n("fed5"),T=n("1a14"),C=n("9876"),D=A.f,k=T.f,L=M.f,j=r.Symbol,P=r.JSON,E=P&&P.stringify,R="prototype",N=p("_hidden"),z=p("toPrimitive"),B={}.propertyIsEnumerable,V=c("symbol-registry"),F=c("symbols"),G=c("op-symbols"),H=Object[R],W="function"==typeof j&&!!I.f,U=r.QObject,Y=!U||!U[R]||!U[R].findChild,$=o&&u((function(){return 7!=O(k({},"a",{get:function(){return k(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=D(H,e);r&&delete H[e],k(t,e,n),r&&t!==H&&k(H,e,r)}:k,X=function(t){var e=F[t]=O(j[R]);return e._k=t,e},q=W&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},Z=function(t,e,n){return t===H&&Z(G,e,n),m(t),e=w(e,!0),m(n),i(F,e)?(n.enumerable?(i(t,N)&&t[N][e]&&(t[N][e]=!1),n=O(n,{enumerable:S(0,!1)})):(i(t,N)||k(t,N,S(1,{})),t[N][e]=!0),$(t,e,n)):k(t,e,n)},K=function(t,e){m(t);var n,r=v(e=_(e)),i=0,o=r.length;while(o>i)Z(t,n=r[i++],e[n]);return t},J=function(t,e){return void 0===e?O(t):K(O(t),e)},Q=function(t){var e=B.call(this,t=w(t,!0));return!(this===H&&i(F,t)&&!i(G,t))&&(!(e||!i(this,t)||!i(F,t)||i(this,N)&&this[N][t])||e)},tt=function(t,e){if(t=_(t),e=w(e,!0),t!==H||!i(F,e)||i(G,e)){var n=D(t,e);return!n||!i(F,e)||i(t,N)&&t[N][e]||(n.enumerable=!0),n}},et=function(t){var e,n=L(_(t)),r=[],o=0;while(n.length>o)i(F,e=n[o++])||e==N||e==l||r.push(e);return r},nt=function(t){var e,n=t===H,r=L(n?G:_(t)),o=[],a=0;while(r.length>a)!i(F,e=r[a++])||n&&!i(H,e)||o.push(F[e]);return o};W||(j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===H&&e.call(G,n),i(this,N)&&i(this[N],t)&&(this[N][t]=!1),$(this,t,S(1,n))};return o&&Y&&$(H,t,{configurable:!0,set:e}),X(t)},s(j[R],"toString",(function(){return this._k})),A.f=tt,T.f=Z,n("6438").f=M.f=et,n("1917").f=Q,I.f=nt,o&&!n("e444")&&s(H,"propertyIsEnumerable",Q,!0),d.f=function(t){return X(p(t))}),a(a.G+a.W+a.F*!W,{Symbol:j});for(var rt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),it=0;rt.length>it;)p(rt[it++]);for(var ot=C(p.store),at=0;ot.length>at;)g(ot[at++]);a(a.S+a.F*!W,"Symbol",{for:function(t){return i(V,t+="")?V[t]:V[t]=j(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in V)if(V[e]===t)return e},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),a(a.S+a.F*!W,"Object",{create:J,defineProperty:Z,defineProperties:K,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var st=u((function(){I.f(1)}));a(a.S+a.F*st,"Object",{getOwnPropertySymbols:function(t){return I.f(x(t))}}),P&&a(a.S+a.F*(!W||u((function(){var t=j();return"[null]"!=E([t])||"{}"!=E({a:t})||"{}"!=E(Object(t))}))),"JSON",{stringify:function(t){var e,n,r=[t],i=1;while(arguments.length>i)r.push(arguments[i++]);if(n=e=r[1],(b(e)||void 0!==t)&&!q(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),r[1]=e,E.apply(P,r)}}),j[R][z]||n("051b")(j[R],z,j[R].valueOf),h(j,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},6964:function(t,e,n){var r=n("cb2d");t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},"69f3":function(t,e,n){var r,i,o,a=n("cdce"),s=n("da84"),l=n("861d"),u=n("9112"),c=n("1a2d"),h=n("c6cd"),f=n("f772"),p=n("d012"),d="Object already initialized",g=s.TypeError,v=s.WeakMap,y=function(t){return o(t)?i(t):r(t,{})},m=function(t){return function(e){var n;if(!l(e)||(n=i(e)).type!==t)throw g("Incompatible receiver, "+t+" required");return n}};if(a||h.state){var b=h.state||(h.state=new v);b.get=b.get,b.has=b.has,b.set=b.set,r=function(t,e){if(b.has(t))throw g(d);return e.facade=t,b.set(t,e),e},i=function(t){return b.get(t)||{}},o=function(t){return b.has(t)}}else{var x=f("state");p[x]=!0,r=function(t,e){if(c(t,x))throw g(d);return e.facade=t,u(t,x,e),e},i=function(t){return c(t,x)?t[x]:{}},o=function(t){return c(t,x)}}t.exports={set:r,get:i,has:o,enforce:y,getterFor:m}},"6c59":function(t,e){t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},"6ca1":function(t,e,n){var r=n("9fbb"),i=n("c901");t.exports=function(t){return r(i(t))}},"6d61":function(t,e,n){"use strict";var r=n("23e7"),i=n("da84"),o=n("e330"),a=n("94ca"),s=n("cb2d"),l=n("f183"),u=n("2266"),c=n("19aa"),h=n("1626"),f=n("7234"),p=n("861d"),d=n("d039"),g=n("1c7e"),v=n("d44e"),y=n("7156");t.exports=function(t,e,n){var m=-1!==t.indexOf("Map"),b=-1!==t.indexOf("Weak"),x=m?"set":"add",_=i[t],w=_&&_.prototype,S=_,O={},M=function(t){var e=o(w[t]);s(w,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(b&&!p(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return b&&!p(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(b&&!p(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})},A=a(t,!h(_)||!(b||w.forEach&&!d((function(){(new _).entries().next()}))));if(A)S=n.getConstructor(e,t,m,x),l.enable();else if(a(t,!0)){var I=new S,T=I[x](b?{}:-0,1)!=I,C=d((function(){I.has(1)})),D=g((function(t){new _(t)})),k=!b&&d((function(){var t=new _,e=5;while(e--)t[x](e,e);return!t.has(-0)}));D||(S=e((function(t,e){c(t,w);var n=y(new _,t,S);return f(e)||u(e,n[x],{that:n,AS_ENTRIES:m}),n})),S.prototype=w,w.constructor=S),(C||k)&&(M("delete"),M("has"),m&&M("get")),(k||T)&&M(x),b&&w.clear&&delete w.clear}return O[t]=S,r({global:!0,constructor:!0,forced:S!=_},O),v(S,t),b||n.setStrong(S,t,m),S}},"6d8b":function(t,e,n){"use strict";n.r(e),n.d(e,"guid",(function(){return v})),n.d(e,"logError",(function(){return y})),n.d(e,"clone",(function(){return m})),n.d(e,"merge",(function(){return b})),n.d(e,"mergeAll",(function(){return x})),n.d(e,"extend",(function(){return _})),n.d(e,"defaults",(function(){return w})),n.d(e,"createCanvas",(function(){return S})),n.d(e,"indexOf",(function(){return O})),n.d(e,"inherits",(function(){return M})),n.d(e,"mixin",(function(){return A})),n.d(e,"isArrayLike",(function(){return I})),n.d(e,"each",(function(){return T})),n.d(e,"map",(function(){return C})),n.d(e,"reduce",(function(){return D})),n.d(e,"filter",(function(){return k})),n.d(e,"find",(function(){return L})),n.d(e,"keys",(function(){return j})),n.d(e,"bind",(function(){return E})),n.d(e,"curry",(function(){return R})),n.d(e,"isArray",(function(){return N})),n.d(e,"isFunction",(function(){return z})),n.d(e,"isString",(function(){return B})),n.d(e,"isStringSafe",(function(){return V})),n.d(e,"isNumber",(function(){return F})),n.d(e,"isObject",(function(){return G})),n.d(e,"isBuiltInObject",(function(){return H})),n.d(e,"isTypedArray",(function(){return W})),n.d(e,"isDom",(function(){return U})),n.d(e,"isGradientObject",(function(){return Y})),n.d(e,"isImagePatternObject",(function(){return $})),n.d(e,"isRegExp",(function(){return X})),n.d(e,"eqNaN",(function(){return q})),n.d(e,"retrieve",(function(){return Z})),n.d(e,"retrieve2",(function(){return K})),n.d(e,"retrieve3",(function(){return J})),n.d(e,"slice",(function(){return Q})),n.d(e,"normalizeCssArray",(function(){return tt})),n.d(e,"assert",(function(){return et})),n.d(e,"trim",(function(){return nt})),n.d(e,"setAsPrimitive",(function(){return it})),n.d(e,"isPrimitive",(function(){return ot})),n.d(e,"HashMap",(function(){return ut})),n.d(e,"createHashMap",(function(){return ct})),n.d(e,"concatArray",(function(){return ht})),n.d(e,"createObject",(function(){return ft})),n.d(e,"disableUserSelect",(function(){return pt})),n.d(e,"hasOwn",(function(){return dt})),n.d(e,"noop",(function(){return gt})),n.d(e,"RADIAN_TO_DEGREE",(function(){return vt}));var r=n("726e"),i=D(["Function","RegExp","Date","Error","CanvasGradient","CanvasPattern","Image","Canvas"],(function(t,e){return t["[object "+e+"]"]=!0,t}),{}),o=D(["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64"],(function(t,e){return t["[object "+e+"Array]"]=!0,t}),{}),a=Object.prototype.toString,s=Array.prototype,l=s.forEach,u=s.filter,c=s.slice,h=s.map,f=function(){}.constructor,p=f?f.prototype:null,d="__proto__",g=2311;function v(){return g++}function y(){for(var t=[],e=0;e0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e,r=u.some((function(t){return!!~n.indexOf(t)}));r&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),f=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),T="undefined"!==typeof WeakMap?new WeakMap:new n,C=function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=h.getInstance(),r=new I(e,n,this);T.set(this,r)}return t}();["observe","unobserve","disconnect"].forEach((function(t){C.prototype[t]=function(){var e;return(e=T.get(this))[t].apply(e,arguments)}}));var D=function(){return"undefined"!==typeof i.ResizeObserver?i.ResizeObserver:C}();e["default"]=D}.call(this,n("24aa"))},"6f19":function(t,e,n){var r=n("9112"),i=n("0d26"),o=n("b980"),a=Error.captureStackTrace;t.exports=function(t,e,n,s){o&&(a?a(t,e):r(t,"stack",i(n,s)))}},"6f4f":function(t,e,n){var r=n("77e9"),i=n("85e7"),o=n("9742"),a=n("5a94")("IE_PROTO"),s=function(){},l="prototype",u=function(){var t,e=n("05f5")("iframe"),r=o.length,i="<",a=">";e.style.display="none",n("9141").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(i+"script"+a+"document.F=Object"+i+"/script"+a),t.close(),u=t.F;while(r--)delete u[l][o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[l]=r(t),n=new s,s[l]=null,n[a]=t):n=u(),void 0===e?n:i(n,e)}},7149:function(t,e,n){"use strict";var r=n("23e7"),i=n("d066"),o=n("c430"),a=n("d256"),s=n("4738").CONSTRUCTOR,l=n("cdf9"),u=i("Promise"),c=o&&!s;r({target:"Promise",stat:!0,forced:o||s},{resolve:function(t){return l(c&&this===u?a:this,t)}})},7156:function(t,e,n){var r=n("1626"),i=n("861d"),o=n("d2bb");t.exports=function(t,e,n){var a,s;return o&&r(a=e.constructor)&&a!==n&&i(s=a.prototype)&&s!==n.prototype&&o(t,s),t}},7234:function(t,e){t.exports=function(t){return null===t||void 0===t}},"726e":function(t,e,n){"use strict";n.d(e,"c",(function(){return r})),n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return o})),n.d(e,"d",(function(){return h})),n.d(e,"e",(function(){return f}));var r=12,i="sans-serif",o=r+"px "+i,a=20,s=100,l="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function u(t){var e={};if("undefined"===typeof JSON)return e;for(var n=0;n=0)u=l*n.length;else for(var f=0;f{a[t]={value:t}}),Object.defineProperties(i,a),Object.defineProperty(o,"isAxiosError",{value:!0}),i.from=(t,e,n,a,s,l)=>{const u=Object.create(o);return r["a"].toFlatObject(t,u,(function(t){return t!==Error.prototype}),t=>"isAxiosError"!==t),i.call(u,t.message,e,n,a,s),u.cause=t,u.name=t.name,l&&Object.assign(u,l),u},e["a"]=i},"7a29":function(t,e,n){"use strict";(function(t){n.d(e,"p",(function(){return s})),n.d(e,"j",(function(){return u})),n.d(e,"q",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"a",(function(){return p})),n.d(e,"b",(function(){return d})),n.d(e,"i",(function(){return g})),n.d(e,"h",(function(){return v})),n.d(e,"l",(function(){return y})),n.d(e,"n",(function(){return b})),n.d(e,"m",(function(){return x})),n.d(e,"o",(function(){return _})),n.d(e,"k",(function(){return w})),n.d(e,"d",(function(){return S})),n.d(e,"f",(function(){return O})),n.d(e,"g",(function(){return M})),n.d(e,"c",(function(){return A}));var r=n("6d8b"),i=n("41ef"),o=n("22d1"),a=Math.round;function s(t){var e;if(t&&"transparent"!==t){if("string"===typeof t&&t.indexOf("rgba")>-1){var n=Object(i["parse"])(t);n&&(t="rgb("+n[0]+","+n[1]+","+n[2]+")",e=n[3])}}else t="none";return{color:t,opacity:null==e?1:e}}var l=1e-4;function u(t){return t-l}function c(t){return a(1e3*t)/1e3}function h(t){return a(1e4*t)/1e4}function f(t){return"matrix("+c(t[0])+","+c(t[1])+","+c(t[2])+","+c(t[3])+","+h(t[4])+","+h(t[5])+")"}var p={left:"start",right:"end",center:"middle",middle:"middle"};function d(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}function g(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}function v(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}function y(t){return t&&!!t.image}function m(t){return t&&!!t.svgElement}function b(t){return y(t)||m(t)}function x(t){return"linear"===t.type}function _(t){return"radial"===t.type}function w(t){return t&&("linear"===t.type||"radial"===t.type)}function S(t){return"url(#"+t+")"}function O(t){var e=t.getGlobalScale(),n=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function M(t){var e=t.x||0,n=t.y||0,i=(t.rotation||0)*r["RADIAN_TO_DEGREE"],o=Object(r["retrieve2"])(t.scaleX,1),s=Object(r["retrieve2"])(t.scaleY,1),l=t.skewX||0,u=t.skewY||0,c=[];return(e||n)&&c.push("translate("+e+"px,"+n+"px)"),i&&c.push("rotate("+i+")"),1===o&&1===s||c.push("scale("+o+","+s+")"),(l||u)&&c.push("skew("+a(l*r["RADIAN_TO_DEGREE"])+"deg, "+a(u*r["RADIAN_TO_DEGREE"])+"deg)"),c.join(" ")}var A=function(){return o["a"].hasGlobalWindow&&Object(r["isFunction"])(window.btoa)?function(t){return window.btoa(unescape(encodeURIComponent(t)))}:"undefined"!==typeof t?function(e){return t.from(e).toString("base64")}:function(t){return null}}()}).call(this,n("b639").Buffer)},"7a41":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},"7b0b":function(t,e,n){var r=n("1d80"),i=Object;t.exports=function(t){return i(r(t))}},"7b3e":function(t,e,n){"use strict";var r,i=n("a3de"); -/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function o(t,e){if(!i.canUseDOM||e&&!("addEventListener"in document))return!1;var n="on"+t,o=n in document;if(!o){var a=document.createElement("div");a.setAttribute(n,"return;"),o="function"===typeof a[n]}return!o&&r&&"wheel"===t&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}i.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),t.exports=o},"7c73":function(t,e,n){var r,i=n("825a"),o=n("37e8"),a=n("7839"),s=n("d012"),l=n("1be4"),u=n("cc12"),c=n("f772"),h=">",f="<",p="prototype",d="script",g=c("IE_PROTO"),v=function(){},y=function(t){return f+d+h+t+f+"/"+d+h},m=function(t){t.write(y("")),t.close();var e=t.parentWindow.Object;return t=null,e},b=function(){var t,e=u("iframe"),n="java"+d+":";return e.style.display="none",l.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(y("document.F=Object")),t.close(),t.F},x=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}x="undefined"!=typeof document?document.domain&&r?m(r):b():m(r);var t=a.length;while(t--)delete x[p][a[t]];return x()};s[g]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(v[p]=i(t),n=new v,v[p]=null,n[g]=t):n=x(),void 0===e?n:o.f(n,e)}},"7db0":function(t,e,n){"use strict";var r=n("23e7"),i=n("b727").find,o=n("44d2"),a="find",s=!0;a in[]&&Array(1)[a]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(a)},"7ebd":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},8119:function(t,e,n){n("693d"),n("dfe5"),n("301c"),n("4e71"),t.exports=n("5524").Symbol},8172:function(t,e,n){var r=n("e065"),i=n("57b9");r("toPrimitive"),i()},"825a":function(t,e,n){var r=n("861d"),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not an object")}},"83ab":function(t,e,n){var r=n("d039");t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var r=n("a04b"),i=n("9bf2"),o=n("5c6c");t.exports=function(t,e,n){var a=r(e);a in t?i.f(t,a,o(0,n)):t[a]=n}},"85e7":function(t,e,n){var r=n("1a14"),i=n("77e9"),o=n("9876");t.exports=n("0bad")?Object.defineProperties:function(t,e){i(t);var n,a=o(e),s=a.length,l=0;while(s>l)r.f(t,n=a[l++],e[n]);return t}},"861d":function(t,e,n){var r=n("1626"),i=n("8ea1"),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===o}:function(t){return"object"==typeof t?null!==t:r(t)}},8925:function(t,e,n){var r=n("e330"),i=n("1626"),o=n("c6cd"),a=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return a(t)}),t.exports=o.inspectSource},"8a0d":function(t,e){t.exports={}},"8aa5":function(t,e,n){"use strict";var r=n("6547").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},"8b1a":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"8c4f":function(t,e,n){"use strict"; -/*! - * vue-router v3.0.2 - * (c) 2018 Evan You - * @license MIT - */function r(t,e){0}function i(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function o(t,e){for(var n in e)t[n]=e[n];return t}var a={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,i=e.parent,a=e.data;a.routerView=!0;var l=i.$createElement,u=n.name,c=i.$route,h=i._routerViewCache||(i._routerViewCache={}),f=0,p=!1;while(i&&i._routerRoot!==i)i.$vnode&&i.$vnode.data.routerView&&f++,i._inactive&&(p=!0),i=i.$parent;if(a.routerViewDepth=f,p)return l(h[u],a,r);var d=c.matched[f];if(!d)return h[u]=null,l();var g=h[u]=d.components[u];a.registerRouteInstance=function(t,e){var n=d.instances[u];(e&&n!==t||!e&&n===t)&&(d.instances[u]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){d.instances[u]=e.componentInstance};var v=a.props=s(c,d.props&&d.props[u]);if(v){v=a.props=o({},v);var y=a.attrs=a.attrs||{};for(var m in v)g.props&&m in g.props||(y[m]=v[m],delete v[m])}return l(g,a,r)}};function s(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}var l=/[!'()*]/g,u=function(t){return"%"+t.charCodeAt(0).toString(16)},c=/%2C/g,h=function(t){return encodeURIComponent(t).replace(l,u).replace(c,",")},f=decodeURIComponent;function p(t,e,n){void 0===e&&(e={});var r,i=n||d;try{r=i(t||"")}catch(a){r={}}for(var o in e)r[o]=e[o];return r}function d(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=f(n.shift()),i=n.length>0?f(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]})),e):e}function g(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return h(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(h(e)):r.push(h(e)+"="+h(t)))})),r.join("&")}return h(e)+"="+h(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var v=/\/?$/;function y(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=m(o)}catch(s){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:_(e,i),matched:t?x(t):[]};return n&&(a.redirectedFrom=_(n,i)),Object.freeze(a)}function m(t){if(Array.isArray(t))return t.map(m);if(t&&"object"===typeof t){var e={};for(var n in t)e[n]=m(t[n]);return e}return t}var b=y(null,{path:"/"});function x(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}function _(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;void 0===i&&(i="");var o=e||g;return(n||"/")+o(r)+i}function w(t,e){return e===b?t===e:!!e&&(t.path&&e.path?t.path.replace(v,"")===e.path.replace(v,"")&&t.hash===e.hash&&S(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&S(t.query,e.query)&&S(t.params,e.params)))}function S(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every((function(n){var r=t[n],i=e[n];return"object"===typeof r&&"object"===typeof i?S(r,i):String(r)===String(i)}))}function O(t,e){return 0===t.path.replace(v,"/").indexOf(e.path.replace(v,"/"))&&(!e.hash||t.hash===e.hash)&&M(t.query,e.query)}function M(t,e){for(var n in e)if(!(n in t))return!1;return!0}var A,I=[String,Object],T=[String,Array],C={name:"RouterLink",props:{to:{type:I,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:T,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,i=n.resolve(this.to,r,this.append),a=i.location,s=i.route,l=i.href,u={},c=n.options.linkActiveClass,h=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==h?"router-link-exact-active":h,d=null==this.activeClass?f:this.activeClass,g=null==this.exactActiveClass?p:this.exactActiveClass,v=a.path?y(null,a,null,n):s;u[g]=w(r,v),u[d]=this.exact?u[g]:O(r,v);var m=function(t){D(t)&&(e.replace?n.replace(a):n.push(a))},b={click:D};Array.isArray(this.event)?this.event.forEach((function(t){b[t]=m})):b[this.event]=m;var x={class:u};if("a"===this.tag)x.on=b,x.attrs={href:l};else{var _=k(this.$slots.default);if(_){_.isStatic=!1;var S=_.data=o({},_.data);S.on=b;var M=_.data.attrs=o({},_.data.attrs);M.href=l}else x.on=b}return t(this.tag,x,this.$slots.default)}};function D(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function k(t){if(t)for(var e,n=0;n=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}function R(t){return t.replace(/\/\//g,"/")}var N=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},z=rt,B=W,V=U,F=X,G=nt,H=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function W(t,e){var n,r=[],i=0,o=0,a="",s=e&&e.delimiter||"/";while(null!=(n=H.exec(t))){var l=n[0],u=n[1],c=n.index;if(a+=t.slice(o,c),o=c+l.length,u)a+=u[1];else{var h=t[o],f=n[2],p=n[3],d=n[4],g=n[5],v=n[6],y=n[7];a&&(r.push(a),a="");var m=null!=f&&null!=h&&h!==f,b="+"===v||"*"===v,x="?"===v||"*"===v,_=n[2]||s,w=d||g;r.push({name:p||i++,prefix:f||"",delimiter:_,optional:x,repeat:b,partial:m,asterisk:!!y,pattern:w?Z(w):y?".*":"[^"+q(_)+"]+?"})}}return o-1&&(s.params[f]=n.params[f]);if(u)return s.path=ot(u.path,s.params,'named route "'+l+'"'),c(u,s,a)}else if(s.path){s.params={};for(var p=0;p=t.length?n():t[i]?e(t[i],(function(){r(i+1)})):r(i+1)};r(0)}function Pt(t){return function(e,n,r){var o=!1,a=0,s=null;Et(t,(function(t,e,n,l){if("function"===typeof t&&void 0===t.cid){o=!0,a++;var u,c=Bt((function(e){zt(e)&&(e=e.default),t.resolved="function"===typeof e?e:A.extend(e),n.components[l]=e,a--,a<=0&&r()})),h=Bt((function(t){var e="Failed to resolve async component "+l+": "+t;s||(s=i(t)?t:new Error(e),r(s))}));try{u=t(c,h)}catch(p){h(p)}if(u)if("function"===typeof u.then)u.then(c,h);else{var f=u.component;f&&"function"===typeof f.then&&f.then(c,h)}}})),o||r()}}function Et(t,e){return Rt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Rt(t){return Array.prototype.concat.apply([],t)}var Nt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function zt(t){return t.__esModule||Nt&&"Module"===t[Symbol.toStringTag]}function Bt(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Vt=function(t,e){this.router=t,this.base=Ft(e),this.current=b,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function Ft(t){if(!t)if(j){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function Gt(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n=0?e.slice(0,n):e;return r+"#"+t}function ie(t){Mt?kt(re(t)):window.location.hash=t}function oe(t){Mt?Lt(re(t)):window.location.replace(re(t))}var ae=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){e.index=n,e.updateRoute(r)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Vt),se=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ht(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Mt&&!1!==t.fallback,this.fallback&&(e="hash"),j||(e="abstract"),this.mode=e,e){case"history":this.history=new Kt(this,t.base);break;case"hash":this.history=new Qt(this,t.base,this.fallback);break;case"abstract":this.history=new ae(this,t.base);break;default:0}},le={currentRoute:{configurable:!0}};function ue(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function ce(t,e,n){var r="hash"===n?"#"+e:e;return t?R(t+"/"+r):r}se.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},le.currentRoute.get=function(){return this.history&&this.history.current},se.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof Kt)n.transitionTo(n.getCurrentLocation());else if(n instanceof Qt){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},se.prototype.beforeEach=function(t){return ue(this.beforeHooks,t)},se.prototype.beforeResolve=function(t){return ue(this.resolveHooks,t)},se.prototype.afterEach=function(t){return ue(this.afterHooks,t)},se.prototype.onReady=function(t,e){this.history.onReady(t,e)},se.prototype.onError=function(t){this.history.onError(t)},se.prototype.push=function(t,e,n){this.history.push(t,e,n)},se.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},se.prototype.go=function(t){this.history.go(t)},se.prototype.back=function(){this.go(-1)},se.prototype.forward=function(){this.go(1)},se.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},se.prototype.resolve=function(t,e,n){var r=ct(t,e||this.history.current,n,this),i=this.match(r,e),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=ce(a,o,this.mode);return{location:r,route:i,href:s,normalizedTo:r,resolved:i}},se.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==b&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(se.prototype,le),se.install=L,se.version="3.0.2",j&&window.Vue&&window.Vue.use(se),e["a"]=se},"8ea1":function(t,e){var n="object"==typeof document&&document.all,r="undefined"==typeof n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},"8eb7":function(t,e){var n,r,i,o,a,s,l,u,c,h,f,p,d,g,v,y=!1;function m(){if(!y){y=!0;var t=navigator.userAgent,e=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(t),m=/(Mac OS X)|(Windows)|(Linux)/.exec(t);if(p=/\b(iPhone|iP[ao]d)/.exec(t),d=/\b(iP[ao]d)/.exec(t),h=/Android/i.exec(t),g=/FBAN\/\w+;/i.exec(t),v=/Mobile/i.exec(t),f=!!/Win64/.exec(t),e){n=e[1]?parseFloat(e[1]):e[5]?parseFloat(e[5]):NaN,n&&document&&document.documentMode&&(n=document.documentMode);var b=/(?:Trident\/(\d+.\d+))/.exec(t);s=b?parseFloat(b[1])+4:n,r=e[2]?parseFloat(e[2]):NaN,i=e[3]?parseFloat(e[3]):NaN,o=e[4]?parseFloat(e[4]):NaN,o?(e=/(?:Chrome\/(\d+\.\d+))/.exec(t),a=e&&e[1]?parseFloat(e[1]):NaN):a=NaN}else n=r=i=a=o=NaN;if(m){if(m[1]){var x=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(t);l=!x||parseFloat(x[1].replace("_","."))}else l=!1;u=!!m[2],c=!!m[3]}else l=u=c=!1}}var b={ie:function(){return m()||n},ieCompatibilityMode:function(){return m()||s>n},ie64:function(){return b.ie()&&f},firefox:function(){return m()||r},opera:function(){return m()||i},webkit:function(){return m()||o},safari:function(){return b.webkit()},chrome:function(){return m()||a},windows:function(){return m()||u},osx:function(){return m()||l},linux:function(){return m()||c},iphone:function(){return m()||p},mobile:function(){return m()||p||d||h||v},nativeApp:function(){return m()||g},android:function(){return m()||h},ipad:function(){return m()||d}};t.exports=b},"90d8":function(t,e,n){var r=n("c65b"),i=n("1a2d"),o=n("3a9b"),a=n("ad6d"),s=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in s||i(t,"flags")||!o(s,t)?e:r(a,t)}},"90e3":function(t,e,n){var r=n("e330"),i=0,o=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++i+o,36)}},9112:function(t,e,n){var r=n("83ab"),i=n("9bf2"),o=n("5c6c");t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"913b":function(t,e){(function(e){t.exports=e}).call(this,{})},9141:function(t,e,n){var r=n("ef08").document;t.exports=r&&r.documentElement},9152:function(t,e){ -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -e.read=function(t,e,n,r,i){var o,a,s=8*i-r-1,l=(1<>1,c=-7,h=n?i-1:0,f=n?-1:1,p=t[e+h];for(h+=f,o=p&(1<<-c)-1,p>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=f,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=256*a+t[e+h],h+=f,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),o-=u}return(p?-1:1)*a*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var a,s,l,u=8*o-i-1,c=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),e+=a+h>=1?f/l:f*Math.pow(2,1-h),e*l>=2&&(a++,l/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*l-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[n+p]=255&s,p+=d,s/=256,i-=8);for(a=a<0;t[n+p]=255&a,p+=d,a/=256,u-=8);t[n+p-d]|=128*g}},9263:function(t,e,n){"use strict";var r=n("c65b"),i=n("e330"),o=n("577e"),a=n("ad6d"),s=n("9f7f"),l=n("5692"),u=n("7c73"),c=n("69f3").get,h=n("fce3"),f=n("107c"),p=l("native-string-replace",String.prototype.replace),d=RegExp.prototype.exec,g=d,v=i("".charAt),y=i("".indexOf),m=i("".replace),b=i("".slice),x=function(){var t=/a/,e=/b*/g;return r(d,t,"a"),r(d,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),_=s.BROKEN_CARET,w=void 0!==/()??/.exec("")[1],S=x||w||_||h||f;S&&(g=function(t){var e,n,i,s,l,h,f,S=this,O=c(S),M=o(t),A=O.raw;if(A)return A.lastIndex=S.lastIndex,e=r(g,A,M),S.lastIndex=A.lastIndex,e;var I=O.groups,T=_&&S.sticky,C=r(a,S),D=S.source,k=0,L=M;if(T&&(C=m(C,"y",""),-1===y(C,"g")&&(C+="g"),L=b(M,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==v(M,S.lastIndex-1))&&(D="(?: "+D+")",L=" "+L,k++),n=new RegExp("^(?:"+D+")",C)),w&&(n=new RegExp("^"+D+"$(?!\\s)",C)),x&&(i=S.lastIndex),s=r(d,T?n:S,L),T?s?(s.input=b(s.input,k),s[0]=b(s[0],k),s.index=S.lastIndex,S.lastIndex+=s[0].length):S.lastIndex=0:x&&s&&(S.lastIndex=S.global?s.index+s[0].length:i),w&&s&&s.length>1&&r(p,s[0],n,(function(){for(l=1;l=51||!i((function(){var t=[];return t[g]=!1,t.concat()[0]!==t})),y=function(t){if(!a(t))return!1;var e=t[g];return void 0!==e?!!e:o(t)},m=!v||!f("concat");r({target:"Array",proto:!0,arity:1,forced:m},{concat:function(t){var e,n,r,i,o,a=s(this),f=h(a,0),p=0;for(e=-1,r=arguments.length;e=o)return t;switch(t){case"%s":return String(e[r++]);case"%d":return Number(e[r++]);case"%j":try{return JSON.stringify(e[r++])}catch(n){return"[Circular]"}break;default:return t}})),l=e[r];r()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},S={integer:function(t){return S.number(t)&&parseInt(t,10)===t},float:function(t){return S.number(t)&&!S.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch(e){return!1}},date:function(t){return"function"===typeof t.getTime&&"function"===typeof t.getMonth&&"function"===typeof t.getYear},number:function(t){return!isNaN(t)&&"number"===typeof t},object:function(t){return"object"===("undefined"===typeof t?"undefined":a()(t))&&!S.array(t)},method:function(t){return"function"===typeof t},email:function(t){return"string"===typeof t&&!!t.match(w.email)&&t.length<255},url:function(t){return"string"===typeof t&&!!t.match(w.url)},hex:function(t){return"string"===typeof t&&!!t.match(w.hex)}};function O(t,e,n,r,i){if(t.required&&void 0===e)b(t,e,n,r,i);else{var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?S[s](e)||r.push(u(i.messages.types[s],t.fullField,t.type)):s&&("undefined"===typeof e?"undefined":a()(e))!==t.type&&r.push(u(i.messages.types[s],t.fullField,t.type))}}var M=O;function A(t,e,n,r,i){var o="number"===typeof t.len,a="number"===typeof t.min,s="number"===typeof t.max,l=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=e,h=null,f="number"===typeof e,p="string"===typeof e,d=Array.isArray(e);if(f?h="number":p?h="string":d&&(h="array"),!h)return!1;d&&(c=e.length),p&&(c=e.replace(l,"_").length),o?c!==t.len&&r.push(u(i.messages[h].len,t.fullField,t.len)):a&&!s&&ct.max?r.push(u(i.messages[h].max,t.fullField,t.max)):a&&s&&(ct.max)&&r.push(u(i.messages[h].range,t.fullField,t.min,t.max))}var I=A,T="enum";function C(t,e,n,r,i){t[T]=Array.isArray(t[T])?t[T]:[],-1===t[T].indexOf(e)&&r.push(u(i.messages[T],t.fullField,t[T].join(", ")))}var D=C;function k(t,e,n,r,i){if(t.pattern)if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(e)||r.push(u(i.messages.pattern.mismatch,t.fullField,e,t.pattern));else if("string"===typeof t.pattern){var o=new RegExp(t.pattern);o.test(e)||r.push(u(i.messages.pattern.mismatch,t.fullField,e,t.pattern))}}var L=k,j={required:b,whitespace:_,type:M,range:I,enum:D,pattern:L};function P(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e,"string")&&!t.required)return n();j.required(t,e,r,o,i,"string"),h(e,"string")||(j.type(t,e,r,o,i),j.range(t,e,r,o,i),j.pattern(t,e,r,o,i),!0===t.whitespace&&j.whitespace(t,e,r,o,i))}n(o)}var E=P;function R(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&j.type(t,e,r,o,i)}n(o)}var N=R;function z(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&(j.type(t,e,r,o,i),j.range(t,e,r,o,i))}n(o)}var B=z;function V(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&j.type(t,e,r,o,i)}n(o)}var F=V;function G(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),h(e)||j.type(t,e,r,o,i)}n(o)}var H=G;function W(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&(j.type(t,e,r,o,i),j.range(t,e,r,o,i))}n(o)}var U=W;function Y(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&(j.type(t,e,r,o,i),j.range(t,e,r,o,i))}n(o)}var $=Y;function X(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e,"array")&&!t.required)return n();j.required(t,e,r,o,i,"array"),h(e,"array")||(j.type(t,e,r,o,i),j.range(t,e,r,o,i))}n(o)}var q=X;function Z(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),void 0!==e&&j.type(t,e,r,o,i)}n(o)}var K=Z,J="enum";function Q(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();j.required(t,e,r,o,i),e&&j[J](t,e,r,o,i)}n(o)}var tt=Q;function et(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e,"string")&&!t.required)return n();j.required(t,e,r,o,i),h(e,"string")||j.pattern(t,e,r,o,i)}n(o)}var nt=et;function rt(t,e,n,r,i){var o=[],a=t.required||!t.required&&r.hasOwnProperty(t.field);if(a){if(h(e)&&!t.required)return n();if(j.required(t,e,r,o,i),!h(e)){var s=void 0;s="number"===typeof e?new Date(e):e,j.type(t,s,r,o,i),s&&j.range(t,s.getTime(),r,o,i)}}n(o)}var it=rt;function ot(t,e,n,r,i){var o=[],s=Array.isArray(e)?"array":"undefined"===typeof e?"undefined":a()(e);j.required(t,e,r,o,i,s),n(o)}var at=ot;function st(t,e,n,r,i){var o=t.type,a=[],s=t.required||!t.required&&r.hasOwnProperty(t.field);if(s){if(h(e,o)&&!t.required)return n();j.required(t,e,r,a,i,o),h(e,o)||j.type(t,e,r,a,i)}n(a)}var lt=st,ut={string:E,method:N,number:B,boolean:F,regexp:H,integer:U,float:$,array:q,object:K,enum:tt,pattern:nt,date:it,url:lt,hex:lt,email:lt,required:at};function ct(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var ht=ct();function ft(t){this.rules=null,this._messages=ht,this.define(t)}ft.prototype={messages:function(t){return t&&(this._messages=y(ct(),t)),this._messages},define:function(t){if(!t)throw new Error("Cannot configure a schema with no rules");if("object"!==("undefined"===typeof t?"undefined":a()(t))||Array.isArray(t))throw new Error("Rules must be an object");this.rules={};var e=void 0,n=void 0;for(e in t)t.hasOwnProperty(e)&&(n=t[e],this.rules[e]=Array.isArray(n)?n:[n])},validate:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2],o=t,s=n,c=r;if("function"===typeof s&&(c=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var h=this.messages();h===ht&&(h=ct()),y(h,s.messages),s.messages=h}else s.messages=this.messages();var f=void 0,p=void 0,d={},m=s.keys||Object.keys(this.rules);m.forEach((function(n){f=e.rules[n],p=o[n],f.forEach((function(r){var a=r;"function"===typeof a.transform&&(o===t&&(o=i()({},o)),p=o[n]=a.transform(p)),a="function"===typeof a?{validator:a}:i()({},a),a.validator=e.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=e.getType(a),a.validator&&(d[n]=d[n]||[],d[n].push({rule:a,value:p,source:o,field:n}))}))}));var b={};g(d,s,(function(t,e){var n=t.rule,r=("object"===n.type||"array"===n.type)&&("object"===a()(n.fields)||"object"===a()(n.defaultField));function o(t,e){return i()({},e,{fullField:n.fullField+"."+t})}function c(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],c=a;if(Array.isArray(c)||(c=[c]),c.length&&l("async-validator:",c),c.length&&n.message&&(c=[].concat(n.message)),c=c.map(v(n)),s.first&&c.length)return b[n.field]=1,e(c);if(r){if(n.required&&!t.value)return c=n.message?[].concat(n.message).map(v(n)):s.error?[s.error(n,u(s.messages.required,n.field))]:[],e(c);var h={};if(n.defaultField)for(var f in t.value)t.value.hasOwnProperty(f)&&(h[f]=n.defaultField);for(var p in h=i()({},h,t.rule.fields),h)if(h.hasOwnProperty(p)){var d=Array.isArray(h[p])?h[p]:[h[p]];h[p]=d.map(o.bind(null,p))}var g=new ft(h);g.messages(s.messages),t.rule.options&&(t.rule.options.messages=s.messages,t.rule.options.error=s.error),g.validate(t.value,t.rule.options||s,(function(t){e(t&&t.length?c.concat(t):t)}))}else e(c)}r=r&&(n.required||!n.required&&t.value),n.field=t.field;var h=n.validator(n,t.value,c,t.source,s);h&&h.then&&h.then((function(){return c()}),(function(t){return c(t)}))}),(function(t){x(t)}))}else c&&c();function x(t){var e=void 0,n=void 0,r=[],i={};function o(t){Array.isArray(t)?r=r.concat.apply(r,t):r.push(t)}for(e=0;ex-r+n;d--)f(b,d-1)}else if(n>r)for(d=x-r;d>_;d--)y=d+r-1,m=d+n-1,y in b?b[m]=b[y]:f(b,m);for(d=0;d1){if(o=t({path:"/"},r.defaults,o),"number"===typeof o.expires){var s=new Date;s.setMilliseconds(s.getMilliseconds()+864e5*o.expires),o.expires=s}o.expires=o.expires?o.expires.toUTCString():"";try{a=JSON.stringify(i),/^[\{\[]/.test(a)&&(i=a)}catch(v){}i=n.write?n.write(i,e):encodeURIComponent(String(i)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)),e=e.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),e=e.replace(/[\(\)]/g,escape);var l="";for(var u in o)o[u]&&(l+="; "+u,!0!==o[u]&&(l+="="+o[u]));return document.cookie=e+"="+i+l}e||(a={});for(var c=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,f=0;f1?1:0:1}function f(t,e){return t=Math.abs(t),2===e?h(t):t?Math.min(t,2):0}function p(t,e){if(!t&&"string"!==typeof t)return null;var n=t.split("|");return e=f(e,n.length),n[e]?n[e].trim():t}function d(t){return JSON.parse(JSON.stringify(t))}function g(t){t.prototype.$t=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];var r=this.$i18n;return r._t.apply(r,[t,r.locale,r.messages,this].concat(e))},t.prototype.$tc=function(t,e){var n=[],r=arguments.length-2;while(r-- >0)n[r]=arguments[r+2];var i=this.$i18n;return i._tc.apply(i,[t,i.locale,i.messages,this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n.messages,e)}}var v,y={beforeCreate:function(){var t=this,e=this.$options;if(e.i18n=e.i18n||(e.__i18n?{}:null),e.i18n)if(e.i18n instanceof $)this._i18n=e.i18n,this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()}));else if(l(e.i18n)){if(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof $&&(e.i18n.root=this.$root.$i18n,e.i18n.silentTranslationWarn=this.$root.$i18n.silentTranslationWarn),e.__i18n)try{e.i18n.messages=JSON.parse(e.__i18n)}catch(n){0}this._i18n=new $(e.i18n),this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()})),(void 0===e.i18n.sync||e.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale((function(){return t.$forceUpdate()})))}else 0;else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof $&&(this._i18n=this.$root.$i18n,this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()})))},beforeDestroy:function(){this._i18n&&(this._i18nWatcher&&(this._i18nWatcher(),delete this._i18nWatcher),this._localeWatcher&&(this._localeWatcher(),delete this._localeWatcher),this._i18n=null)}};function m(t){v=t;v.version&&Number(v.version.split(".")[0]);m.installed=!0,Object.defineProperty(v.prototype,"$i18n",{get:function(){return this._i18n}}),g(v),v.mixin(y);var e=v.config.optionMergeStrategies;e.i18n=e.methods}var b=function(t){void 0===t&&(t={}),this._options=t},x={options:{}};x.options.get=function(){return this._options},b.prototype.format=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];return w.apply(void 0,[t].concat(e))},Object.defineProperties(b.prototype,x);var _=/(%|)\{([0-9a-zA-Z_]+)\}/g;function w(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];return e=1===e.length&&"object"===typeof e[0]?e[0]:{},e&&e.hasOwnProperty||(e={}),t.replace(_,(function(n,r,o,a){var s;return"{"===t[a-1]&&"}"===t[a+n.length]?o:(s=i(e,o)?e[o]:n,u(s)?"":s)}))}var S=Object.create(null),O=0,M=1,A=2,I=3,T=0,C=1,D=2,k=3,L=4,j=5,P=6,E=7,R=8,N=[];N[T]={ws:[T],ident:[k,O],"[":[L],eof:[E]},N[C]={ws:[C],".":[D],"[":[L],eof:[E]},N[D]={ws:[D],ident:[k,O],0:[k,O],number:[k,O]},N[k]={ident:[k,O],0:[k,O],number:[k,O],ws:[C,M],".":[D,M],"[":[L,M],eof:[E,M]},N[L]={"'":[j,O],'"':[P,O],"[":[L,A],"]":[C,I],eof:R,else:[L,O]},N[j]={"'":[L,O],eof:R,else:[j,O]},N[P]={'"':[L,O],eof:R,else:[P,O]};var z=/^\s?(true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function B(t){return z.test(t)}function V(t){var e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e!==n||34!==e&&39!==e?t:t.slice(1,-1)}function F(t){if(void 0===t||null===t)return"eof";var e=t.charCodeAt(0);switch(e){case 91:case 93:case 46:case 34:case 39:case 48:return t;case 95:case 36:case 45:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return e>=97&&e<=122||e>=65&&e<=90?"ident":e>=49&&e<=57?"number":"else"}function G(t){var e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(B(e)?V(e):"*"+e)}function H(t){var e,n,r,i,o,a,s,l=[],u=-1,c=T,h=0,f=[];function p(){var e=t[u+1];if(c===j&&"'"===e||c===P&&'"'===e)return u++,r="\\"+e,f[O](),!0}f[M]=function(){void 0!==n&&(l.push(n),n=void 0)},f[O]=function(){void 0===n?n=r:n+=r},f[A]=function(){f[O](),h++},f[I]=function(){if(h>0)h--,c=L,f[O]();else{if(h=0,n=G(n),!1===n)return!1;f[M]()}};while(null!==c)if(u++,e=t[u],"\\"!==e||!p()){if(i=F(e),s=N[c],o=s[i]||s["else"]||R,o===R)return;if(c=o[0],a=f[o[1]],a&&(r=o[2],r=void 0===r?e:r,!1===a()))return;if(c===E)return l}}function W(t){var e=S[t];return e||(e=H(t),e&&(S[t]=e)),e||[]}function U(t){if(null===t||void 0===t)return!0;if(Array.isArray(t)){if(t.length>0)return!1;if(0===t.length)return!0}else if(l(t))for(var e in t)if(i(t,e))return!1;return!0}function Y(t,e){if(!o(t))return null;var n=W(e);if(U(n))return null;var r=n.length,i=null,a=t,s=0;while(s=0){var a=i.match(/(@:[\w|.]+)/g);for(var s in a){var c=a[s],h=c.substr(2),f=r._interpolate(t,h,n);i=i.replace(c,f)}}return n?this._format(i,n):i},$.prototype._format=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this._formatter).format.apply(e,[t].concat(n))},$.prototype._translate=function(t,e,n,r,i){var o=null;return o=this._interpolate(t[e],r,i),u(o)?(o=this._interpolate(t[n],r,i),u(o)?null:o):o},$.prototype._t=function(t,e,n,r){var i=[],o=arguments.length-4;while(o-- >0)i[o]=arguments[o+4];if(!t)return"";var a,s=c.apply(void 0,i),l=s.locale||e,u=this._translate(n,l,this.fallbackLocale,t,s.params);if(this._isFallbackRoot(u)){if(!this._root)throw Error("unexpected error");return(a=this._root).t.apply(a,[t].concat(i))}return this._warnDefault(l,t,u,r)},$.prototype.t=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this)._t.apply(e,[t,this.locale,this.messages,null].concat(n))},$.prototype._tc=function(t,e,n,r,i){var o,a,s=[],l=arguments.length-5;while(l-- >0)s[l]=arguments[l+5];return t?void 0!==i?p((o=this)._t.apply(o,[t,e,n,r].concat(s)),i):(a=this)._t.apply(a,[t,e,n,r].concat(s)):""},$.prototype.tc=function(t,e){var n,r=[],i=arguments.length-2;while(i-- >0)r[i]=arguments[i+2];return(n=this)._tc.apply(n,[t,this.locale,this.messages,null,e].concat(r))},$.prototype._te=function(t,e,n){var r=[],i=arguments.length-3;while(i-- >0)r[i]=arguments[i+3];var o=c.apply(void 0,r).locale||e;return this._exist(n[o],t)},$.prototype.te=function(t,e){return this._te(t,this.locale,this.messages,e)},$.prototype.getLocaleMessage=function(t){return d(this._vm.messages[t])},$.prototype.setLocaleMessage=function(t,e){this._vm.messages[t]=e},$.prototype.mergeLocaleMessage=function(t,e){this._vm.messages[t]=v.util.extend(this.getLocaleMessage(t),e)},Object.defineProperties($.prototype,X),$.install=m,$.version="6.1.3","undefined"!==typeof window&&window.Vue&&window.Vue.use($),e["a"]=$},a9e3:function(t,e,n){"use strict";var r=n("23e7"),i=n("c430"),o=n("83ab"),a=n("da84"),s=n("428f"),l=n("e330"),u=n("94ca"),c=n("1a2d"),h=n("7156"),f=n("3a9b"),p=n("d9b5"),d=n("c04e"),g=n("d039"),v=n("241c").f,y=n("06cf").f,m=n("9bf2").f,b=n("408a"),x=n("58a8").trim,_="Number",w=a[_],S=s[_],O=w.prototype,M=a.TypeError,A=l("".slice),I=l("".charCodeAt),T=function(t){var e=d(t,"number");return"bigint"==typeof e?e:C(e)},C=function(t){var e,n,r,i,o,a,s,l,u=d(t,"number");if(p(u))throw M("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2)if(u=x(u),e=I(u,0),43===e||45===e){if(n=I(u,2),88===n||120===n)return NaN}else if(48===e){switch(I(u,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+u}for(o=A(u,2),a=o.length,s=0;si)return NaN;return parseInt(o,r)}return+u},D=u(_,!w(" 0o1")||!w("0b1")||w("+0x1")),k=function(t){return f(O,t)&&g((function(){b(t)}))},L=function(t){var e=arguments.length<1?0:w(T(t));return k(this)?h(Object(e),this,L):e};L.prototype=O,D&&!i&&(O.constructor=L),r({global:!0,constructor:!0,wrap:!0,forced:D},{Number:L});var j=function(t,e){for(var n,r=o?v(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),i=0;r.length>i;i++)c(e,n=r[i])&&!c(t,n)&&m(t,n,y(e,n))};i&&S&&j(s[_],S),(D||i)&&j(s[_],w)},ab13:function(t,e,n){var r=n("b622"),i=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[i]=!1,"/./"[t](e)}catch(r){}}return!1}},ab36:function(t,e,n){var r=n("861d"),i=n("9112");t.exports=function(t,e){r(e)&&"cause"in e&&i(t,"cause",e.cause)}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),i=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},ade3:function(t,e,n){"use strict";var r=n("53ca");n("8172"),n("efec"),n("a4d3"),n("e01a"),n("d3b7"),n("d9e2"),n("a9e3");function i(t,e){if("object"!==Object(r["a"])(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!==Object(r["a"])(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function o(t){var e=i(t,"string");return"symbol"===Object(r["a"])(e)?e:String(e)}function a(t,e,n){return e=o(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return a}))},ae93:function(t,e,n){"use strict";var r,i,o,a=n("d039"),s=n("1626"),l=n("861d"),u=n("7c73"),c=n("e163"),h=n("cb2d"),f=n("b622"),p=n("c430"),d=f("iterator"),g=!1;[].keys&&(o=[].keys(),"next"in o?(i=c(c(o)),i!==Object.prototype&&(r=i)):g=!0);var v=!l(r)||a((function(){var t={};return r[d].call(t)!==t}));v?r={}:p&&(r=u(r)),s(r[d])||h(r,d,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:g}},aeb0:function(t,e,n){var r=n("9bf2").f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},aed9:function(t,e,n){var r=n("83ab"),i=n("d039");t.exports=r&&i((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},b041:function(t,e,n){"use strict";var r=n("00ee"),i=n("f5df");t.exports=r?{}.toString:function(){return"[object "+i(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),i=n("5e77").EXISTS,o=n("e330"),a=n("edd0"),s=Function.prototype,l=o(s.toString),u=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,c=o(u.exec),h="name";r&&!i&&a(s,h,{configurable:!0,get:function(){try{return c(u,l(this))[1]}catch(t){return""}}})},b367:function(t,e,n){var r=n("5524"),i=n("ef08"),o="__core-js_shared__",a=i[o]||(i[o]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("e444")?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},b42e:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?r:n)(e)}},b4f8:function(t,e,n){var r=n("23e7"),i=n("d066"),o=n("1a2d"),a=n("577e"),s=n("5692"),l=n("0b43"),u=s("string-to-symbol-registry"),c=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{for:function(t){var e=a(t);if(o(u,e))return u[e];var n=i("Symbol")(e);return u[e]=n,c[n]=e,n}})},b575:function(t,e,n){var r,i,o,a,s,l=n("da84"),u=n("0366"),c=n("06cf").f,h=n("2cf4").set,f=n("01b4"),p=n("1cdc"),d=n("d4c3"),g=n("a4b4"),v=n("605d"),y=l.MutationObserver||l.WebKitMutationObserver,m=l.document,b=l.process,x=l.Promise,_=c(l,"queueMicrotask"),w=_&&_.value;if(!w){var S=new f,O=function(){var t,e;v&&(t=b.domain)&&t.exit();while(e=S.get())try{e()}catch(n){throw S.head&&r(),n}t&&t.enter()};p||v||g||!y||!m?!d&&x&&x.resolve?(a=x.resolve(void 0),a.constructor=x,s=u(a.then,a),r=function(){s(O)}):v?r=function(){b.nextTick(O)}:(h=u(h,l),r=function(){h(O)}):(i=!0,o=m.createTextNode(""),new y(O).observe(o,{characterData:!0}),r=function(){o.data=i=!i}),w=function(t){S.head||r(),S.add(t)}}t.exports=w},b622:function(t,e,n){var r=n("da84"),i=n("5692"),o=n("1a2d"),a=n("90e3"),s=n("04f8"),l=n("fdbf"),u=r.Symbol,c=i("wks"),h=l?u["for"]||u:u&&u.withoutSetter||a;t.exports=function(t){return o(c,t)||(c[t]=s&&o(u,t)?u[t]:h("Symbol."+t)),c[t]}},b636:function(t,e,n){var r=n("e065");r("asyncIterator")},b639:function(t,e,n){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var r=n("1fb5"),i=n("9152"),o=n("e3db");function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function b(t){return+t!=t&&(t=0),u.alloc(+t)}function x(t,e){if(u.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Z(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Q(t).length;default:if(r)return Z(t).length;e=(""+e).toLowerCase(),r=!0}}function _(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,e>>>=0,n<=e)return"";t||(t="utf8");while(1)switch(t){case"hex":return N(this,e,n);case"utf8":case"utf-8":return L(this,e,n);case"ascii":return E(this,e,n);case"latin1":case"binary":return R(this,e,n);case"base64":return k(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function w(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function S(t,e,n,r,i){if(0===t.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:O(t,e,n,r,i);if("number"===typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):O(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function O(t,e,n,r,i){var o,a=1,s=t.length,l=e.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,s/=2,l/=2,n/=2}function u(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var c=-1;for(o=n;os&&(n=s-l),o=n;o>=0;o--){for(var h=!0,f=0;fi&&(r=i)):r=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a239?4:u>223?3:u>191?2:1;if(i+h<=n)switch(h){case 1:u<128&&(c=u);break;case 2:o=t[i+1],128===(192&o)&&(l=(31&u)<<6|63&o,l>127&&(c=l));break;case 3:o=t[i+1],a=t[i+2],128===(192&o)&&128===(192&a)&&(l=(15&u)<<12|(63&o)<<6|63&a,l>2047&&(l<55296||l>57343)&&(c=l));break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(l=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&s,l>65535&&l<1114112&&(c=l))}null===c?(c=65533,h=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=h}return P(r)}e.Buffer=u,e.SlowBuffer=b,e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),e.kMaxLength=s(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,n){return c(null,t,e,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,n){return f(null,t,e,n)},u.allocUnsafe=function(t){return p(null,t)},u.allocUnsafeSlow=function(t){return p(null,t)},u.isBuffer=function(t){return!(null==t||!t._isBuffer)},u.compare=function(t,e){if(!u.isBuffer(t)||!u.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,i=0,o=Math.min(n,r);i0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),""},u.prototype.compare=function(t,e,n,r,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(e>>>=0,n>>>=0,r>>>=0,i>>>=0,this===t)return 0;for(var o=i-r,a=n-e,s=Math.min(o,a),l=this.slice(r,i),c=t.slice(e,n),h=0;hi)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return M(this,t,e,n);case"utf8":case"utf-8":return A(this,t,e,n);case"ascii":return I(this,t,e,n);case"latin1":case"binary":return T(this,t,e,n);case"base64":return C(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var j=4096;function P(t){var e=t.length;if(e<=j)return String.fromCharCode.apply(String,t);var n="",r=0;while(rr)&&(n=r);for(var i="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function V(t,e,n,r,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function F(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i>>8*(r?i:1-i)}function G(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i>>8*(r?i:3-i)&255}function H(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function W(t,e,n,r,o){return o||H(t,e,n,4,34028234663852886e22,-34028234663852886e22),i.write(t,e,n,r,23,4),n+4}function U(t,e,n,r,o){return o||H(t,e,n,8,17976931348623157e292,-17976931348623157e292),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if(t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e0&&(i*=256))r+=this[t+--e]*i;return r},u.prototype.readUInt8=function(t,e){return e||B(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||B(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||B(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||B(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||B(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||B(t,e,this.length);var r=this[t],i=1,o=0;while(++o=i&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||B(t,e,this.length);var r=e,i=1,o=this[t+--r];while(r>0&&(i*=256))o+=this[t+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||B(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||B(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||B(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||B(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||B(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||B(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||B(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||B(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||B(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){if(t=+t,e|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;V(this,t,e,n,i,0)}var o=1,a=0;this[e]=255&t;while(++a=0&&(a*=256))this[e+o]=t/a&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):G(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):G(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);V(this,t,e,n,i-1,-i)}var o=0,a=1,s=0;this[e]=255&t;while(++o>0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);V(this,t,e,n,i-1,-i)}var o=n-1,a=1,s=0;this[e+o]=255&t;while(--o>=0&&(a*=256))t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):G(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||V(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):G(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return W(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return W(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return U(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return U(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--i)t[i+e]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function K(t){for(var e=[],n=0;n>8,i=n%256,o.push(i),o.push(r)}return o}function Q(t){return r.toByteArray($(t))}function tt(t,e,n,r){for(var i=0;i=e.length||i>=t.length)break;e[i+n]=t[i]}return i}function et(t){return t!==t}}).call(this,n("24aa"))},b64b:function(t,e,n){var r=n("23e7"),i=n("7b0b"),o=n("df75"),a=n("d039"),s=a((function(){o(1)}));r({target:"Object",stat:!0,forced:s},{keys:function(t){return o(i(t))}})},b680:function(t,e,n){"use strict";var r=n("23e7"),i=n("e330"),o=n("5926"),a=n("408a"),s=n("1148"),l=n("d039"),u=RangeError,c=String,h=Math.floor,f=i(s),p=i("".slice),d=i(1..toFixed),g=function(t,e,n){return 0===e?n:e%2===1?g(t,e-1,n*t):g(t*t,e/2,n)},v=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},y=function(t,e,n){var r=-1,i=n;while(++r<6)i+=e*t[r],t[r]=i%1e7,i=h(i/1e7)},m=function(t,e){var n=6,r=0;while(--n>=0)r+=t[n],t[n]=h(r/e),r=r%e*1e7},b=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var r=c(t[e]);n=""===n?r:n+f("0",7-r.length)+r}return n},x=l((function(){return"0.000"!==d(8e-5,3)||"1"!==d(.9,0)||"1.25"!==d(1.255,2)||"1000000000000000128"!==d(0xde0b6b3a7640080,0)}))||!l((function(){d({})}));r({target:"Number",proto:!0,forced:x},{toFixed:function(t){var e,n,r,i,s=a(this),l=o(t),h=[0,0,0,0,0,0],d="",x="0";if(l<0||l>20)throw u("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return c(s);if(s<0&&(d="-",s=-s),s>1e-21)if(e=v(s*g(2,69,1))-69,n=e<0?s*g(2,-e,1):s/g(2,e,1),n*=4503599627370496,e=52-e,e>0){y(h,0,n),r=l;while(r>=7)y(h,1e7,0),r-=7;y(h,g(10,r,1),0),r=e-1;while(r>=23)m(h,1<<23),r-=23;m(h,1<0?(i=x.length,x=d+(i<=l?"0."+f("0",l-i)+x:p(x,0,i-l)+"."+p(x,i-l))):x=d+x,x}})},b727:function(t,e,n){var r=n("0366"),i=n("e330"),o=n("44ad"),a=n("7b0b"),s=n("07fa"),l=n("65f0"),u=i([].push),c=function(t){var e=1==t,n=2==t,i=3==t,c=4==t,h=6==t,f=7==t,p=5==t||h;return function(d,g,v,y){for(var m,b,x=a(d),_=o(x),w=r(g,v),S=s(_),O=0,M=y||l,A=e?M(d,S):n||f?M(d,0):void 0;S>O;O++)if((p||O in _)&&(m=_[O],b=w(m,O,x),t))if(e)A[O]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return O;case 2:u(A,m)}else switch(t){case 4:return!1;case 7:u(A,m)}return h?-1:i||c?c:A}};t.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},b980:function(t,e,n){var r=n("d039"),i=n("5c6c");t.exports=!r((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},b9c7:function(t,e,n){n("e507"),t.exports=n("5524").Object.assign},ba01:function(t,e,n){t.exports=n("051b")},bb2f:function(t,e,n){var r=n("d039");t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd11:function(t,e){t.exports=g,t.exports.parse=o,t.exports.compile=a,t.exports.tokensToFunction=s,t.exports.tokensToRegExp=d;var n="/",r="./",i=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function o(t,e){var o,a=[],s=0,c=0,h="",f=e&&e.delimiter||n,p=e&&e.delimiters||r,d=!1;while(null!==(o=i.exec(t))){var g=o[0],v=o[1],y=o.index;if(h+=t.slice(c,y),c=y+g.length,v)h+=v[1],d=!0;else{var m="",b=t[c],x=o[2],_=o[3],w=o[4],S=o[5];if(!d&&h.length){var O=h.length-1;p.indexOf(h[O])>-1&&(m=h[O],h=h.slice(0,O))}h&&(a.push(h),h="",d=!1);var M=""!==m&&void 0!==b&&b!==m,A="+"===S||"*"===S,I="?"===S||"*"===S,T=m||f,C=_||w;a.push({name:x||s++,prefix:m,delimiter:T,optional:I,repeat:A,partial:M,pattern:C?u(C):"[^"+l(T)+"]+?"})}}return(h||c-1;else{var y=v.repeat?"(?:"+v.pattern+")(?:"+l(v.delimiter)+"(?:"+v.pattern+"))*":v.pattern;e&&e.push(v),v.optional?v.partial?p+=l(v.prefix)+"("+y+")?":p+="(?:"+l(v.prefix)+"("+y+"))?":p+=l(v.prefix)+"("+y+")"}}return s?(o||(p+="(?:"+u+")?"),p+="$"===f?"$":"(?="+f+")"):(o||(p+="(?:"+u+"(?="+f+"))?"),d||(p+="(?="+u+"|"+f+")")),new RegExp(p,c(i))}function g(t,e,n){return t instanceof RegExp?h(t,e):Array.isArray(t)?f(t,e,n):p(t,e,n)}},c04e:function(t,e,n){var r=n("c65b"),i=n("861d"),o=n("d9b5"),a=n("dc4a"),s=n("485a"),l=n("b622"),u=TypeError,c=l("toPrimitive");t.exports=function(t,e){if(!i(t)||o(t))return t;var n,l=a(t,c);if(l){if(void 0===e&&(e="default"),n=r(l,t,e),!i(n)||o(n))return n;throw u("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},c098:function(t,e,n){t.exports=n("d4af")},c430:function(t,e){t.exports=!1},c513:function(t,e,n){var r=n("23e7"),i=n("1a2d"),o=n("d9b5"),a=n("0d51"),s=n("5692"),l=n("0b43"),u=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{keyFor:function(t){if(!o(t))throw TypeError(a(t)+" is not a symbol");if(i(u,t))return u[t]}})},c532:function(t,e,n){"use strict";(function(t){var r=n("1d2b");const{toString:i}=Object.prototype,{getPrototypeOf:o}=Object,a=(t=>e=>{const n=i.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),s=t=>(t=t.toLowerCase(),e=>a(e)===t),l=t=>e=>typeof e===t,{isArray:u}=Array,c=l("undefined");function h(t){return null!==t&&!c(t)&&null!==t.constructor&&!c(t.constructor)&&g(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const f=s("ArrayBuffer");function p(t){let e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&f(t.buffer),e}const d=l("string"),g=l("function"),v=l("number"),y=t=>null!==t&&"object"===typeof t,m=t=>!0===t||!1===t,b=t=>{if("object"!==a(t))return!1;const e=o(t);return(null===e||e===Object.prototype||null===Object.getPrototypeOf(e))&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},x=s("Date"),_=s("File"),w=s("Blob"),S=s("FileList"),O=t=>y(t)&&g(t.pipe),M=t=>{const e="[object FormData]";return t&&("function"===typeof FormData&&t instanceof FormData||i.call(t)===e||g(t.toString)&&t.toString()===e)},A=s("URLSearchParams"),I=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function T(t,e,{allOwnKeys:n=!1}={}){if(null===t||"undefined"===typeof t)return;let r,i;if("object"!==typeof t&&(t=[t]),u(t))for(r=0,i=t.length;r0)if(r=n[i],e===r.toLowerCase())return r;return null}const D=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:t)(),k=t=>!c(t)&&t!==D;function L(){const{caseless:t}=k(this)&&this||{},e={},n=(n,r)=>{const i=t&&C(e,r)||r;b(e[i])&&b(n)?e[i]=L(e[i],n):b(n)?e[i]=L({},n):u(n)?e[i]=n.slice():e[i]=n};for(let r=0,i=arguments.length;r(T(e,(e,i)=>{n&&g(e)?t[i]=Object(r["a"])(e,n):t[i]=e},{allOwnKeys:i}),t),P=t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),E=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},R=(t,e,n,r)=>{let i,a,s;const l={};if(e=e||{},null==t)return e;do{i=Object.getOwnPropertyNames(t),a=i.length;while(a-- >0)s=i[a],r&&!r(s,t,e)||l[s]||(e[s]=t[s],l[s]=!0);t=!1!==n&&o(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},N=(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return-1!==r&&r===n},z=t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!v(e))return null;const n=new Array(e);while(e-- >0)n[e]=t[e];return n},B=(t=>e=>t&&e instanceof t)("undefined"!==typeof Uint8Array&&o(Uint8Array)),V=(t,e)=>{const n=t&&t[Symbol.iterator],r=n.call(t);let i;while((i=r.next())&&!i.done){const n=i.value;e.call(t,n[0],n[1])}},F=(t,e)=>{let n;const r=[];while(null!==(n=t.exec(e)))r.push(n);return r},G=s("HTMLFormElement"),H=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),W=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),U=s("RegExp"),Y=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};T(n,(n,i)=>{!1!==e(n,i,t)&&(r[i]=n)}),Object.defineProperties(t,r)},$=t=>{Y(t,(e,n)=>{if(g(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=t[n];g(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},X=(t,e)=>{const n={},r=t=>{t.forEach(t=>{n[t]=!0})};return u(t)?r(t):r(String(t).split(e)),n},q=()=>{},Z=(t,e)=>(t=+t,Number.isFinite(t)?t:e),K="abcdefghijklmnopqrstuvwxyz",J="0123456789",Q={DIGIT:J,ALPHA:K,ALPHA_DIGIT:K+K.toUpperCase()+J},tt=(t=16,e=Q.ALPHA_DIGIT)=>{let n="";const{length:r}=e;while(t--)n+=e[Math.random()*r|0];return n};function et(t){return!!(t&&g(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])}const nt=t=>{const e=new Array(10),n=(t,r)=>{if(y(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;const i=u(t)?[]:{};return T(t,(t,e)=>{const o=n(t,r+1);!c(o)&&(i[e]=o)}),e[r]=void 0,i}}return t};return n(t,0)};e["a"]={isArray:u,isArrayBuffer:f,isBuffer:h,isFormData:M,isArrayBufferView:p,isString:d,isNumber:v,isBoolean:m,isObject:y,isPlainObject:b,isUndefined:c,isDate:x,isFile:_,isBlob:w,isRegExp:U,isFunction:g,isStream:O,isURLSearchParams:A,isTypedArray:B,isFileList:S,forEach:T,merge:L,extend:j,trim:I,stripBOM:P,inherits:E,toFlatObject:R,kindOf:a,kindOfTest:s,endsWith:N,toArray:z,forEachEntry:V,matchAll:F,isHTMLForm:G,hasOwnProperty:W,hasOwnProp:W,reduceDescriptors:Y,freezeMethods:$,toObjectSet:X,toCamelCase:H,noop:q,toFiniteNumber:Z,findKey:C,global:D,isContextDefined:k,ALPHABET:Q,generateString:tt,isSpecCompliantForm:et,toJSONObject:nt}}).call(this,n("24aa"))},c607:function(t,e,n){var r=n("83ab"),i=n("fce3"),o=n("c6b6"),a=n("edd0"),s=n("69f3").get,l=RegExp.prototype,u=TypeError;r&&i&&a(l,"dotAll",{configurable:!0,get:function(){if(this!==l){if("RegExp"===o(this))return!!s(this).dotAll;throw u("Incompatible receiver, RegExp required")}}})},c65b:function(t,e,n){var r=n("40d5"),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},c6b6:function(t,e,n){var r=n("e330"),i=r({}.toString),o=r("".slice);t.exports=function(t){return o(i(t),8,-1)}},c6cd:function(t,e,n){var r=n("da84"),i=n("6374"),o="__core-js_shared__",a=r[o]||i(o,{});t.exports=a},c6d2:function(t,e,n){"use strict";var r=n("23e7"),i=n("c65b"),o=n("c430"),a=n("5e77"),s=n("1626"),l=n("dcc3"),u=n("e163"),c=n("d2bb"),h=n("d44e"),f=n("9112"),p=n("cb2d"),d=n("b622"),g=n("3f8c"),v=n("ae93"),y=a.PROPER,m=a.CONFIGURABLE,b=v.IteratorPrototype,x=v.BUGGY_SAFARI_ITERATORS,_=d("iterator"),w="keys",S="values",O="entries",M=function(){return this};t.exports=function(t,e,n,a,d,v,A){l(n,e,a);var I,T,C,D=function(t){if(t===d&&E)return E;if(!x&&t in j)return j[t];switch(t){case w:return function(){return new n(this,t)};case S:return function(){return new n(this,t)};case O:return function(){return new n(this,t)}}return function(){return new n(this)}},k=e+" Iterator",L=!1,j=t.prototype,P=j[_]||j["@@iterator"]||d&&j[d],E=!x&&P||D(d),R="Array"==e&&j.entries||P;if(R&&(I=u(R.call(new t)),I!==Object.prototype&&I.next&&(o||u(I)===b||(c?c(I,b):s(I[_])||p(I,_,M)),h(I,k,!0,!0),o&&(g[k]=M))),y&&d==S&&P&&P.name!==S&&(!o&&m?f(j,"name",S):(L=!0,E=function(){return i(P,this)})),d)if(T={values:D(S),keys:v?E:D(w),entries:D(O)},A)for(C in T)(x||L||!(C in j))&&p(j,C,T[C]);else r({target:e,proto:!0,forced:x||L},T);return o&&!A||j[_]===E||p(j,_,E,{name:d}),g[e]=E,T}},c7eb:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),n("b636"),n("944a"),n("0c47"),n("23dc"),n("3410"),n("d9e2"),n("14d9"),n("159b"),n("b0c0"),n("131a"),n("1f68"),n("fb6a");var r=n("53ca");function i(){ -/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ -i=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,e,n){t[e]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(D){c=function(t,e,n){return t[e]=n}}function h(t,e,n,r){var i=e&&e.prototype instanceof d?e:d,a=Object.create(i.prototype),s=new I(r||[]);return o(a,"_invoke",{value:S(t,n,s)}),a}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(D){return{type:"throw",arg:D}}}t.wrap=h;var p={};function d(){}function g(){}function v(){}var y={};c(y,s,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(T([])));b&&b!==e&&n.call(b,s)&&(y=b);var x=v.prototype=d.prototype=Object.create(y);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function i(o,a,s,l){var u=f(t[o],t,a);if("throw"!==u.type){var c=u.arg,h=c.value;return h&&"object"==Object(r["a"])(h)&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){i("next",t,s,l)}),(function(t){i("throw",t,s,l)})):e.resolve(h).then((function(t){c.value=t,s(c)}),(function(t){return i("throw",t,s,l)}))}l(u.arg)}var a;o(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return a=a?a.then(r,r):r()}})}function S(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return C()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=O(a,n);if(s){if(s===p)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=f(t,e,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===p)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function O(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator["return"]&&(e.method="return",e.arg=void 0,O(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),p;var i=f(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,p;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function M(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(M,this),this.reset(!0)}function T(t){if(t){var e=t[s];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:T(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},t}},c8d2:function(t,e,n){var r=n("5e77").PROPER,i=n("d039"),o=n("5899"),a="​…᠎";t.exports=function(t){return i((function(){return!!o[t]()||a[t]()!==a||r&&o[t].name!==t}))}},c901:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},ca84:function(t,e,n){var r=n("e330"),i=n("1a2d"),o=n("fc6a"),a=n("4d64").indexOf,s=n("d012"),l=r([].push);t.exports=function(t,e){var n,r=o(t),u=0,c=[];for(n in r)!i(s,n)&&i(r,n)&&l(c,n);while(e.length>u)i(r,n=e[u++])&&(~a(c,n)||l(c,n));return c}},caad:function(t,e,n){"use strict";var r=n("23e7"),i=n("4d64").includes,o=n("d039"),a=n("44d2"),s=o((function(){return!Array(1).includes()}));r({target:"Array",proto:!0,forced:s},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),a("includes")},cb2d:function(t,e,n){var r=n("1626"),i=n("9bf2"),o=n("13d2"),a=n("6374");t.exports=function(t,e,n,s){s||(s={});var l=s.enumerable,u=void 0!==s.name?s.name:e;if(r(n)&&o(n,u,s),s.global)l?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(l=!0):delete t[e]}catch(c){}l?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},cc12:function(t,e,n){var r=n("da84"),i=n("861d"),o=r.document,a=i(o)&&i(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cc15:function(t,e,n){var r=n("b367")("wks"),i=n("8b1a"),o=n("ef08").Symbol,a="function"==typeof o,s=t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))};s.store=r},cc98:function(t,e,n){"use strict";var r=n("23e7"),i=n("c430"),o=n("4738").CONSTRUCTOR,a=n("d256"),s=n("d066"),l=n("1626"),u=n("cb2d"),c=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(t){return this.then(void 0,t)}}),!i&&l(a)){var h=s("Promise").prototype["catch"];c["catch"]!==h&&u(c,"catch",h,{unsafe:!0})}},cca6:function(t,e,n){var r=n("23e7"),i=n("60da");r({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},cdce:function(t,e,n){var r=n("da84"),i=n("1626"),o=r.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},cdf9:function(t,e,n){var r=n("825a"),i=n("861d"),o=n("f069");t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t),a=n.resolve;return a(e),n.promise}},ce7a:function(t,e,n){var r=n("9c0e"),i=n("0983"),o=n("5a94")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},cee4:function(t,e,n){"use strict";var r=n("c532"),i=n("1d2b"),o=n("e467");function a(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function s(t,e){this._pairs=[],t&&Object(o["a"])(t,this,e)}const l=s.prototype;l.append=function(t,e){this._pairs.push([t,e])},l.toString=function(t){const e=t?function(e){return t.call(this,e,a)}:a;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var u=s;function c(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function h(t,e,n){if(!e)return t;const i=n&&n.encode||c,o=n&&n.serialize;let a;if(a=o?o(e,n):r["a"].isURLSearchParams(e)?e.toString():new u(e,n).toString(i),a){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+a}return t}class f{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){r["a"].forEach(this.handlers,(function(e){null!==e&&t(e)}))}}var p=f,d=n("7917"),g={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},v="undefined"!==typeof URLSearchParams?URLSearchParams:u,y="undefined"!==typeof FormData?FormData:null,m="undefined"!==typeof Blob?Blob:null;const b=(()=>{let t;return("undefined"===typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),x=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)();var _={isBrowser:!0,classes:{URLSearchParams:v,FormData:y,Blob:m},isStandardBrowserEnv:b,isStandardBrowserWebWorkerEnv:x,protocols:["http","https","file","blob","url","data"]};function w(t,e){return Object(o["a"])(t,new _.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,i){return _.isNode&&r["a"].isBuffer(t)?(this.append(e,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},e))}function S(t){return r["a"].matchAll(/\w+|\[(\w*)]/g,t).map(t=>"[]"===t[0]?"":t[1]||t[0])}function O(t){const e={},n=Object.keys(t);let r;const i=n.length;let o;for(r=0;r=t.length;if(a=!a&&r["a"].isArray(i)?i.length:a,l)return r["a"].hasOwnProp(i,a)?i[a]=[i[a],n]:i[a]=n,!s;i[a]&&r["a"].isObject(i[a])||(i[a]=[]);const u=e(t,n,i[a],o);return u&&r["a"].isArray(i[a])&&(i[a]=O(i[a])),!s}if(r["a"].isFormData(t)&&r["a"].isFunction(t.entries)){const n={};return r["a"].forEachEntry(t,(t,r)=>{e(S(t),r,n,0)}),n}return null}var A=M;const I={"Content-Type":void 0};function T(t,e,n){if(r["a"].isString(t))try{return(e||JSON.parse)(t),r["a"].trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(n||JSON.stringify)(t)}const C={transitional:g,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,a=r["a"].isObject(t);a&&r["a"].isHTMLForm(t)&&(t=new FormData(t));const s=r["a"].isFormData(t);if(s)return i&&i?JSON.stringify(A(t)):t;if(r["a"].isArrayBuffer(t)||r["a"].isBuffer(t)||r["a"].isStream(t)||r["a"].isFile(t)||r["a"].isBlob(t))return t;if(r["a"].isArrayBufferView(t))return t.buffer;if(r["a"].isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return w(t,this.formSerializer).toString();if((l=r["a"].isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return Object(o["a"])(l?{"files[]":t}:t,e&&new e,this.formSerializer)}}return a||i?(e.setContentType("application/json",!1),T(t)):t}],transformResponse:[function(t){const e=this.transitional||C.transitional,n=e&&e.forcedJSONParsing,i="json"===this.responseType;if(t&&r["a"].isString(t)&&(n&&!this.responseType||i)){const n=e&&e.silentJSONParsing,r=!n&&i;try{return JSON.parse(t)}catch(o){if(r){if("SyntaxError"===o.name)throw d["a"].from(o,d["a"].ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:_.classes.FormData,Blob:_.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r["a"].forEach(["delete","get","head"],(function(t){C.headers[t]={}})),r["a"].forEach(["post","put","patch"],(function(t){C.headers[t]=r["a"].merge(I)}));var D=C;const k=r["a"].toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var L=t=>{const e={};let n,r,i;return t&&t.split("\n").forEach((function(t){i=t.indexOf(":"),n=t.substring(0,i).trim().toLowerCase(),r=t.substring(i+1).trim(),!n||e[n]&&k[n]||("set-cookie"===n?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)})),e};const j=Symbol("internals");function P(t){return t&&String(t).trim().toLowerCase()}function E(t){return!1===t||null==t?t:r["a"].isArray(t)?t.map(E):String(t)}function R(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;while(r=n.exec(t))e[r[1]]=r[2];return e}function N(t){return/^[-_a-zA-Z]+$/.test(t.trim())}function z(t,e,n,i,o){return r["a"].isFunction(i)?i.call(this,e,n):(o&&(e=n),r["a"].isString(e)?r["a"].isString(i)?-1!==e.indexOf(i):r["a"].isRegExp(i)?i.test(e):void 0:void 0)}function B(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,e,n)=>e.toUpperCase()+n)}function V(t,e){const n=r["a"].toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(t,n,i){return this[r].call(this,e,t,n,i)},configurable:!0})})}class F{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function o(t,e,n){const o=P(e);if(!o)throw new Error("header name must be a non-empty string");const a=r["a"].findKey(i,o);(!a||void 0===i[a]||!0===n||void 0===n&&!1!==i[a])&&(i[a||e]=E(t))}const a=(t,e)=>r["a"].forEach(t,(t,n)=>o(t,n,e));return r["a"].isPlainObject(t)||t instanceof this.constructor?a(t,e):r["a"].isString(t)&&(t=t.trim())&&!N(t)?a(L(t),e):null!=t&&o(e,t,n),this}get(t,e){if(t=P(t),t){const n=r["a"].findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return R(t);if(r["a"].isFunction(e))return e.call(this,t,n);if(r["a"].isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=P(t),t){const n=r["a"].findKey(this,t);return!(!n||void 0===this[n]||e&&!z(this,this[n],n,e))}return!1}delete(t,e){const n=this;let i=!1;function o(t){if(t=P(t),t){const o=r["a"].findKey(n,t);!o||e&&!z(n,n[o],o,e)||(delete n[o],i=!0)}}return r["a"].isArray(t)?t.forEach(o):o(t),i}clear(t){const e=Object.keys(this);let n=e.length,r=!1;while(n--){const i=e[n];t&&!z(this,this[i],i,t,!0)||(delete this[i],r=!0)}return r}normalize(t){const e=this,n={};return r["a"].forEach(this,(i,o)=>{const a=r["a"].findKey(n,o);if(a)return e[a]=E(i),void delete e[o];const s=t?B(o):String(o).trim();s!==o&&delete e[o],e[s]=E(i),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return r["a"].forEach(this,(n,i)=>{null!=n&&!1!==n&&(e[i]=t&&r["a"].isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(t=>n.set(t)),n}static accessor(t){const e=this[j]=this[j]={accessors:{}},n=e.accessors,i=this.prototype;function o(t){const e=P(t);n[e]||(V(i,t),n[e]=!0)}return r["a"].isArray(t)?t.forEach(o):o(t),this}}F.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),r["a"].freezeMethods(F.prototype),r["a"].freezeMethods(F);var G=F;function H(t,e){const n=this||D,i=e||n,o=G.from(i.headers);let a=i.data;return r["a"].forEach(t,(function(t){a=t.call(n,a,o.normalize(),e?e.status:void 0)})),o.normalize(),a}function W(t){return!(!t||!t.__CANCEL__)}function U(t,e,n){d["a"].call(this,null==t?"canceled":t,d["a"].ERR_CANCELED,e,n),this.name="CanceledError"}r["a"].inherits(U,d["a"],{__CANCEL__:!0});var Y=U,$=n("4581");function X(t,e,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?e(new d["a"]("Request failed with status code "+n.status,[d["a"].ERR_BAD_REQUEST,d["a"].ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}var q=_.isStandardBrowserEnv?function(){return{write:function(t,e,n,i,o,a){const s=[];s.push(t+"="+encodeURIComponent(e)),r["a"].isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r["a"].isString(i)&&s.push("path="+i),r["a"].isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function Z(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function K(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}function J(t,e){return t&&!Z(e)?K(t,e):e}var Q=_.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function i(n){let r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=i(window.location.href),function(t){const e=r["a"].isString(t)?i(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return function(){return!0}}();function tt(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function et(t,e){t=t||10;const n=new Array(t),r=new Array(t);let i,o=0,a=0;return e=void 0!==e?e:1e3,function(s){const l=Date.now(),u=r[a];i||(i=l),n[o]=s,r[o]=l;let c=a,h=0;while(c!==o)h+=n[c++],c%=t;if(o=(o+1)%t,o===a&&(a=(a+1)%t),l-i{const o=i.loaded,a=i.lengthComputable?i.total:void 0,s=o-n,l=r(s),u=o<=a;n=o;const c={loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&u?(a-o)/l:void 0,event:i};c[e?"download":"upload"]=!0,t(c)}}const it="undefined"!==typeof XMLHttpRequest;var ot=it&&function(t){return new Promise((function(e,n){let i=t.data;const o=G.from(t.headers).normalize(),a=t.responseType;let s;function l(){t.cancelToken&&t.cancelToken.unsubscribe(s),t.signal&&t.signal.removeEventListener("abort",s)}r["a"].isFormData(i)&&(_.isStandardBrowserEnv||_.isStandardBrowserWebWorkerEnv)&&o.setContentType(!1);let u=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",n=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.set("Authorization","Basic "+btoa(e+":"+n))}const c=J(t.baseURL,t.url);function f(){if(!u)return;const r=G.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),i=a&&"text"!==a&&"json"!==a?u.response:u.responseText,o={data:i,status:u.status,statusText:u.statusText,headers:r,config:t,request:u};X((function(t){e(t),l()}),(function(t){n(t),l()}),o),u=null}if(u.open(t.method.toUpperCase(),h(c,t.params,t.paramsSerializer),!0),u.timeout=t.timeout,"onloadend"in u?u.onloadend=f:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(f)},u.onabort=function(){u&&(n(new d["a"]("Request aborted",d["a"].ECONNABORTED,t,u)),u=null)},u.onerror=function(){n(new d["a"]("Network Error",d["a"].ERR_NETWORK,t,u)),u=null},u.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const r=t.transitional||g;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new d["a"](e,r.clarifyTimeoutError?d["a"].ETIMEDOUT:d["a"].ECONNABORTED,t,u)),u=null},_.isStandardBrowserEnv){const e=(t.withCredentials||Q(c))&&t.xsrfCookieName&&q.read(t.xsrfCookieName);e&&o.set(t.xsrfHeaderName,e)}void 0===i&&o.setContentType(null),"setRequestHeader"in u&&r["a"].forEach(o.toJSON(),(function(t,e){u.setRequestHeader(e,t)})),r["a"].isUndefined(t.withCredentials)||(u.withCredentials=!!t.withCredentials),a&&"json"!==a&&(u.responseType=t.responseType),"function"===typeof t.onDownloadProgress&&u.addEventListener("progress",rt(t.onDownloadProgress,!0)),"function"===typeof t.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",rt(t.onUploadProgress)),(t.cancelToken||t.signal)&&(s=e=>{u&&(n(!e||e.type?new Y(null,t,u):e),u.abort(),u=null)},t.cancelToken&&t.cancelToken.subscribe(s),t.signal&&(t.signal.aborted?s():t.signal.addEventListener("abort",s)));const p=tt(c);p&&-1===_.protocols.indexOf(p)?n(new d["a"]("Unsupported protocol "+p+":",d["a"].ERR_BAD_REQUEST,t)):u.send(i||null)}))};const at={http:$["a"],xhr:ot};r["a"].forEach(at,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var st={getAdapter:t=>{t=r["a"].isArray(t)?t:[t];const{length:e}=t;let n,i;for(let o=0;ot instanceof G?t.toJSON():t;function ht(t,e){e=e||{};const n={};function i(t,e,n){return r["a"].isPlainObject(t)&&r["a"].isPlainObject(e)?r["a"].merge.call({caseless:n},t,e):r["a"].isPlainObject(e)?r["a"].merge({},e):r["a"].isArray(e)?e.slice():e}function o(t,e,n){return r["a"].isUndefined(e)?r["a"].isUndefined(t)?void 0:i(void 0,t,n):i(t,e,n)}function a(t,e){if(!r["a"].isUndefined(e))return i(void 0,e)}function s(t,e){return r["a"].isUndefined(e)?r["a"].isUndefined(t)?void 0:i(void 0,t):i(void 0,e)}function l(n,r,o){return o in e?i(n,r):o in t?i(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l,headers:(t,e)=>o(ct(t),ct(e),!0)};return r["a"].forEach(Object.keys(t).concat(Object.keys(e)),(function(i){const a=u[i]||o,s=a(t[i],e[i],i);r["a"].isUndefined(s)&&a!==l||(n[i]=s)})),n}const ft="1.3.4",pt={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{pt[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const dt={};function gt(t,e,n){if("object"!==typeof t)throw new d["a"]("options must be an object",d["a"].ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;while(i-- >0){const o=r[i],a=e[o];if(a){const e=t[o],n=void 0===e||a(e,o,t);if(!0!==n)throw new d["a"]("option "+o+" must be "+n,d["a"].ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new d["a"]("Unknown option "+o,d["a"].ERR_BAD_OPTION)}}pt.transitional=function(t,e,n){function r(t,e){return"[Axios v"+ft+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,i,o)=>{if(!1===t)throw new d["a"](r(i," has been removed"+(e?" in "+e:"")),d["a"].ERR_DEPRECATED);return e&&!dt[i]&&(dt[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}};var vt={assertOptions:gt,validators:pt};const yt=vt.validators;class mt{constructor(t){this.defaults=t,this.interceptors={request:new p,response:new p}}request(t,e){"string"===typeof t?(e=e||{},e.url=t):e=t||{},e=ht(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:o}=e;let a;void 0!==n&&vt.assertOptions(n,{silentJSONParsing:yt.transitional(yt.boolean),forcedJSONParsing:yt.transitional(yt.boolean),clarifyTimeoutError:yt.transitional(yt.boolean)},!1),void 0!==i&&vt.assertOptions(i,{encode:yt.function,serialize:yt.function},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase(),a=o&&r["a"].merge(o.common,o[e.method]),a&&r["a"].forEach(["delete","get","head","post","put","patch","common"],t=>{delete o[t]}),e.headers=G.concat(a,o);const s=[];let l=!0;this.interceptors.request.forEach((function(t){"function"===typeof t.runWhen&&!1===t.runWhen(e)||(l=l&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(t){u.push(t.fulfilled,t.rejected)}));let h,f=0;if(!l){const t=[ut.bind(this),void 0];t.unshift.apply(t,s),t.push.apply(t,u),h=t.length,c=Promise.resolve(e);while(f{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0)n._listeners[e](t);n._listeners=null}),this.promise.then=t=>{let e;const r=new Promise(t=>{n.subscribe(t),e=t}).then(t);return r.cancel=function(){n.unsubscribe(e)},r},t((function(t,r,i){n.reason||(n.reason=new Y(t,r,i),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;const e=new xt((function(e){t=e}));return{token:e,cancel:t}}}var _t=xt;function wt(t){return function(e){return t.apply(null,e)}}function St(t){return r["a"].isObject(t)&&!0===t.isAxiosError}const Ot={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ot).forEach(([t,e])=>{Ot[e]=t});var Mt=Ot;function At(t){const e=new bt(t),n=Object(i["a"])(bt.prototype.request,e);return r["a"].extend(n,bt.prototype,e,{allOwnKeys:!0}),r["a"].extend(n,e,null,{allOwnKeys:!0}),n.create=function(e){return At(ht(t,e))},n}const It=At(D);It.Axios=bt,It.CanceledError=Y,It.CancelToken=_t,It.isCancel=W,It.VERSION=ft,It.toFormData=o["a"],It.AxiosError=d["a"],It.Cancel=It.CanceledError,It.all=function(t){return Promise.all(t)},It.spread=wt,It.isAxiosError=St,It.mergeConfig=ht,It.AxiosHeaders=G,It.formToJSON=t=>A(r["a"].isHTMLForm(t)?new FormData(t):t),It.HttpStatusCode=Mt,It.default=It;e["a"]=It},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var r=n("da84"),i=n("1626"),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},d16a:function(t,e,n){var r=n("fc5e"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!r.call({1:2},1);e.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},d256:function(t,e,n){var r=n("da84");t.exports=r.Promise},d28b:function(t,e,n){var r=n("e065");r("iterator")},d2bb:function(t,e,n){var r=n("7282"),i=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=r(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(a){}return function(n,r){return i(n),o(r),e?t(n,r):n.__proto__=r,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),i=n("cb2d"),o=n("b041");r||i(Object.prototype,"toString",o,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,i=n("1a2d"),o=n("b622"),a=o("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!i(t,a)&&r(t,a,{configurable:!0,value:e})}},d4af:function(t,e,n){"use strict";var r=n("8eb7"),i=n("7b3e"),o=10,a=40,s=800;function l(t){var e=0,n=0,r=0,i=0;return"detail"in t&&(n=t.detail),"wheelDelta"in t&&(n=-t.wheelDelta/120),"wheelDeltaY"in t&&(n=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=n,n=0),r=e*o,i=n*o,"deltaY"in t&&(i=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||i)&&t.deltaMode&&(1==t.deltaMode?(r*=a,i*=a):(r*=s,i*=s)),r&&!e&&(e=r<1?-1:1),i&&!n&&(n=i<1?-1:1),{spinX:e,spinY:n,pixelX:r,pixelY:i}}l.getEventType=function(){return r.firefox()?"DOMMouseScroll":i("wheel")?"wheel":"mousewheel"},t.exports=l},d4c3:function(t,e,n){var r=n("342f");t.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},d51b:function(t,e,n){"use strict";var r=function(){function t(t){this.value=t}return t}(),i=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new r(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),o=function(){function t(t){this._list=new i,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,o=null;if(null==i[t]){var a=n.len(),s=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var l=n.head;n.remove(l),delete i[l.key],o=l.value,this._lastRemovedEntry=l}s?s.value=e:s=new r(e),s.key=t,n.insertEntry(s),i[t]=s}return o},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}();e["a"]=o},d58f:function(t,e,n){var r=n("59ed"),i=n("7b0b"),o=n("44ad"),a=n("07fa"),s=TypeError,l=function(t){return function(e,n,l,u){r(n);var c=i(e),h=o(c),f=a(c),p=t?f-1:0,d=t?-1:1;if(l<2)while(1){if(p in h){u=h[p],p+=d;break}if(p+=d,t?p<0:f<=p)throw s("Reduce of empty array with no initial value")}for(;t?p>=0:f>p;p+=d)p in h&&(u=n(u,h[p],p,c));return u}};t.exports={left:l(!1),right:l(!0)}},d6d6:function(t,e){var n=TypeError;t.exports=function(t,e){if(t1?arguments[1]:void 0)}})},d86b:function(t,e,n){var r=n("d039");t.exports=r((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},d9b5:function(t,e,n){var r=n("d066"),i=n("1626"),o=n("3a9b"),a=n("fdbf"),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return i(e)&&o(e.prototype,s(t))}},d9e2:function(t,e,n){var r=n("23e7"),i=n("da84"),o=n("2ba4"),a=n("e5cb"),s="WebAssembly",l=i[s],u=7!==Error("e",{cause:7}).cause,c=function(t,e){var n={};n[t]=a(t,e,u),r({global:!0,constructor:!0,arity:1,forced:u},n)},h=function(t,e){if(l&&l[t]){var n={};n[t]=a(s+"."+t,e,u),r({target:s,stat:!0,constructor:!0,arity:1,forced:u},n)}};c("Error",(function(t){return function(e){return o(t,this,arguments)}})),c("EvalError",(function(t){return function(e){return o(t,this,arguments)}})),c("RangeError",(function(t){return function(e){return o(t,this,arguments)}})),c("ReferenceError",(function(t){return function(e){return o(t,this,arguments)}})),c("SyntaxError",(function(t){return function(e){return o(t,this,arguments)}})),c("TypeError",(function(t){return function(e){return o(t,this,arguments)}})),c("URIError",(function(t){return function(e){return o(t,this,arguments)}})),h("CompileError",(function(t){return function(e){return o(t,this,arguments)}})),h("LinkError",(function(t){return function(e){return o(t,this,arguments)}})),h("RuntimeError",(function(t){return function(e){return o(t,this,arguments)}}))},d9f5:function(t,e,n){"use strict";var r=n("23e7"),i=n("da84"),o=n("c65b"),a=n("e330"),s=n("c430"),l=n("83ab"),u=n("04f8"),c=n("d039"),h=n("1a2d"),f=n("3a9b"),p=n("825a"),d=n("fc6a"),g=n("a04b"),v=n("577e"),y=n("5c6c"),m=n("7c73"),b=n("df75"),x=n("241c"),_=n("057f"),w=n("7418"),S=n("06cf"),O=n("9bf2"),M=n("37e8"),A=n("d1e7"),I=n("cb2d"),T=n("edd0"),C=n("5692"),D=n("f772"),k=n("d012"),L=n("90e3"),j=n("b622"),P=n("e538"),E=n("e065"),R=n("57b9"),N=n("d44e"),z=n("69f3"),B=n("b727").forEach,V=D("hidden"),F="Symbol",G="prototype",H=z.set,W=z.getterFor(F),U=Object[G],Y=i.Symbol,$=Y&&Y[G],X=i.TypeError,q=i.QObject,Z=S.f,K=O.f,J=_.f,Q=A.f,tt=a([].push),et=C("symbols"),nt=C("op-symbols"),rt=C("wks"),it=!q||!q[G]||!q[G].findChild,ot=l&&c((function(){return 7!=m(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=Z(U,e);r&&delete U[e],K(t,e,n),r&&t!==U&&K(U,e,r)}:K,at=function(t,e){var n=et[t]=m($);return H(n,{type:F,tag:t,description:e}),l||(n.description=e),n},st=function(t,e,n){t===U&&st(nt,e,n),p(t);var r=g(e);return p(n),h(et,r)?(n.enumerable?(h(t,V)&&t[V][r]&&(t[V][r]=!1),n=m(n,{enumerable:y(0,!1)})):(h(t,V)||K(t,V,y(1,{})),t[V][r]=!0),ot(t,r,n)):K(t,r,n)},lt=function(t,e){p(t);var n=d(e),r=b(n).concat(pt(n));return B(r,(function(e){l&&!o(ct,n,e)||st(t,e,n[e])})),t},ut=function(t,e){return void 0===e?m(t):lt(m(t),e)},ct=function(t){var e=g(t),n=o(Q,this,e);return!(this===U&&h(et,e)&&!h(nt,e))&&(!(n||!h(this,e)||!h(et,e)||h(this,V)&&this[V][e])||n)},ht=function(t,e){var n=d(t),r=g(e);if(n!==U||!h(et,r)||h(nt,r)){var i=Z(n,r);return!i||!h(et,r)||h(n,V)&&n[V][r]||(i.enumerable=!0),i}},ft=function(t){var e=J(d(t)),n=[];return B(e,(function(t){h(et,t)||h(k,t)||tt(n,t)})),n},pt=function(t){var e=t===U,n=J(e?nt:d(t)),r=[];return B(n,(function(t){!h(et,t)||e&&!h(U,t)||tt(r,et[t])})),r};u||(Y=function(){if(f($,this))throw X("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?v(arguments[0]):void 0,e=L(t),n=function(t){this===U&&o(n,nt,t),h(this,V)&&h(this[V],e)&&(this[V][e]=!1),ot(this,e,y(1,t))};return l&&it&&ot(U,e,{configurable:!0,set:n}),at(e,t)},$=Y[G],I($,"toString",(function(){return W(this).tag})),I(Y,"withoutSetter",(function(t){return at(L(t),t)})),A.f=ct,O.f=st,M.f=lt,S.f=ht,x.f=_.f=ft,w.f=pt,P.f=function(t){return at(j(t),t)},l&&(T($,"description",{configurable:!0,get:function(){return W(this).description}}),s||I(U,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!u,sham:!u},{Symbol:Y}),B(b(rt),(function(t){E(t)})),r({target:F,stat:!0,forced:!u},{useSetter:function(){it=!0},useSimple:function(){it=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!l},{create:ut,defineProperty:st,defineProperties:lt,getOwnPropertyDescriptor:ht}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:ft}),R(),N(Y,F),k[V]=!0},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n("24aa"))},dbb4:function(t,e,n){var r=n("23e7"),i=n("83ab"),o=n("56ef"),a=n("fc6a"),s=n("06cf"),l=n("8418");r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){var e,n,r=a(t),i=s.f,u=o(r),c={},h=0;while(u.length>h)n=i(r,e=u[h++]),void 0!==n&&l(c,e,n);return c}})},dc4a:function(t,e,n){var r=n("59ed"),i=n("7234");t.exports=function(t,e){var n=t[e];return i(n)?void 0:r(n)}},dcc3:function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,i=n("7c73"),o=n("5c6c"),a=n("d44e"),s=n("3f8c"),l=function(){return this};t.exports=function(t,e,n,u){var c=e+" Iterator";return t.prototype=i(r,{next:o(+!u,n)}),a(t,c,!1,!0),s[c]=l,t}},ddb0:function(t,e,n){var r=n("da84"),i=n("fdbc"),o=n("785a"),a=n("e260"),s=n("9112"),l=n("b622"),u=l("iterator"),c=l("toStringTag"),h=a.values,f=function(t,e){if(t){if(t[u]!==h)try{s(t,u,h)}catch(r){t[u]=h}if(t[c]||s(t,c,e),i[e])for(var n in a)if(t[n]!==a[n])try{s(t,n,a[n])}catch(r){t[n]=a[n]}}};for(var p in i)f(r[p]&&r[p].prototype,p);f(o,"DOMTokenList")},df75:function(t,e,n){var r=n("ca84"),i=n("7839");t.exports=Object.keys||function(t){return r(t,i)}},df7c:function(t,e,n){(function(t){function n(t,e){for(var n=0,r=t.length-1;r>=0;r--){var i=t[r];"."===i?t.splice(r,1):".."===i?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t){"string"!==typeof t&&(t+="");var e,n=0,r=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){n=e+1;break}}else-1===r&&(i=!1,r=e+1);return-1===r?"":t.slice(n,r)}function i(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!r;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,r="/"===a.charAt(0))}return e=n(i(e.split("/"),(function(t){return!!t})),!r).join("/"),(r?"/":"")+e||"."},e.normalize=function(t){var r=e.isAbsolute(t),a="/"===o(t,-1);return t=n(i(t.split("/"),(function(t){return!!t})),!r).join("/"),t||r||(t="."),t&&a&&(t+="/"),(r?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(i(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0;n--)if(""!==t[n])break;return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split("/")),o=r(n.split("/")),a=Math.min(i.length,o.length),s=a,l=0;l=1;--o)if(e=t.charCodeAt(o),47===e){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":t.slice(0,r)},e.basename=function(t,e){var n=r(t);return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,n=0,r=-1,i=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===r&&(i=!1,r=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!i){n=a+1;break}}return-1===e||-1===r||0===o||1===o&&e===r-1&&e===n+1?"":t.slice(e,r)};var o="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)}}).call(this,n("4362"))},dfe5:function(t,e){},e017:function(t,e,n){(function(e){(function(e,n){t.exports=n()})(0,(function(){"use strict";var t=function(t){var e=t.id,n=t.viewBox,r=t.content;this.id=e,this.viewBox=n,this.content=r};t.prototype.stringify=function(){return this.content},t.prototype.toString=function(){return this.stringify()},t.prototype.destroy=function(){var t=this;["id","viewBox","content"].forEach((function(e){return delete t[e]}))};var n=function(t){var e=!!document.importNode,n=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement;return e?document.importNode(n,!0):n};"undefined"!==typeof window?window:"undefined"!==typeof e||"undefined"!==typeof self&&self;function r(t,e){return e={exports:{}},t(e,e.exports),e.exports}var i=r((function(t,e){(function(e,n){t.exports=n()})(0,(function(){function t(t){var e=t&&"object"===typeof t;return e&&"[object RegExp]"!==Object.prototype.toString.call(t)&&"[object Date]"!==Object.prototype.toString.call(t)}function e(t){return Array.isArray(t)?[]:{}}function n(n,r){var i=r&&!0===r.clone;return i&&t(n)?o(e(n),n,r):n}function r(e,r,i){var a=e.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,i):t(r)?a[s]=o(e[s],r,i):-1===e.indexOf(r)&&a.push(n(r,i))})),a}function i(e,r,i){var a={};return t(e)&&Object.keys(e).forEach((function(t){a[t]=n(e[t],i)})),Object.keys(r).forEach((function(s){t(r[s])&&e[s]?a[s]=o(e[s],r[s],i):a[s]=n(r[s],i)})),a}function o(t,e,o){var a=Array.isArray(e),s=o||{arrayMerge:r},l=s.arrayMerge||r;return a?Array.isArray(t)?l(t,e,o):n(e,o):i(t,e,o)}return o.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,n){return o(t,n,e)}))},o}))})),o=r((function(t,e){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};e.default=n,t.exports=e.default})),a=function(t){return Object.keys(t).map((function(e){var n=t[e].toString().replace(/"/g,""");return e+'="'+n+'"'})).join(" ")},s=o.svg,l=o.xlink,u={};u[s.name]=s.uri,u[l.name]=l.uri;var c=function(t,e){void 0===t&&(t="");var n=i(u,e||{}),r=a(n);return""+t+""},h=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={isMounted:{}};return r.isMounted.get=function(){return!!this.node},e.createFromExistingNode=function(t){return new e({id:t.getAttribute("id"),viewBox:t.getAttribute("viewBox"),content:t.outerHTML})},e.prototype.destroy=function(){this.isMounted&&this.unmount(),t.prototype.destroy.call(this)},e.prototype.mount=function(t){if(this.isMounted)return this.node;var e="string"===typeof t?document.querySelector(t):t,n=this.render();return this.node=n,e.appendChild(n),n},e.prototype.render=function(){var t=this.stringify();return n(c(t)).childNodes[0]},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(e.prototype,r),e}(t);return h}))}).call(this,n("24aa"))},e01a:function(t,e,n){"use strict";var r=n("23e7"),i=n("83ab"),o=n("da84"),a=n("e330"),s=n("1a2d"),l=n("1626"),u=n("3a9b"),c=n("577e"),h=n("edd0"),f=n("e893"),p=o.Symbol,d=p&&p.prototype;if(i&&l(p)&&(!("description"in d)||void 0!==p().description)){var g={},v=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:c(arguments[0]),e=u(d,this)?new p(t):void 0===t?p():p(t);return""===t&&(g[e]=!0),e};f(v,p),v.prototype=d,d.constructor=v;var y="Symbol(test)"==String(p("test")),m=a(d.valueOf),b=a(d.toString),x=/^Symbol\((.*)\)[^)]+$/,_=a("".replace),w=a("".slice);h(d,"description",{configurable:!0,get:function(){var t=m(this);if(s(g,t))return"";var e=b(t),n=y?w(e,7,-1):_(e,x,"$1");return""===n?void 0:n}}),r({global:!0,constructor:!0,forced:!0},{Symbol:v})}},e065:function(t,e,n){var r=n("428f"),i=n("1a2d"),o=n("e538"),a=n("9bf2").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});i(e,t)||a(e,t,{value:o.f(t)})}},e163:function(t,e,n){var r=n("1a2d"),i=n("1626"),o=n("7b0b"),a=n("f772"),s=n("e177"),l=a("IE_PROTO"),u=Object,c=u.prototype;t.exports=s?u.getPrototypeOf:function(t){var e=o(t);if(r(e,l))return e[l];var n=e.constructor;return i(n)&&e instanceof n?n.prototype:e instanceof u?c:null}},e177:function(t,e,n){var r=n("d039");t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e198:function(t,e,n){var r=n("ef08"),i=n("5524"),o=n("e444"),a=n("fcd4"),s=n("1a14").f;t.exports=function(t){var e=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},e260:function(t,e,n){"use strict";var r=n("fc6a"),i=n("44d2"),o=n("3f8c"),a=n("69f3"),s=n("9bf2").f,l=n("c6d2"),u=n("4754"),c=n("c430"),h=n("83ab"),f="Array Iterator",p=a.set,d=a.getterFor(f);t.exports=l(Array,"Array",(function(t,e){p(this,{type:f,target:r(t),index:0,kind:e})}),(function(){var t=d(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,u(void 0,!0)):u("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values");var g=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!c&&h&&"values"!==g.name)try{s(g,"name",{value:"values"})}catch(v){}},e267:function(t,e,n){var r=n("e330"),i=n("e8b5"),o=n("1626"),a=n("c6b6"),s=n("577e"),l=r([].push);t.exports=function(t){if(o(t))return t;if(i(t)){for(var e=t.length,n=[],r=0;rm&&f(r,arguments[m]),r}));if(O.prototype=w,"Error"!==x?s?s(O,S):l(O,S,{name:!0}):d&&y in _&&(u(O,_,y),u(O,_,"prepareStackTrace")),l(O,_),!g)try{w.name!==x&&o(w,"name",x),w.constructor=O}catch(M){}return O}}},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){n("5e7e"),n("14e5"),n("cc98"),n("3529"),n("f22b"),n("7149")},e893:function(t,e,n){var r=n("1a2d"),i=n("56ef"),o=n("06cf"),a=n("9bf2");t.exports=function(t,e,n){for(var s=i(e),l=a.f,u=o.f,c=0;c0?r:n)(t)}},fc6a:function(t,e,n){var r=n("44ad"),i=n("1d80");t.exports=function(t){return r(i(t))}},fcd4:function(t,e,n){e.f=n("cc15")},fce3:function(t,e,n){var r=n("d039"),i=n("da84"),o=i.RegExp;t.exports=r((function(){var t=o(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)}))},fdbc:function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(t,e,n){var r=n("04f8");t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fed5:function(t,e){e.f=Object.getOwnPropertySymbols}}]); \ No newline at end of file diff --git a/threadpool/server/console/src/main/resources/static/static/js/chunk-libs.4ce3f27c.js b/threadpool/server/console/src/main/resources/static/static/js/chunk-libs.4ce3f27c.js new file mode 100644 index 00000000..fa1ac422 --- /dev/null +++ b/threadpool/server/console/src/main/resources/static/static/js/chunk-libs.4ce3f27c.js @@ -0,0 +1,93 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-libs"],{"00b4":function(t,e,n){"use strict";n("ac1f");var i=n("23e7"),r=n("c65b"),o=n("1626"),a=n("825a"),s=n("577e"),u=function(){var t=!1,e=/[ac]/;return e.exec=function(){return t=!0,/./.exec.apply(this,arguments)},!0===e.test("abc")&&t}(),l=/./.test;i({target:"RegExp",proto:!0,forced:!u},{test:function(t){var e=a(this),n=s(t),i=e.exec;if(!o(i))return r(l,e,n);var u=r(i,e,n);return null!==u&&(a(u),!0)}})},"00dc":function(t,e,n){(function(t){var i=n("58a2"),r=n("c24d"),o=n("561d");function a(e){var n=new t(r[e].prime,"hex"),i=new t(r[e].gen,"hex");return new o(n,i)}var s={binary:!0,hex:!0,base64:!0};function u(e,n,r,a){return t.isBuffer(n)||void 0===s[n]?u(e,"binary",n,r):(n=n||"binary",a=a||"binary",r=r||new t([2]),t.isBuffer(r)||(r=new t(r,a)),"number"===typeof e?new o(i(e,r),r,!0):(t.isBuffer(e)||(e=new t(e,n)),new o(e,r,!0)))}e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=a,e.createDiffieHellman=e.DiffieHellman=u}).call(this,n("1c35").Buffer)},"00e7":function(t,e,n){(function(){Number.isInteger=Number.isInteger||function(t){return"number"===typeof t&&isFinite(t)&&Math.floor(t)===t};var e=n("06b1"),i={install:function(t){t.prototype.$cookie=this,t.cookie=this},set:function(t,n,i){var r=i;return Number.isInteger(i)&&(r={expires:i}),e.set(t,n,r)},get:function(t){return e.get(t)},delete:function(t,e){var n={expires:-1};void 0!==e&&(n=Object.assign(e,n)),this.set(t,"",n)}};t.exports=i})()},"00ee":function(t,e,n){var i=n("b622"),r=i("toStringTag"),o={};o[r]="z",t.exports="[object z]"===String(o)},"0106":function(t,e,n){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!==typeof window&&"undefined"!==typeof window.Buffer?window.Buffer:n(14).Buffer}catch(I){}function s(t,e){var n=t.charCodeAt(e);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},"0145":function(t,e){e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},"0184":function(t,e,n){"use strict";var i=n("da3e");function r(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=r,r.prototype._init=function(){},r.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},r.prototype._buffer=function(t,e){for(var n=Math.min(this.buffer.length-this.bufferOff,t.length-e),i=0;i0;i--)e+=this._buffer(t,e),n+=this._flushBuffer(r,n);return e+=this._buffer(t,e),r},r.prototype.final=function(t){var e,n;return t&&(e=this.update(t)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(n):n},r.prototype._pad=function(t,e){if(0===e)return!1;while(eu)i(s,n=e[u++])&&(~o(l,n)||l.push(n));return l}},"04f8":function(t,e,n){var i=n("2d00"),r=n("d039"),o=n("da84"),a=o.String;t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol();return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},"051b":function(t,e,n){var i=n("1a14"),r=n("10db");t.exports=n("0bad")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"057f":function(t,e,n){var i=n("c6b6"),r=n("fc6a"),o=n("241c").f,a=n("4dae"),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a(s)}};t.exports.f=function(t){return s&&"Window"==i(t)?u(t):o(r(t))}},"05f0":function(t,e,n){"use strict";var i=n("d113").codes.ERR_INVALID_OPT_VALUE;function r(t,e,n){return null!=t.highWaterMark?t.highWaterMark:e?t[n]:null}function o(t,e,n,o){var a=r(e,o,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?n:"highWaterMark";throw new i(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},"05f5":function(t,e,n){var i=n("7a41"),r=n("ef08").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},"06b1":function(t,e,n){var i,r; +/*! + * tiny-cookie - A tiny cookie manipulation plugin + * https://github.com/Alex1990/tiny-cookie + * Under the MIT license | (c) Alex Chao + */!function(o,a){i=a,r="function"===typeof i?i.call(e,n,e,t):i,void 0===r||(t.exports=r)}(0,(function(){"use strict";function t(e,n,i){if(void 0===n)return t.get(e);null===n?t.remove(e):t.set(e,n,i)}function e(t){return t.replace(/[.*+?^$|[\](){}\\-]/g,"\\$&")}function n(t){var e="";for(var n in t)if(t.hasOwnProperty(n)){if("expires"===n){var r=t[n];"object"!==typeof r&&(r+="number"===typeof r?"D":"",r=i(r)),t[n]=r.toUTCString()}if("secure"===n){t[n]&&(e+=";"+n);continue}e+=";"+n+"="+t[n]}return t.hasOwnProperty("path")||(e+=";path=/"),e}function i(t){var e=new Date,n=t.charAt(t.length-1),i=parseInt(t,10);switch(n){case"Y":e.setFullYear(e.getFullYear()+i);break;case"M":e.setMonth(e.getMonth()+i);break;case"D":e.setDate(e.getDate()+i);break;case"h":e.setHours(e.getHours()+i);break;case"m":e.setMinutes(e.getMinutes()+i);break;case"s":e.setSeconds(e.getSeconds()+i);break;default:e=new Date(t)}return e}return t.enabled=function(){var e,n="__test_key";return document.cookie=n+"=1",e=!!document.cookie,e&&t.remove(n),e},t.get=function(t,n){if("string"!==typeof t||!t)return null;t="(?:^|; )"+e(t)+"(?:=([^;]*?))?(?:;|$)";var i=new RegExp(t),r=i.exec(document.cookie);return null!==r?n?r[1]:decodeURIComponent(r[1]):null},t.getRaw=function(e){return t.get(e,!0)},t.set=function(t,e,i,r){!0!==i&&(r=i,i=!1),r=n(r||{});var o=t+"="+(i?e:encodeURIComponent(e))+r;document.cookie=o},t.setRaw=function(e,n,i){t.set(e,n,!0,i)},t.remove=function(e){t.set(e,"a",{expires:new Date})},t}))},"06cf":function(t,e,n){var i=n("83ab"),r=n("c65b"),o=n("d1e7"),a=n("5c6c"),s=n("fc6a"),u=n("a04b"),l=n("1a2d"),h=n("0cfb"),c=Object.getOwnPropertyDescriptor;e.f=i?c:function(t,e){if(t=s(t),e=u(e),h)try{return c(t,e)}catch(n){}if(l(t,e))return a(!r(o.f,t,e),t[e])}},"072d":function(t,e,n){"use strict";var i=n("0bad"),r=n("9876"),o=n("fed5"),a=n("1917"),s=n("0983"),u=n("9fbb"),l=Object.assign;t.exports=!l||n("4b8b")((function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=l({},t)[n]||Object.keys(l({},e)).join("")!=i}))?function(t,e){var n=s(t),l=arguments.length,h=1,c=o.f,f=a.f;while(l>h){var d,p=u(arguments[h++]),g=c?r(p).concat(c(p)):r(p),m=g.length,v=0;while(m>v)d=g[v++],i&&!f.call(p,d)||(n[d]=p[d])}return n}:l},"07f2":function(t,e,n){"use strict";var i=n("c3c0"),r=n("6eed");function o(){if(!(this instanceof o))return new o;r.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(o,r),t.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return"hex"===t?i.toHex32(this.h.slice(0,7),"big"):i.split32(this.h.slice(0,7),"big")}},"07fa":function(t,e,n){var i=n("50c4");t.exports=function(t){return i(t.length)}},"083a":function(t,e,n){"use strict";var i=n("0d51"),r=TypeError;t.exports=function(t,e){if(!delete t[e])throw r("Cannot delete property "+i(e)+" of "+i(t))}},"087f":function(t,e,n){var i=n("3fb5"),r=n("b672"),o=n("8707").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,r.call(this,64,56)}function l(t){return t<<5|t>>>27}function h(t){return t<<30|t>>>2}function c(t,e,n,i){return 0===t?e&n|~e&i:2===t?e&n|e&i|n&i:e^n^i}i(u,r),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._a,i=0|this._b,r=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=e[u-3]^e[u-8]^e[u-14]^e[u-16];for(var f=0;f<80;++f){var d=~~(f/20),p=l(n)+c(d,i,r,o)+s+e[f]+a[d]|0;s=o,o=r,r=h(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=r+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"0960":function(t,e,n){t.exports=n("b19a")},"0983":function(t,e,n){var i=n("c901");t.exports=function(t){return Object(i(t))}},"09dc":function(t,e,n){"use strict";t.exports=h;var i=n("9d8a").codes,r=i.ERR_METHOD_NOT_IMPLEMENTED,o=i.ERR_MULTIPLE_CALLBACK,a=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=i.ERR_TRANSFORM_WITH_LENGTH_0,u=n("e666");function l(t,e){var n=this._transformState;n.transforming=!1;var i=n.writecb;if(null===i)return this.emit("error",new o);n.writechunk=null,n.writecb=null,null!=e&&this.push(e),i(t);var r=this._readableState;r.reading=!1,(r.needReadable||r.lengthl)u.call(t,a=s[l++])&&e.push(a)}return e}},"0ae3":function(t,e,n){"use strict";t.exports=r;var i=n("09dc");function r(t){if(!(this instanceof r))return new r(t);i.call(this,t)}n("3fb5")(r,i),r.prototype._transform=function(t,e,n){n(null,t)}},"0b42":function(t,e,n){var i=n("e8b5"),r=n("68ee"),o=n("861d"),a=n("b622"),s=a("species"),u=Array;t.exports=function(t){var e;return i(t)&&(e=t.constructor,r(e)&&(e===u||i(e.prototype))?e=void 0:o(e)&&(e=e[s],null===e&&(e=void 0))),void 0===e?u:e}},"0b43":function(t,e,n){var i=n("04f8");t.exports=i&&!!Symbol["for"]&&!!Symbol.keyFor},"0b99":function(t,e,n){"use strict";var i=n("19fa")(!0);n("393a")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})}))},"0bad":function(t,e,n){t.exports=!n("4b8b")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"0be8":function(t,e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},"0c47":function(t,e,n){var i=n("da84"),r=n("d44e");r(i.JSON,"JSON",!0)},"0cb2":function(t,e,n){var i=n("e330"),r=n("7b0b"),o=Math.floor,a=i("".charAt),s=i("".replace),u=i("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,h=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,i,c,f){var d=n+t.length,p=i.length,g=h;return void 0!==c&&(c=r(c),g=l),s(f,g,(function(r,s){var l;switch(a(s,0)){case"$":return"$";case"&":return t;case"`":return u(e,0,n);case"'":return u(e,d);case"<":l=c[u(s,1,-1)];break;default:var h=+s;if(0===h)return r;if(h>p){var f=o(h/10);return 0===f?r:f<=p?void 0===i[f-1]?a(s,1):i[f-1]+a(s,1):r}l=i[h-1]}return void 0===l?"":l}))}},"0cbb":function(t,e,n){"use strict";var i,r=e,o=n("7d92"),a=n("4136"),s=n("f3a3"),u=s.assert;function l(t){"short"===t.type?this.curve=new a.short(t):"edwards"===t.type?this.curve=new a.edwards(t):this.curve=new a.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,u(this.g.validate(),"Invalid curve"),u(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function h(t,e){Object.defineProperty(r,t,{configurable:!0,enumerable:!0,get:function(){var n=new l(e);return Object.defineProperty(r,t,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=l,h("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),h("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),h("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),h("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),h("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),h("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),h("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{i=n("409b")}catch(c){i=void 0}h("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",i]})},"0cfb":function(t,e,n){var i=n("83ab"),r=n("d039"),o=n("cc12");t.exports=!i&&!r((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"0d26":function(t,e,n){var i=n("e330"),r=Error,o=i("".replace),a=function(t){return String(r(t).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,u=s.test(a);t.exports=function(t,e){if(u&&"string"==typeof t&&!r.prepareStackTrace)while(e--)t=o(t,s,"");return t}},"0d51":function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(e){return"Object"}}},"0da4":function(t,e,n){"use strict";var i=n("da3e"),r=n("3fb5"),o={};function a(t){i.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e=e.length){o++;break}var a=e.slice(2,r-1);if(("0002"!==i.toString("hex")&&!n||"0001"!==i.toString("hex")&&n)&&o++,a.length<8&&o++,o)throw new Error("decryption error");return e.slice(r)}function d(t,e){t=h.from(t),e=h.from(e);var n=0,i=t.length;t.length!==e.length&&(n++,i=Math.min(t.length,e.length));var r=-1;while(++rd||new a(e).cmp(u.modulus)>=0)throw new Error("decryption error");o=n?l(new a(e),u):s(e,u);var p=h.alloc(d-o.length);if(o=h.concat([p,o],d),4===r)return c(u,o);if(1===r)return f(u,o,n);if(3===r)return o;throw new Error("unknown padding")}},"107c":function(t,e,n){var i=n("d039"),r=n("da84"),o=r.RegExp;t.exports=i((function(){var t=o("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},1098:function(t,e,n){"use strict";e.__esModule=!0;var i=n("17ed"),r=u(i),o=n("f893"),a=u(o),s="function"===typeof a.default&&"symbol"===typeof r.default?function(t){return typeof t}:function(t){return t&&"function"===typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};function u(t){return t&&t.__esModule?t:{default:t}}e.default="function"===typeof a.default&&"symbol"===s(r.default)?function(t){return"undefined"===typeof t?"undefined":s(t)}:function(t){return t&&"function"===typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"===typeof t?"undefined":s(t)}},"10db":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},1148:function(t,e,n){"use strict";var i=n("5926"),r=n("577e"),o=n("1d80"),a=RangeError;t.exports=function(t){var e=r(o(this)),n="",s=i(t);if(s<0||s==1/0)throw a("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(n+=e);return n}},"116d":function(t,e,n){t.exports=n("b4e8")},"11dc":function(t,e,n){"use strict";(function(e,i){var r=65536,o=4294967295;function a(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}var s=n("8707").Buffer,u=e.crypto||e.msCrypto;function l(t,e){if(t>o)throw new RangeError("requested too many random bytes");var n=s.allocUnsafe(t);if(t>0)if(t>r)for(var a=0;a79&&a<83,l=u||!o("reduce");i({target:"Array",proto:!0,forced:l},{reduce:function(t){var e=arguments.length;return r(this,t,e,e>1?arguments[1]:void 0)}})},"13e2":function(t,e,n){"use strict";var i=n("c3c0"),r=n("edc9"),o=n("aa56"),a=i.rotl32,s=i.sum32,u=i.sum32_5,l=o.ft_1,h=r.BlockHash,c=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(f,h),t.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(t,e){for(var n=this.W,i=0;i<16;i++)n[i]=t[e+i];for(;i1?arguments[1]:void 0)}},"17ed":function(t,e,n){t.exports={default:n("511f"),__esModule:!0}},1836:function(t,e,n){var i=n("6ca1"),r=n("6438").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?s(t):r(i(t))}},1917:function(t,e){e.f={}.propertyIsEnumerable},"19aa":function(t,e,n){var i=n("3a9b"),r=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw r("Incorrect invocation")}},"19ea":function(t,e,n){"use strict";(function(e,i){function r(t){var e=this;this.next=null,this.entry=null,this.finish=function(){W(e,t)}}var o;t.exports=k,k.WritableState=I;var a={deprecate:n("b7d1")},s=n("5bbb"),u=n("1c35").Buffer,l=("undefined"!==typeof e?e:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function h(t){return u.from(t)}function c(t){return u.isBuffer(t)||t instanceof l}var f,d=n("493f"),p=n("b9b5"),g=p.getHighWaterMark,m=n("9d8a").codes,v=m.ERR_INVALID_ARG_TYPE,y=m.ERR_METHOD_NOT_IMPLEMENTED,b=m.ERR_MULTIPLE_CALLBACK,w=m.ERR_STREAM_CANNOT_PIPE,_=m.ERR_STREAM_DESTROYED,x=m.ERR_STREAM_NULL_VALUES,M=m.ERR_STREAM_WRITE_AFTER_END,S=m.ERR_UNKNOWN_ENCODING,O=d.errorOrDestroy;function A(){}function I(t,e,i){o=o||n("e666"),t=t||{},"boolean"!==typeof i&&(i=e instanceof o),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=g(this,t,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){P(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function k(t){o=o||n("e666");var e=this instanceof o;if(!e&&!f.call(k,this))return new k(t);this._writableState=new I(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function T(t,e){var n=new M;O(t,n),i.nextTick(e,n)}function C(t,e,n,r){var o;return null===n?o=new x:"string"===typeof n||e.objectMode||(o=new v("chunk",["string","Buffer"],n)),!o||(O(t,o),i.nextTick(r,o),!1)}function E(t,e,n){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,n)),e}function D(t,e,n,i,r,o){if(!n){var a=E(e,i,r);i!==a&&(n=!0,r="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(k.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(k.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),k.prototype._write=function(t,e,n){n(new y("_write()"))},k.prototype._writev=null,k.prototype.end=function(t,e,n){var i=this._writableState;return"function"===typeof t?(n=t,t=null,e=null):"function"===typeof e&&(n=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||U(this,i,n),this},Object.defineProperty(k.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),k.prototype.destroy=d.destroy,k.prototype._undestroy=d.undestroy,k.prototype._destroy=function(t,e){e(t)}}).call(this,n("24aa"),n("4362"))},"19fa":function(t,e,n){var i=n("fc5e"),r=n("c901");t.exports=function(t){return function(e,n){var o,a,s=String(r(e)),u=i(n),l=s.length;return u<0||u>=l?t?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536)}}},"1a14":function(t,e,n){var i=n("77e9"),r=n("faf5"),o=n("3397"),a=Object.defineProperty;e.f=n("0bad")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"1a2a":function(t,e,n){"use strict";var i=n("3fb5"),r=n("d424"),o=n("6430"),a=n("8707").Buffer,s=n("5a76"),u=n("b5ca"),l=n("69f2"),h=a.alloc(128);function c(t,e){o.call(this,"digest"),"string"===typeof e&&(e=a.from(e));var n="sha512"===t||"sha384"===t?128:64;if(this._alg=t,this._key=e,e.length>n){var i="rmd160"===t?new u:l(t);e=i.update(e).digest()}else e.length + * @license MIT + */ +var i=n("1fb5"),r=n("9152"),o=n("e3db");function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function s(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function b(t){return+t!=t&&(t=0),l.alloc(+t)}function w(t,e){if(l.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return $(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Q(t).length;default:if(i)return $(t).length;e=(""+e).toLowerCase(),i=!0}}function _(t,e,n){var i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,e>>>=0,n<=e)return"";t||(t="utf8");while(1)switch(t){case"hex":return N(this,e,n);case"utf8":case"utf-8":return D(this,e,n);case"ascii":return j(this,e,n);case"latin1":case"binary":return P(this,e,n);case"base64":return E(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,e,n);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function x(t,e,n){var i=t[e];t[e]=t[n],t[n]=i}function M(t,e,n,i,r){if(0===t.length)return-1;if("string"===typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(r)return-1;n=t.length-1}else if(n<0){if(!r)return-1;n=0}if("string"===typeof e&&(e=l.from(e,i)),l.isBuffer(e))return 0===e.length?-1:S(t,e,n,i,r);if("number"===typeof e)return e&=255,l.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):S(t,[e],n,i,r);throw new TypeError("val must be string, number or Buffer")}function S(t,e,n,i,r){var o,a=1,s=t.length,u=e.length;if(void 0!==i&&(i=String(i).toLowerCase(),"ucs2"===i||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,n/=2}function l(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(o=n;os&&(n=s-u),o=n;o>=0;o--){for(var c=!0,f=0;fr&&(i=r)):i=r;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var a=0;a239?4:l>223?3:l>191?2:1;if(r+c<=n)switch(c){case 1:l<128&&(h=l);break;case 2:o=t[r+1],128===(192&o)&&(u=(31&l)<<6|63&o,u>127&&(h=u));break;case 3:o=t[r+1],a=t[r+2],128===(192&o)&&128===(192&a)&&(u=(15&l)<<12|(63&o)<<6|63&a,u>2047&&(u<55296||u>57343)&&(h=u));break;case 4:o=t[r+1],a=t[r+2],s=t[r+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s,u>65535&&u<1114112&&(h=u))}null===h?(h=65533,c=1):h>65535&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),r+=c}return R(i)}e.Buffer=l,e.SlowBuffer=b,e.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),e.kMaxLength=s(),l.poolSize=8192,l._augment=function(t){return t.__proto__=l.prototype,t},l.from=function(t,e,n){return h(null,t,e,n)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(t,e,n){return f(null,t,e,n)},l.allocUnsafe=function(t){return d(null,t)},l.allocUnsafeSlow=function(t){return d(null,t)},l.isBuffer=function(t){return!(null==t||!t._isBuffer)},l.compare=function(t,e){if(!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,i=e.length,r=0,o=Math.min(n,i);r0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),""},l.prototype.compare=function(t,e,n,i,r){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),e<0||n>t.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&e>=n)return 0;if(i>=r)return-1;if(e>=n)return 1;if(e>>>=0,n>>>=0,i>>>=0,r>>>=0,this===t)return 0;for(var o=r-i,a=n-e,s=Math.min(o,a),u=this.slice(i,r),h=t.slice(e,n),c=0;cr)&&(n=r),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return O(this,t,e,n);case"utf8":case"utf-8":return A(this,t,e,n);case"ascii":return I(this,t,e,n);case"latin1":case"binary":return k(this,t,e,n);case"base64":return T(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var L=4096;function R(t){var e=t.length;if(e<=L)return String.fromCharCode.apply(String,t);var n="",i=0;while(ii)&&(n=i);for(var r="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function F(t,e,n,i,r,o){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||et.length)throw new RangeError("Index out of range")}function V(t,e,n,i){e<0&&(e=65535+e+1);for(var r=0,o=Math.min(t.length-n,2);r>>8*(i?r:1-r)}function H(t,e,n,i){e<0&&(e=4294967295+e+1);for(var r=0,o=Math.min(t.length-n,4);r>>8*(i?r:3-r)&255}function G(t,e,n,i,r,o){if(n+i>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(t,e,n,i,o){return o||G(t,e,n,4,34028234663852886e22,-34028234663852886e22),r.write(t,e,n,i,23,4),n+4}function W(t,e,n,i,o){return o||G(t,e,n,8,17976931348623157e292,-17976931348623157e292),r.write(t,e,n,i,52,8),n+8}l.prototype.slice=function(t,e){var n,i=this.length;if(t=~~t,e=void 0===e?i:~~e,t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),e0&&(r*=256))i+=this[t+--e]*r;return i},l.prototype.readUInt8=function(t,e){return e||z(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return e||z(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return e||z(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return e||z(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return e||z(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||z(t,e,this.length);var i=this[t],r=1,o=0;while(++o=r&&(i-=Math.pow(2,8*e)),i},l.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||z(t,e,this.length);var i=e,r=1,o=this[t+--i];while(i>0&&(r*=256))o+=this[t+--i]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*e)),o},l.prototype.readInt8=function(t,e){return e||z(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){e||z(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(t,e){e||z(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(t,e){return e||z(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return e||z(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return e||z(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return e||z(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return e||z(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return e||z(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,n,i){if(t=+t,e|=0,n|=0,!i){var r=Math.pow(2,8*n)-1;F(this,t,e,n,r,0)}var o=1,a=0;this[e]=255&t;while(++a=0&&(a*=256))this[e+o]=t/a&255;return e+n},l.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,1,255,0),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):V(this,t,e,!0),e+2},l.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):V(this,t,e,!1),e+2},l.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):H(this,t,e,!0),e+4},l.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):H(this,t,e,!1),e+4},l.prototype.writeIntLE=function(t,e,n,i){if(t=+t,e|=0,!i){var r=Math.pow(2,8*n-1);F(this,t,e,n,r-1,-r)}var o=0,a=1,s=0;this[e]=255&t;while(++o>0)-s&255;return e+n},l.prototype.writeIntBE=function(t,e,n,i){if(t=+t,e|=0,!i){var r=Math.pow(2,8*n-1);F(this,t,e,n,r-1,-r)}var o=n-1,a=1,s=0;this[e+o]=255&t;while(--o>=0&&(a*=256))t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+n},l.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,1,127,-128),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):V(this,t,e,!0),e+2},l.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):V(this,t,e,!1),e+2},l.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):H(this,t,e,!0),e+4},l.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||F(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):H(this,t,e,!1),e+4},l.prototype.writeFloatLE=function(t,e,n){return U(this,t,e,!0,n)},l.prototype.writeFloatBE=function(t,e,n){return U(this,t,e,!1,n)},l.prototype.writeDoubleLE=function(t,e,n){return W(this,t,e,!0,n)},l.prototype.writeDoubleBE=function(t,e,n){return W(this,t,e,!1,n)},l.prototype.copy=function(t,e,n,i){if(n||(n=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e=0;--r)t[r+e]=this[r+n];else if(o<1e3||!l.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&n<57344){if(!r){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(e-=3)>-1&&o.push(239,191,189);continue}r=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(e-=3)>-1&&o.push(239,191,189);if(r=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function K(t){for(var e=[],n=0;n>8,r=n%256,o.push(r),o.push(i)}return o}function Q(t){return i.toByteArray(Z(t))}function tt(t,e,n,i){for(var r=0;r=e.length||r>=t.length)break;e[r+n]=t[r]}return r}function et(t){return t!==t}}).call(this,n("24aa"))},"1c46":function(t,e,n){"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=n("11dc"),e.createHash=e.Hash=n("98e6"),e.createHmac=e.Hmac=n("1a2a");var i=n("116d"),r=Object.keys(i),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(r);e.getHashes=function(){return o};var a=n("a099");e.pbkdf2=a.pbkdf2,e.pbkdf2Sync=a.pbkdf2Sync;var s=n("956a");e.Cipher=s.Cipher,e.createCipher=s.createCipher,e.Cipheriv=s.Cipheriv,e.createCipheriv=s.createCipheriv,e.Decipher=s.Decipher,e.createDecipher=s.createDecipher,e.Decipheriv=s.Decipheriv,e.createDecipheriv=s.createDecipheriv,e.getCiphers=s.getCiphers,e.listCiphers=s.listCiphers;var u=n("00dc");e.DiffieHellmanGroup=u.DiffieHellmanGroup,e.createDiffieHellmanGroup=u.createDiffieHellmanGroup,e.getDiffieHellman=u.getDiffieHellman,e.createDiffieHellman=u.createDiffieHellman,e.DiffieHellman=u.DiffieHellman;var l=n("b692");e.createSign=l.createSign,e.Sign=l.Sign,e.createVerify=l.createVerify,e.Verify=l.Verify,e.createECDH=n("e1d3");var h=n("6442");e.publicEncrypt=h.publicEncrypt,e.privateEncrypt=h.privateEncrypt,e.publicDecrypt=h.publicDecrypt,e.privateDecrypt=h.privateDecrypt;var c=n("75cc");e.randomFill=c.randomFill,e.randomFillSync=c.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},"1c59":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");i("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"1c7e":function(t,e,n){var i=n("b622"),r=i("iterator"),o=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){o=!0}};s[r]=function(){return this},Array.from(s,(function(){throw 2}))}catch(u){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(u){}return n}},"1cdc":function(t,e,n){var i=n("342f");t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)},"1d2b":function(t,e,n){"use strict";function i(t,e){return function(){return t.apply(e,arguments)}}n.d(e,"a",(function(){return i}))},"1d80":function(t,e,n){var i=n("7234"),r=TypeError;t.exports=function(t){if(i(t))throw r("Can't call method on "+t);return t}},"1da1":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("d3b7");function i(t,e,n,i,r,o,a){try{var s=t[o](a),u=s.value}catch(l){return void n(l)}s.done?e(u):Promise.resolve(u).then(i,r)}function r(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var a=t.apply(e,n);function s(t){i(a,r,o,s,u,"next",t)}function u(t){i(a,r,o,s,u,"throw",t)}s(void 0)}))}}},"1dde":function(t,e,n){var i=n("d039"),r=n("b622"),o=n("2d00"),a=r("species");t.exports=function(t){return o>=51||!i((function(){var e=[],n=e.constructor={};return n[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"1e3c":function(t,e,n){var i=n("6430"),r=n("1545"),o=n("3fb5"),a=n("8707").Buffer,s={"des-ede3-cbc":r.CBC.instantiate(r.EDE),"des-ede3":r.EDE,"des-ede-cbc":r.CBC.instantiate(r.EDE),"des-ede":r.EDE,"des-cbc":r.CBC.instantiate(r.DES),"des-ecb":r.DES};function u(t){i.call(this);var e,n=t.mode.toLowerCase(),r=s[n];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==n&&"des-ede-cbc"!==n||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=r.create({key:o,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,o(u,i),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},"1f68":function(t,e,n){"use strict";var i=n("83ab"),r=n("edd0"),o=n("861d"),a=n("7b0b"),s=n("1d80"),u=Object.getPrototypeOf,l=Object.setPrototypeOf,h=Object.prototype,c="__proto__";if(i&&u&&l&&!(c in h))try{r(h,c,{configurable:!0,get:function(){return u(a(this))},set:function(t){var e=s(this);(o(t)||null===t)&&o(e)&&l(e,t)}})}catch(f){}},"1fb5":function(t,e,n){"use strict";e.byteLength=h,e.toByteArray=f,e.fromByteArray=g;for(var i=[],r=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");-1===n&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function h(t){var e=l(t),n=e[0],i=e[1];return 3*(n+i)/4-i}function c(t,e,n){return 3*(e+n)/4-n}function f(t){var e,n,i=l(t),a=i[0],s=i[1],u=new o(c(t,a,s)),h=0,f=s>0?a-4:a;for(n=0;n>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===s&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,u[h++]=255&e),1===s&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u}function d(t){return i[t>>18&63]+i[t>>12&63]+i[t>>6&63]+i[63&t]}function p(t,e,n){for(var i,r=[],o=e;ou?u:s+a));return 1===r?(e=t[n-1],o.push(i[e>>2]+i[e<<4&63]+"==")):2===r&&(e=(t[n-2]<<8)+t[n-1],o.push(i[e>>10]+i[e>>4&63]+i[e<<2&63]+"=")),o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},"1fec":function(t,e,n){"use strict";var i=n("da3e"),r=n("3fb5"),o=n("0184"),a=n("4e2b");function s(t,e){i.equal(e.length,24,"Invalid key length");var n=e.slice(0,8),r=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:n}),a.create({type:"decrypt",key:r}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:n})]}function u(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}r(u,o),t.exports=u,u.create=function(t){return new u(t)},u.prototype._update=function(t,e,n,i){var r=this._edeState;r.ciphers[0]._update(t,e,n,i),r.ciphers[1]._update(n,i,n,i),r.ciphers[2]._update(n,i,n,i)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},"206d":function(t,e,n){(function(e){var i,r,o=n("8707").Buffer,a=n("7d2a"),s=n("9f9d"),u=n("e07b"),l=n("8be6"),h=e.crypto&&e.crypto.subtle,c={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},f=[];function d(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!h||!h.importKey||!h.deriveBits)return Promise.resolve(!1);if(void 0!==f[t])return f[t];i=i||o.alloc(8);var n=g(i,i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return f[t]=n,n}function p(){return r||(r=e.process&&e.process.nextTick?e.process.nextTick:e.queueMicrotask?e.queueMicrotask:e.setImmediate?e.setImmediate:e.setTimeout,r)}function g(t,e,n,i,r){return h.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return h.deriveBits({name:"PBKDF2",salt:e,iterations:n,hash:{name:r}},t,i<<3)})).then((function(t){return o.from(t)}))}function m(t,e){t.then((function(t){p()((function(){e(null,t)}))}),(function(t){p()((function(){e(t)}))}))}t.exports=function(t,n,i,r,o,h){"function"===typeof o&&(h=o,o=void 0),o=o||"sha1";var f=c[o.toLowerCase()];if(f&&"function"===typeof e.Promise){if(a(i,r),t=l(t,s,"Password"),n=l(n,s,"Salt"),"function"!==typeof h)throw new Error("No callback provided to pbkdf2");m(d(f).then((function(e){return e?g(t,n,i,r,f):u(t,n,i,r,o)})),h)}else p()((function(){var e;try{e=u(t,n,i,r,o)}catch(a){return h(a)}h(null,e)}))}}).call(this,n("24aa"))},"20f6":function(t,e,n){"use strict";const i=e;i.der=n("cfbd"),i.pem=n("8df7")},2137:function(t,e,n){"use strict";var i=n("c3c0"),r=n("da3e");function o(t,e,n){if(!(this instanceof o))return new o(t,e,n);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(e,n))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),r(t.length<=this.blockSize);for(var e=t.length;e>>0,1)},emit:function(e,n){(t[e]||[]).map((function(t){t(n)})),(t["*"]||[]).map((function(t){t(e,n)}))}}}var r=t((function(t,e){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};e.default=n,t.exports=e.default})),o=function(t){return Object.keys(t).map((function(e){var n=t[e].toString().replace(/"/g,""");return e+'="'+n+'"'})).join(" ")},a=r.svg,s=r.xlink,u={};u[a.name]=a.uri,u[s.name]=s.uri;var l,h=function(t,e){void 0===t&&(t="");var i=n(u,e||{}),r=o(i);return""+t+""},c=r.svg,f=r.xlink,d={attrs:(l={style:["position: absolute","width: 0","height: 0"].join("; ")},l[c.name]=c.uri,l[f.name]=f.uri,l)},p=function(t){this.config=n(d,t||{}),this.symbols=[]};p.prototype.add=function(t){var e=this,n=e.symbols,i=this.find(t.id);return i?(n[n.indexOf(i)]=t,!1):(n.push(t),!0)},p.prototype.remove=function(t){var e=this,n=e.symbols,i=this.find(t);return!!i&&(n.splice(n.indexOf(i),1),i.destroy(),!0)},p.prototype.find=function(t){return this.symbols.filter((function(e){return e.id===t}))[0]||null},p.prototype.has=function(t){return null!==this.find(t)},p.prototype.stringify=function(){var t=this.config,e=t.attrs,n=this.symbols.map((function(t){return t.stringify()})).join("");return h(n,e)},p.prototype.toString=function(){return this.stringify()},p.prototype.destroy=function(){this.symbols.forEach((function(t){return t.destroy()}))};var g=function(t){var e=t.id,n=t.viewBox,i=t.content;this.id=e,this.viewBox=n,this.content=i};g.prototype.stringify=function(){return this.content},g.prototype.toString=function(){return this.stringify()},g.prototype.destroy=function(){var t=this;["id","viewBox","content"].forEach((function(e){return delete t[e]}))};var m=function(t){var e=!!document.importNode,n=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement;return e?document.importNode(n,!0):n},v=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={isMounted:{}};return n.isMounted.get=function(){return!!this.node},e.createFromExistingNode=function(t){return new e({id:t.getAttribute("id"),viewBox:t.getAttribute("viewBox"),content:t.outerHTML})},e.prototype.destroy=function(){this.isMounted&&this.unmount(),t.prototype.destroy.call(this)},e.prototype.mount=function(t){if(this.isMounted)return this.node;var e="string"===typeof t?document.querySelector(t):t,n=this.render();return this.node=n,e.appendChild(n),n},e.prototype.render=function(){var t=this.stringify();return m(h(t)).childNodes[0]},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(e.prototype,n),e}(g),y={autoConfigure:!0,mountTo:"body",syncUrlsWithBaseTag:!1,listenLocationChangeEvent:!0,locationChangeEvent:"locationChange",locationChangeAngularEmitter:!1,usagesToUpdate:"use[*|href]",moveGradientsOutsideSymbol:!1},b=function(t){return Array.prototype.slice.call(t,0)},w=navigator.userAgent,_={isChrome:/chrome/i.test(w),isFirefox:/firefox/i.test(w),isIE:/msie/i.test(w)||/trident/i.test(w),isEdge:/edge/i.test(w)},x=function(t,e){var n=document.createEvent("CustomEvent");n.initCustomEvent(t,!1,!1,e),window.dispatchEvent(n)},M=function(t){var e=[];return b(t.querySelectorAll("style")).forEach((function(t){t.textContent+="",e.push(t)})),e},S=function(t){return(t||window.location.href).split("#")[0]},O=function(t){angular.module("ng").run(["$rootScope",function(e){e.$on("$locationChangeSuccess",(function(e,n,i){x(t,{oldUrl:i,newUrl:n})}))}])},A="linearGradient, radialGradient, pattern",I=function(t,e){return void 0===e&&(e=A),b(t.querySelectorAll("symbol")).forEach((function(t){b(t.querySelectorAll(e)).forEach((function(e){t.parentNode.insertBefore(e,t)}))})),t};function k(t,e){var n=b(t).reduce((function(t,n){if(!n.attributes)return t;var i=b(n.attributes),r=e?i.filter(e):i;return t.concat(r)}),[]);return n}var T=r.xlink.uri,C="xlink:href",E=/[{}|\\\^\[\]`"<>]/g;function D(t){return t.replace(E,(function(t){return"%"+t[0].charCodeAt(0).toString(16).toUpperCase()}))}function L(t,e,n){return b(t).forEach((function(t){var i=t.getAttribute(C);if(i&&0===i.indexOf(e)){var r=i.replace(e,n);t.setAttributeNS(T,C,r)}})),t}var R,j=["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke","style"],P=j.map((function(t){return"["+t+"]"})).join(","),N=function(t,e,n,i){var r=D(n),o=D(i),a=t.querySelectorAll(P),s=k(a,(function(t){var e=t.localName,n=t.value;return-1!==j.indexOf(e)&&-1!==n.indexOf("url("+r)}));s.forEach((function(t){return t.value=t.value.replace(r,o)})),L(e,r,o)},B={MOUNT:"mount",SYMBOL_MOUNT:"symbol_mount"},z=function(t){function e(e){var r=this;void 0===e&&(e={}),t.call(this,n(y,e));var o=i();this._emitter=o,this.node=null;var a=this,s=a.config;if(s.autoConfigure&&this._autoConfigure(e),s.syncUrlsWithBaseTag){var u=document.getElementsByTagName("base")[0].getAttribute("href");o.on(B.MOUNT,(function(){return r.updateUrls("#",u)}))}var l=this._handleLocationChange.bind(this);this._handleLocationChange=l,s.listenLocationChangeEvent&&window.addEventListener(s.locationChangeEvent,l),s.locationChangeAngularEmitter&&O(s.locationChangeEvent),o.on(B.MOUNT,(function(t){s.moveGradientsOutsideSymbol&&I(t)})),o.on(B.SYMBOL_MOUNT,(function(t){s.moveGradientsOutsideSymbol&&I(t.parentNode),(_.isIE||_.isEdge)&&M(t)}))}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={isMounted:{}};return r.isMounted.get=function(){return!!this.node},e.prototype._autoConfigure=function(t){var e=this,n=e.config;"undefined"===typeof t.syncUrlsWithBaseTag&&(n.syncUrlsWithBaseTag="undefined"!==typeof document.getElementsByTagName("base")[0]),"undefined"===typeof t.locationChangeAngularEmitter&&(n.locationChangeAngularEmitter="angular"in window),"undefined"===typeof t.moveGradientsOutsideSymbol&&(n.moveGradientsOutsideSymbol=_.isFirefox)},e.prototype._handleLocationChange=function(t){var e=t.detail,n=e.oldUrl,i=e.newUrl;this.updateUrls(n,i)},e.prototype.add=function(e){var n=this,i=t.prototype.add.call(this,e);return this.isMounted&&i&&(e.mount(n.node),this._emitter.emit(B.SYMBOL_MOUNT,e.node)),i},e.prototype.attach=function(t){var e=this,n=this;if(n.isMounted)return n.node;var i="string"===typeof t?document.querySelector(t):t;return n.node=i,this.symbols.forEach((function(t){t.mount(n.node),e._emitter.emit(B.SYMBOL_MOUNT,t.node)})),b(i.querySelectorAll("symbol")).forEach((function(t){var e=v.createFromExistingNode(t);e.node=t,n.add(e)})),this._emitter.emit(B.MOUNT,i),i},e.prototype.destroy=function(){var t=this,e=t.config,n=t.symbols,i=t._emitter;n.forEach((function(t){return t.destroy()})),i.off("*"),window.removeEventListener(e.locationChangeEvent,this._handleLocationChange),this.isMounted&&this.unmount()},e.prototype.mount=function(t,e){void 0===t&&(t=this.config.mountTo),void 0===e&&(e=!1);var n=this;if(n.isMounted)return n.node;var i="string"===typeof t?document.querySelector(t):t,r=n.render();return this.node=r,e&&i.childNodes[0]?i.insertBefore(r,i.childNodes[0]):i.appendChild(r),this._emitter.emit(B.MOUNT,r),r},e.prototype.render=function(){return m(this.stringify())},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},e.prototype.updateUrls=function(t,e){if(!this.isMounted)return!1;var n=document.querySelectorAll(this.config.usagesToUpdate);return N(this.node,n,S(t)+"#",S(e)+"#"),!0},Object.defineProperties(e.prototype,r),e}(p),F=t((function(t){ +/*! + * domready (c) Dustin Diaz 2014 - License MIT + */ +!function(e,n){t.exports=n()}(0,(function(){var t,e=[],n=document,i=n.documentElement.doScroll,r="DOMContentLoaded",o=(i?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return o||n.addEventListener(r,t=function(){n.removeEventListener(r,t),o=1;while(t=e.shift())t()}),function(t){o?setTimeout(t,0):e.push(t)}}))})),V="__SVG_SPRITE_NODE__",H="__SVG_SPRITE__",G=!!window[H];G?R=window[H]:(R=new z({attrs:{id:V}}),window[H]=R);var U=function(){var t=document.getElementById(V);t?R.attach(t):R.mount(document.body,!0)};document.body?U():F(U);var W=R;return W}))}).call(this,n("24aa"))},2266:function(t,e,n){var i=n("0366"),r=n("c65b"),o=n("825a"),a=n("0d51"),s=n("e95a"),u=n("07fa"),l=n("3a9b"),h=n("9a1f"),c=n("35a1"),f=n("2a62"),d=TypeError,p=function(t,e){this.stopped=t,this.result=e},g=p.prototype;t.exports=function(t,e,n){var m,v,y,b,w,_,x,M=n&&n.that,S=!(!n||!n.AS_ENTRIES),O=!(!n||!n.IS_RECORD),A=!(!n||!n.IS_ITERATOR),I=!(!n||!n.INTERRUPTED),k=i(e,M),T=function(t){return m&&f(m,"normal",t),new p(!0,t)},C=function(t){return S?(o(t),I?k(t[0],t[1],T):k(t[0],t[1])):I?k(t,T):k(t)};if(O)m=t.iterator;else if(A)m=t;else{if(v=c(t),!v)throw d(a(t)+" is not iterable");if(s(v)){for(y=0,b=u(t);b>y;y++)if(w=C(t[y]),w&&l(g,w))return w;return new p(!1)}m=h(t,v)}_=O?t.next:m.next;while(!(x=r(_,m)).done){try{w=C(x.value)}catch(E){f(m,"throw",E)}if("object"==typeof w&&w&&l(g,w))return w}return new p(!1)}},"22ab":function(t,e,n){"use strict";function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function r(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,n=""+e.data;while(e=e.next)n+=t+e.data;return n}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),n=this.head,i=0;while(n)m(n.data,e,i),i+=n.data.length,n=n.next;return e}},{key:"consume",value:function(t,e){var n;return tr.length?r.length:t;if(o===r.length?i+=r:i+=r.slice(0,t),t-=o,0===t){o===r.length?(++n,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=r.slice(o));break}++n}return this.length-=n,i}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),n=this.head,i=1;n.data.copy(e),t-=n.data.length;while(n=n.next){var r=n.data,o=t>r.length?r.length:t;if(r.copy(e,e.length-t,0,o),t-=o,0===t){o===r.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=r.slice(o));break}++i}return this.length-=i,e}},{key:g,value:function(t,e){return p(this,r(r({},e),{},{depth:0,customInspect:!1}))}}]),t}()},"22d1":function(t,e,n){"use strict";var i=function(){function t(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return t}(),r=function(){function t(){this.browser=new i,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!==typeof window}return t}(),o=new r;function a(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]),r&&(n.ie=!0,n.version=r[1]),o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18),a&&(n.weChat=!0),e.svgSupported="undefined"!==typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!==typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||n.ie&&+n.version>=9}"object"===typeof wx&&"function"===typeof wx.getSystemInfoSync?(o.wxa=!0,o.touchEventsSupported=!0):"undefined"===typeof document&&"undefined"!==typeof self?o.worker=!0:"undefined"===typeof navigator?(o.node=!0,o.svgSupported=!0):a(navigator.userAgent,o),e["a"]=o},"23cb":function(t,e,n){var i=n("5926"),r=Math.max,o=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):o(n,e)}},"23dc":function(t,e,n){var i=n("d44e");i(Math,"Math",!0)},"23e7":function(t,e,n){var i=n("da84"),r=n("06cf").f,o=n("9112"),a=n("cb2d"),s=n("6374"),u=n("e893"),l=n("94ca");t.exports=function(t,e){var n,h,c,f,d,p,g=t.target,m=t.global,v=t.stat;if(h=m?i:v?i[g]||s(g,{}):(i[g]||{}).prototype,h)for(c in e){if(d=e[c],t.dontCallGetSet?(p=r(h,c),f=p&&p.value):f=h[c],n=l(m?c:g+(v?".":"#")+c,t.forced),!n&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(t.sham||f&&f.sham)&&o(d,"sham",!0),a(h,c,d,t)}}},"241c":function(t,e,n){var i=n("ca84"),r=n("7839"),o=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},"24aa":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},2532:function(t,e,n){"use strict";var i=n("23e7"),r=n("e330"),o=n("5a34"),a=n("1d80"),s=n("577e"),u=n("ab13"),l=r("".indexOf);i({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~l(s(a(this)),s(o(t)),arguments.length>1?arguments[1]:void 0)}})},"25f0":function(t,e,n){"use strict";var i=n("5e77").PROPER,r=n("cb2d"),o=n("825a"),a=n("577e"),s=n("d039"),u=n("90d8"),l="toString",h=RegExp.prototype,c=h[l],f=s((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),d=i&&c.name!=l;(f||d)&&r(RegExp.prototype,l,(function(){var t=o(this),e=a(t.source),n=a(u(t));return"/"+e+"/"+n}),{unsafe:!0})},2626:function(t,e,n){"use strict";var i=n("d066"),r=n("edd0"),o=n("b622"),a=n("83ab"),s=o("species");t.exports=function(t){var e=i(t);a&&e&&!e[s]&&r(e,s,{configurable:!0,get:function(){return this}})}},"26dd":function(t,e,n){"use strict";var i=n("6f4f"),r=n("10db"),o=n("92f0"),a={};n("051b")(a,n("cc15")("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=i(a,{next:r(1,n)}),o(t,e+" Iterator")}},"27bf":function(t,e,n){"use strict";t.exports=a;var i=n("b19a"),r=Object.create(n("3a7c"));function o(t,e){var n=this._transformState;n.transforming=!1;var i=n.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=e&&this.push(e),i(t);var r=this._readableState;r.reading=!1,(r.needReadable||r.length=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return r(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||h(t)&&t.toString===l?JSON.stringify(t,null,2):String(t)}function g(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function w(t,e){return b.call(t,e)}function _(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var x=/-(\w)/g,M=_((function(t){return t.replace(x,(function(t,e){return e?e.toUpperCase():""}))})),S=_((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),O=/\B([A-Z])/g,A=_((function(t){return t.replace(O,"-$1").toLowerCase()}));function I(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function k(t,e){return t.bind(e)}var T=Function.prototype.bind?k:I;function C(t,e){e=e||0;var n=t.length-e,i=new Array(n);while(n--)i[n]=t[n+e];return i}function E(t,e){for(var n in e)t[n]=e[n];return t}function D(t){for(var e={},n=0;n0,nt=Q&&Q.indexOf("edge/")>0,it=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===J),rt=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),ot={}.watch,at=!1;if($)try{var st={};Object.defineProperty(st,"passive",{get:function(){at=!0}}),window.addEventListener("test-passive",null,st)}catch(Ma){}var ut=function(){return void 0===Y&&(Y=!$&&!K&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),Y},lt=$&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ht(t){return"function"===typeof t&&/native code/.test(t.toString())}var ct,ft="undefined"!==typeof Symbol&&ht(Symbol)&&"undefined"!==typeof Reflect&&ht(Reflect.ownKeys);ct="undefined"!==typeof Set&&ht(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var dt=L,pt=0,gt=function(){this.id=pt++,this.subs=[]};gt.prototype.addSub=function(t){this.subs.push(t)},gt.prototype.removeSub=function(t){y(this.subs,t)},gt.prototype.depend=function(){gt.target&>.target.addDep(this)},gt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!w(r,"default"))a=!1;else if(""===a||a===A(t)){var u=te(String,r.type);(u<0||s0&&(a=Ie(a,(e||"")+"_"+n),Ae(a[0])&&Ae(l)&&(h[u]=xt(l.text+a[0].text),a.shift()),h.push.apply(h,a)):s(a)?Ae(l)?h[u]=xt(l.text+a):""!==a&&h.push(xt(a)):Ae(a)&&Ae(l)?h[u]=xt(l.text+a.text):(o(t._isVList)&&r(a.tag)&&i(a.key)&&r(e)&&(a.key="__vlist"+e+"_"+n+"__"),h.push(a)));return h}function ke(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function Te(t){var e=Ce(t.$options.inject,t);e&&(Tt(!1),Object.keys(e).forEach((function(n){Rt(t,n,e[n])})),Tt(!0))}function Ce(t,e){if(t){for(var n=Object.create(null),i=ft?Reflect.ownKeys(t):Object.keys(t),r=0;r0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&i&&i!==n&&s===i.$key&&!o&&!i.$hasNormal)return i;for(var u in r={},t)t[u]&&"$"!==u[0]&&(r[u]=Re(e,u,t[u]))}else r={};for(var l in e)l in r||(r[l]=je(e,l));return t&&Object.isExtensible(t)&&(t._normalized=r),W(r,"$stable",a),W(r,"$key",s),W(r,"$hasNormal",o),r}function Re(t,e,n){var i=function(){var t=arguments.length?n.apply(null,arguments):n({});return t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:Oe(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:i,enumerable:!0,configurable:!0}),i}function je(t,e){return function(){return t[e]}}function Pe(t,e){var n,i,o,a,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),i=0,o=t.length;i1?C(n):n;for(var i=C(arguments,1),r='event handler for "'+t+'"',o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Yn=function(){return Xn.now()})}function $n(){var t,e;for(Zn=Yn(),Un=!0,Fn.sort((function(t,e){return t.id-e.id})),Wn=0;WnWn&&Fn[n].id>t.id)n--;Fn.splice(n+1,0,t)}else Fn.push(t);Gn||(Gn=!0,pe($n))}}var ei=0,ni=function(t,e,n,i,r){this.vm=t,r&&(t._watcher=this),t._watchers.push(this),i?(this.deep=!!i.deep,this.user=!!i.user,this.lazy=!!i.lazy,this.sync=!!i.sync,this.before=i.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ei,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ct,this.newDepIds=new ct,this.expression="","function"===typeof e?this.getter=e:(this.getter=Z(e),this.getter||(this.getter=L)),this.value=this.lazy?void 0:this.get()};ni.prototype.get=function(){var t;vt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(Ma){if(!this.user)throw Ma;ee(Ma,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&me(t),yt(),this.cleanupDeps()}return t},ni.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},ni.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},ni.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ti(this)},ni.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(Ma){ee(Ma,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},ni.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},ni.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},ni.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var ii={enumerable:!0,configurable:!0,get:L,set:L};function ri(t,e,n){ii.get=function(){return this[e][n]},ii.set=function(t){this[e][n]=t},Object.defineProperty(t,n,ii)}function oi(t){t._watchers=[];var e=t.$options;e.props&&ai(t,e.props),e.methods&&pi(t,e.methods),e.data?si(t):Lt(t._data={},!0),e.computed&&hi(t,e.computed),e.watch&&e.watch!==ot&&gi(t,e.watch)}function ai(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[],o=!t.$parent;o||Tt(!1);var a=function(o){r.push(o);var a=$t(o,e,n,t);Rt(i,o,a),o in t||ri(t,"_props",o)};for(var s in e)a(s);Tt(!0)}function si(t){var e=t.$options.data;e=t._data="function"===typeof e?ui(e,t):e||{},h(e)||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);while(r--){var o=n[r];0,i&&w(i,o)||U(o)||ri(t,"_data",o)}Lt(e,!0)}function ui(t,e){vt();try{return t.call(e,e)}catch(Ma){return ee(Ma,e,"data()"),{}}finally{yt()}}var li={lazy:!0};function hi(t,e){var n=t._computedWatchers=Object.create(null),i=ut();for(var r in e){var o=e[r],a="function"===typeof o?o:o.get;0,i||(n[r]=new ni(t,a||L,L,li)),r in t||ci(t,r,o)}}function ci(t,e,n){var i=!ut();"function"===typeof n?(ii.get=i?fi(e):di(n),ii.set=L):(ii.get=n.get?i&&!1!==n.cache?fi(e):di(n.get):L,ii.set=n.set||L),Object.defineProperty(t,e,ii)}function fi(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),gt.target&&e.depend(),e.value}}function di(t){return function(){return t.call(this,this)}}function pi(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?L:T(e[n],t)}function gi(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1)return this;var n=C(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function Oi(t){t.mixin=function(t){return this.options=Yt(this.options,t),this}}function Ai(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,i=n.cid,r=t._Ctor||(t._Ctor={});if(r[i])return r[i];var o=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Yt(n.options,t),a["super"]=n,a.options.props&&Ii(a),a.options.computed&&ki(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,F.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=E({},a.options),r[i]=a,a}}function Ii(t){var e=t.options.props;for(var n in e)ri(t.prototype,"_props",n)}function ki(t){var e=t.options.computed;for(var n in e)ci(t.prototype,n,e[n])}function Ti(t){F.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&h(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function Ci(t){return t&&(t.Ctor.options.name||t.tag)}function Ei(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!c(t)&&t.test(e)}function Di(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var o in n){var a=n[o];if(a){var s=Ci(a.componentOptions);s&&!e(s)&&Li(n,o,i,r)}}}function Li(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,y(n,e)}bi(Mi),vi(Mi),Tn(Mi),Ln(Mi),yn(Mi);var Ri=[String,RegExp,Array],ji={name:"keep-alive",abstract:!0,props:{include:Ri,exclude:Ri,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Li(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){Di(t,(function(t){return Ei(e,t)}))})),this.$watch("exclude",(function(e){Di(t,(function(t){return!Ei(e,t)}))}))},render:function(){var t=this.$slots.default,e=Mn(t),n=e&&e.componentOptions;if(n){var i=Ci(n),r=this,o=r.include,a=r.exclude;if(o&&(!i||!Ei(o,i))||a&&i&&Ei(a,i))return e;var s=this,u=s.cache,l=s.keys,h=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;u[h]?(e.componentInstance=u[h].componentInstance,y(l,h),l.push(h)):(u[h]=e,l.push(h),this.max&&l.length>parseInt(this.max)&&Li(u,l[0],l,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Pi={KeepAlive:ji};function Ni(t){var e={get:function(){return H}};Object.defineProperty(t,"config",e),t.util={warn:dt,extend:E,mergeOptions:Yt,defineReactive:Rt},t.set=jt,t.delete=Pt,t.nextTick=pe,t.observable=function(t){return Lt(t),t},t.options=Object.create(null),F.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,E(t.options.components,Pi),Si(t),Oi(t),Ai(t),Ti(t)}Ni(Mi),Object.defineProperty(Mi.prototype,"$isServer",{get:ut}),Object.defineProperty(Mi.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Mi,"FunctionalRenderContext",{value:Ke}),Mi.version="2.6.10";var Bi=m("style,class"),zi=m("input,textarea,option,select,progress"),Fi=function(t,e,n){return"value"===n&&zi(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Vi=m("contenteditable,draggable,spellcheck"),Hi=m("events,caret,typing,plaintext-only"),Gi=function(t,e){return Yi(e)||"false"===e?"false":"contenteditable"===t&&Hi(e)?e:"true"},Ui=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Wi="http://www.w3.org/1999/xlink",qi=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Zi=function(t){return qi(t)?t.slice(6,t.length):""},Yi=function(t){return null==t||!1===t};function Xi(t){var e=t.data,n=t,i=t;while(r(i.componentInstance))i=i.componentInstance._vnode,i&&i.data&&(e=$i(i.data,e));while(r(n=n.parent))n&&n.data&&(e=$i(e,n.data));return Ki(e.staticClass,e.class)}function $i(t,e){return{staticClass:Ji(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Ki(t,e){return r(t)||r(e)?Ji(t,Qi(e)):""}function Ji(t,e){return t?e?t+" "+e:t:e||""}function Qi(t){return Array.isArray(t)?tr(t):u(t)?er(t):"string"===typeof t?t:""}function tr(t){for(var e,n="",i=0,o=t.length;i-1?sr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:sr[t]=/HTMLUnknownElement/.test(e.toString())}var lr=m("text,number,password,search,email,tel,url");function hr(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function cr(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function fr(t,e){return document.createElementNS(nr[t],e)}function dr(t){return document.createTextNode(t)}function pr(t){return document.createComment(t)}function gr(t,e,n){t.insertBefore(e,n)}function mr(t,e){t.removeChild(e)}function vr(t,e){t.appendChild(e)}function yr(t){return t.parentNode}function br(t){return t.nextSibling}function wr(t){return t.tagName}function _r(t,e){t.textContent=e}function xr(t,e){t.setAttribute(e,"")}var Mr=Object.freeze({createElement:cr,createElementNS:fr,createTextNode:dr,createComment:pr,insertBefore:gr,removeChild:mr,appendChild:vr,parentNode:yr,nextSibling:br,tagName:wr,setTextContent:_r,setStyleScope:xr}),Sr={create:function(t,e){Or(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Or(t,!0),Or(e))},destroy:function(t){Or(t,!0)}};function Or(t,e){var n=t.data.ref;if(r(n)){var i=t.context,o=t.componentInstance||t.elm,a=i.$refs;e?Array.isArray(a[n])?y(a[n],o):a[n]===o&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var Ar=new bt("",{},[]),Ir=["create","activate","update","remove","destroy"];function kr(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&Tr(t,e)||o(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&i(e.asyncFactory.error))}function Tr(t,e){if("input"!==t.tag)return!0;var n,i=r(n=t.data)&&r(n=n.attrs)&&n.type,o=r(n=e.data)&&r(n=n.attrs)&&n.type;return i===o||lr(i)&&lr(o)}function Cr(t,e,n){var i,o,a={};for(i=e;i<=n;++i)o=t[i].key,r(o)&&(a[o]=i);return a}function Er(t){var e,n,a={},u=t.modules,l=t.nodeOps;for(e=0;eg?(c=i(n[y+1])?null:n[y+1].elm,M(t,c,n,p,y,o)):p>y&&O(t,e,f,g)}function k(t,e,n,i){for(var o=n;o-1?Hr(t,e,n):Ui(e)?Yi(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Vi(e)?t.setAttribute(e,Gi(e,n)):qi(e)?Yi(n)?t.removeAttributeNS(Wi,Zi(e)):t.setAttributeNS(Wi,e,n):Hr(t,e,n)}function Hr(t,e,n){if(Yi(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var Gr={create:Fr,update:Fr};function Ur(t,e){var n=e.elm,o=e.data,a=t.data;if(!(i(o.staticClass)&&i(o.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=Xi(e),u=n._transitionClasses;r(u)&&(s=Ji(s,Qi(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Wr,qr={create:Ur,update:Ur},Zr="__r",Yr="__c";function Xr(t){if(r(t[Zr])){var e=tt?"change":"input";t[e]=[].concat(t[Zr],t[e]||[]),delete t[Zr]}r(t[Yr])&&(t.change=[].concat(t[Yr],t.change||[]),delete t[Yr])}function $r(t,e,n){var i=Wr;return function r(){var o=e.apply(null,arguments);null!==o&&Qr(t,r,n,i)}}var Kr=ae&&!(rt&&Number(rt[1])<=53);function Jr(t,e,n,i){if(Kr){var r=Zn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Wr.addEventListener(t,e,at?{capture:n,passive:i}:n)}function Qr(t,e,n,i){(i||Wr).removeEventListener(t,e._wrapper||e,n)}function to(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Wr=e.elm,Xr(n),we(n,r,Jr,Qr,$r,e.context),Wr=void 0}}var eo,no={create:to,update:to};function io(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,o,a=e.elm,s=t.data.domProps||{},u=e.data.domProps||{};for(n in r(u.__ob__)&&(u=e.data.domProps=E({},u)),s)n in u||(a[n]="");for(n in u){if(o=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=o;var l=i(o)?"":String(o);ro(a,l)&&(a.value=l)}else if("innerHTML"===n&&rr(a.tagName)&&i(a.innerHTML)){eo=eo||document.createElement("div"),eo.innerHTML=""+o+"";var h=eo.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(h.firstChild)a.appendChild(h.firstChild)}else if(o!==s[n])try{a[n]=o}catch(Ma){}}}}function ro(t,e){return!t.composing&&("OPTION"===t.tagName||oo(t,e)||ao(t,e))}function oo(t,e){var n=!0;try{n=document.activeElement!==t}catch(Ma){}return n&&t.value!==e}function ao(t,e){var n=t.value,i=t._vModifiers;if(r(i)){if(i.number)return g(n)!==g(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}var so={create:io,update:io},uo=_((function(t){var e={},n=/;(?![^(]*\))/g,i=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(i);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function lo(t){var e=ho(t.style);return t.staticStyle?E(t.staticStyle,e):e}function ho(t){return Array.isArray(t)?D(t):"string"===typeof t?uo(t):t}function co(t,e){var n,i={};if(e){var r=t;while(r.componentInstance)r=r.componentInstance._vnode,r&&r.data&&(n=lo(r.data))&&E(i,n)}(n=lo(t.data))&&E(i,n);var o=t;while(o=o.parent)o.data&&(n=lo(o.data))&&E(i,n);return i}var fo,po=/^--/,go=/\s*!important$/,mo=function(t,e,n){if(po.test(e))t.style.setProperty(e,n);else if(go.test(n))t.style.setProperty(A(e),n.replace(go,""),"important");else{var i=yo(e);if(Array.isArray(n))for(var r=0,o=n.length;r-1?e.split(_o).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Mo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(_o).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";while(n.indexOf(i)>=0)n=n.replace(i," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function So(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&E(e,Oo(t.name||"v")),E(e,t),e}return"string"===typeof t?Oo(t):void 0}}var Oo=_((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Ao=$&&!et,Io="transition",ko="animation",To="transition",Co="transitionend",Eo="animation",Do="animationend";Ao&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(To="WebkitTransition",Co="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Eo="WebkitAnimation",Do="webkitAnimationEnd"));var Lo=$?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Ro(t){Lo((function(){Lo(t)}))}function jo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),xo(t,e))}function Po(t,e){t._transitionClasses&&y(t._transitionClasses,e),Mo(t,e)}function No(t,e,n){var i=zo(t,e),r=i.type,o=i.timeout,a=i.propCount;if(!r)return n();var s=r===Io?Co:Do,u=0,l=function(){t.removeEventListener(s,h),n()},h=function(e){e.target===t&&++u>=a&&l()};setTimeout((function(){u0&&(n=Io,h=a,c=o.length):e===ko?l>0&&(n=ko,h=l,c=u.length):(h=Math.max(a,l),n=h>0?a>l?Io:ko:null,c=n?n===Io?o.length:u.length:0);var f=n===Io&&Bo.test(i[To+"Property"]);return{type:n,timeout:h,propCount:c,hasTransform:f}}function Fo(t,e){while(t.length1}function qo(t,e){!0!==e.data.show&&Ho(e)}var Zo=$?{create:qo,activate:qo,remove:function(t,e){!0!==t.data.show?Go(t,e):e()}}:{},Yo=[Gr,qr,no,so,wo,Zo],Xo=Yo.concat(zr),$o=Er({nodeOps:Mr,modules:Xo});et&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&ra(t,"input")}));var Ko={inserted:function(t,e,n,i){"select"===n.tag?(i.elm&&!i.elm._vOptions?_e(n,"postpatch",(function(){Ko.componentUpdated(t,e,n)})):Jo(t,e,n.context),t._vOptions=[].map.call(t.options,ea)):("textarea"===n.tag||lr(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",na),t.addEventListener("compositionend",ia),t.addEventListener("change",ia),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Jo(t,e,n.context);var i=t._vOptions,r=t._vOptions=[].map.call(t.options,ea);if(r.some((function(t,e){return!P(t,i[e])}))){var o=t.multiple?e.value.some((function(t){return ta(t,r)})):e.value!==e.oldValue&&ta(e.value,r);o&&ra(t,"change")}}}};function Jo(t,e,n){Qo(t,e,n),(tt||nt)&&setTimeout((function(){Qo(t,e,n)}),0)}function Qo(t,e,n){var i=e.value,r=t.multiple;if(!r||Array.isArray(i)){for(var o,a,s=0,u=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(P(ea(a),i))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function ta(t,e){return e.every((function(e){return!P(e,t)}))}function ea(t){return"_value"in t?t._value:t.value}function na(t){t.target.composing=!0}function ia(t){t.target.composing&&(t.target.composing=!1,ra(t.target,"input"))}function ra(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function oa(t){return!t.componentInstance||t.data&&t.data.transition?t:oa(t.componentInstance._vnode)}var aa={bind:function(t,e,n){var i=e.value;n=oa(n);var r=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,Ho(n,(function(){t.style.display=o}))):t.style.display=i?o:"none"},update:function(t,e,n){var i=e.value,r=e.oldValue;if(!i!==!r){n=oa(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,i?Ho(n,(function(){t.style.display=t.__vOriginalDisplay})):Go(n,(function(){t.style.display="none"}))):t.style.display=i?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}},sa={model:Ko,show:aa},ua={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function la(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?la(Mn(e.children)):t}function ha(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var o in r)e[M(o)]=r[o];return e}function ca(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function fa(t){while(t=t.parent)if(t.data.transition)return!0}function da(t,e){return e.key===t.key&&e.tag===t.tag}var pa=function(t){return t.tag||xn(t)},ga=function(t){return"show"===t.name},ma={name:"transition",props:ua,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(pa),n.length)){0;var i=this.mode;0;var r=n[0];if(fa(this.$vnode))return r;var o=la(r);if(!o)return r;if(this._leaving)return ca(t,r);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var u=(o.data||(o.data={})).transition=ha(this),l=this._vnode,h=la(l);if(o.data.directives&&o.data.directives.some(ga)&&(o.data.show=!0),h&&h.data&&!da(o,h)&&!xn(h)&&(!h.componentInstance||!h.componentInstance._vnode.isComment)){var c=h.data.transition=E({},u);if("out-in"===i)return this._leaving=!0,_e(c,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),ca(t,r);if("in-out"===i){if(xn(o))return l;var f,d=function(){f()};_e(u,"afterEnter",d),_e(u,"enterCancelled",d),_e(c,"delayLeave",(function(t){f=t}))}}return r}}},va=E({tag:String,moveClass:String},ua);delete va.mode;var ya={props:va,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=En(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],a=ha(this),s=0;s1?arguments[1]:void 0,e.length)),i=s(t);return f?f(e,i,n):d(e,n,n+i.length)===i}})},"2cf4":function(t,e,n){var i,r,o,a,s=n("da84"),u=n("2ba4"),l=n("0366"),h=n("1626"),c=n("1a2d"),f=n("d039"),d=n("1be4"),p=n("f36a"),g=n("cc12"),m=n("d6d6"),v=n("1cdc"),y=n("605d"),b=s.setImmediate,w=s.clearImmediate,_=s.process,x=s.Dispatch,M=s.Function,S=s.MessageChannel,O=s.String,A=0,I={},k="onreadystatechange";f((function(){i=s.location}));var T=function(t){if(c(I,t)){var e=I[t];delete I[t],e()}},C=function(t){return function(){T(t)}},E=function(t){T(t.data)},D=function(t){s.postMessage(O(t),i.protocol+"//"+i.host)};b&&w||(b=function(t){m(arguments.length,1);var e=h(t)?t:M(t),n=p(arguments,1);return I[++A]=function(){u(e,void 0,n)},r(A),A},w=function(t){delete I[t]},y?r=function(t){_.nextTick(C(t))}:x&&x.now?r=function(t){x.now(C(t))}:S&&!v?(o=new S,a=o.port2,o.port1.onmessage=E,r=l(a.postMessage,a)):s.addEventListener&&h(s.postMessage)&&!s.importScripts&&i&&"file:"!==i.protocol&&!f(D)?(r=D,s.addEventListener("message",E,!1)):r=k in g("script")?function(t){d.appendChild(g("script"))[k]=function(){d.removeChild(this),T(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:b,clear:w}},"2d00":function(t,e,n){var i,r,o=n("da84"),a=n("342f"),s=o.process,u=o.Deno,l=s&&s.versions||u&&u.version,h=l&&l.v8;h&&(i=h.split("."),r=i[0]>0&&i[0]<4?1:+(i[0]+i[1])),!r&&a&&(i=a.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/),i&&(r=+i[1]))),t.exports=r},"2f62":function(t,e,n){"use strict"; +/** + * vuex v3.1.0 + * (c) 2019 Evan You + * @license MIT + */ +function i(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({beforeCreate:i});else{var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[i].concat(t.init):i,n.call(this,t)}}function i(){var t=this.$options;t.store?this.$store="function"===typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}n.d(e,"c",(function(){return T})),n.d(e,"b",(function(){return E}));var r="undefined"!==typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function o(t){r&&(t._devtoolHook=r,r.emit("vuex:init",t),r.on("vuex:travel-to-state",(function(e){t.replaceState(e)})),t.subscribe((function(t,e){r.emit("vuex:mutation",t,e)})))}function a(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function s(t){return null!==t&&"object"===typeof t}function u(t){return t&&"function"===typeof t.then}var l=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"===typeof n?n():n)||{}},h={namespaced:{configurable:!0}};h.namespaced.get=function(){return!!this._rawModule.namespaced},l.prototype.addChild=function(t,e){this._children[t]=e},l.prototype.removeChild=function(t){delete this._children[t]},l.prototype.getChild=function(t){return this._children[t]},l.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},l.prototype.forEachChild=function(t){a(this._children,t)},l.prototype.forEachGetter=function(t){this._rawModule.getters&&a(this._rawModule.getters,t)},l.prototype.forEachAction=function(t){this._rawModule.actions&&a(this._rawModule.actions,t)},l.prototype.forEachMutation=function(t){this._rawModule.mutations&&a(this._rawModule.mutations,t)},Object.defineProperties(l.prototype,h);var c=function(t){this.register([],t,!1)};function f(t,e,n){if(e.update(n),n.modules)for(var i in n.modules){if(!e.getChild(i))return void 0;f(t.concat(i),e.getChild(i),n.modules[i])}}c.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},c.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")}),"")},c.prototype.update=function(t){f([],this.root,t)},c.prototype.register=function(t,e,n){var i=this;void 0===n&&(n=!0);var r=new l(e,n);if(0===t.length)this.root=r;else{var o=this.get(t.slice(0,-1));o.addChild(t[t.length-1],r)}e.modules&&a(e.modules,(function(e,r){i.register(t.concat(r),e,n)}))},c.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var d;var p=function(t){var e=this;void 0===t&&(t={}),!d&&"undefined"!==typeof window&&window.Vue&&k(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var i=t.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new c(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new d;var r=this,a=this,s=a.dispatch,u=a.commit;this.dispatch=function(t,e){return s.call(r,t,e)},this.commit=function(t,e,n){return u.call(r,t,e,n)},this.strict=i;var l=this._modules.root.state;b(this,l,[],this._modules.root),y(this,l),n.forEach((function(t){return t(e)}));var h=void 0!==t.devtools?t.devtools:d.config.devtools;h&&o(this)},g={state:{configurable:!0}};function m(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function v(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;b(t,n,[],t._modules.root,!0),y(t,n,e)}function y(t,e,n){var i=t._vm;t.getters={};var r=t._wrappedGetters,o={};a(r,(function(e,n){o[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var s=d.config.silent;d.config.silent=!0,t._vm=new d({data:{$$state:e},computed:o}),d.config.silent=s,t.strict&&O(t),i&&(n&&t._withCommit((function(){i._data.$$state=null})),d.nextTick((function(){return i.$destroy()})))}function b(t,e,n,i,r){var o=!n.length,a=t._modules.getNamespace(n);if(i.namespaced&&(t._modulesNamespaceMap[a]=i),!o&&!r){var s=A(e,n.slice(0,-1)),u=n[n.length-1];t._withCommit((function(){d.set(s,u,i.state)}))}var l=i.context=w(t,a,n);i.forEachMutation((function(e,n){var i=a+n;x(t,i,e,l)})),i.forEachAction((function(e,n){var i=e.root?n:a+n,r=e.handler||e;M(t,i,r,l)})),i.forEachGetter((function(e,n){var i=a+n;S(t,i,e,l)})),i.forEachChild((function(i,o){b(t,e,n.concat(o),i,r)}))}function w(t,e,n){var i=""===e,r={dispatch:i?t.dispatch:function(n,i,r){var o=I(n,i,r),a=o.payload,s=o.options,u=o.type;return s&&s.root||(u=e+u),t.dispatch(u,a)},commit:i?t.commit:function(n,i,r){var o=I(n,i,r),a=o.payload,s=o.options,u=o.type;s&&s.root||(u=e+u),t.commit(u,a,s)}};return Object.defineProperties(r,{getters:{get:i?function(){return t.getters}:function(){return _(t,e)}},state:{get:function(){return A(t.state,n)}}}),r}function _(t,e){var n={},i=e.length;return Object.keys(t.getters).forEach((function(r){if(r.slice(0,i)===e){var o=r.slice(i);Object.defineProperty(n,o,{get:function(){return t.getters[r]},enumerable:!0})}})),n}function x(t,e,n,i){var r=t._mutations[e]||(t._mutations[e]=[]);r.push((function(e){n.call(t,i.state,e)}))}function M(t,e,n,i){var r=t._actions[e]||(t._actions[e]=[]);r.push((function(e,r){var o=n.call(t,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:t.getters,rootState:t.state},e,r);return u(o)||(o=Promise.resolve(o)),t._devtoolHook?o.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):o}))}function S(t,e,n,i){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(i.state,i.getters,t.state,t.getters)})}function O(t){t._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}function A(t,e){return e.length?e.reduce((function(t,e){return t[e]}),t):t}function I(t,e,n){return s(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function k(t){d&&t===d||(d=t,i(d))}g.state.get=function(){return this._vm._data.$$state},g.state.set=function(t){0},p.prototype.commit=function(t,e,n){var i=this,r=I(t,e,n),o=r.type,a=r.payload,s=(r.options,{type:o,payload:a}),u=this._mutations[o];u&&(this._withCommit((function(){u.forEach((function(t){t(a)}))})),this._subscribers.forEach((function(t){return t(s,i.state)})))},p.prototype.dispatch=function(t,e){var n=this,i=I(t,e),r=i.type,o=i.payload,a={type:r,payload:o},s=this._actions[r];if(s){try{this._actionSubscribers.filter((function(t){return t.before})).forEach((function(t){return t.before(a,n.state)}))}catch(l){0}var u=s.length>1?Promise.all(s.map((function(t){return t(o)}))):s[0](o);return u.then((function(t){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(a,n.state)}))}catch(l){0}return t}))}},p.prototype.subscribe=function(t){return m(t,this._subscribers)},p.prototype.subscribeAction=function(t){var e="function"===typeof t?{before:t}:t;return m(e,this._actionSubscribers)},p.prototype.watch=function(t,e,n){var i=this;return this._watcherVM.$watch((function(){return t(i.state,i.getters)}),e,n)},p.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},p.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"===typeof t&&(t=[t]),this._modules.register(t,e),b(this,this.state,t,this._modules.get(t),n.preserveState),y(this,this.state)},p.prototype.unregisterModule=function(t){var e=this;"string"===typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){var n=A(e.state,t.slice(0,-1));d.delete(n,t[t.length-1])})),v(this)},p.prototype.hotUpdate=function(t){this._modules.update(t),v(this,!0)},p.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(p.prototype,g);var T=j((function(t,e){var n={};return R(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var i=P(this.$store,"mapState",t);if(!i)return;e=i.context.state,n=i.context.getters}return"function"===typeof r?r.call(this,e,n):e[r]},n[i].vuex=!0})),n})),C=j((function(t,e){var n={};return R(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var i=this.$store.commit;if(t){var o=P(this.$store,"mapMutations",t);if(!o)return;i=o.context.commit}return"function"===typeof r?r.apply(this,[i].concat(e)):i.apply(this.$store,[r].concat(e))}})),n})),E=j((function(t,e){var n={};return R(e).forEach((function(e){var i=e.key,r=e.val;r=t+r,n[i]=function(){if(!t||P(this.$store,"mapGetters",t))return this.$store.getters[r]},n[i].vuex=!0})),n})),D=j((function(t,e){var n={};return R(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var i=this.$store.dispatch;if(t){var o=P(this.$store,"mapActions",t);if(!o)return;i=o.context.dispatch}return"function"===typeof r?r.apply(this,[i].concat(e)):i.apply(this.$store,[r].concat(e))}})),n})),L=function(t){return{mapState:T.bind(null,t),mapGetters:E.bind(null,t),mapMutations:C.bind(null,t),mapActions:D.bind(null,t)}};function R(t){return Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}}))}function j(t){return function(e,n){return"string"!==typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function P(t,e,n){var i=t._modulesNamespaceMap[n];return i}var N={Store:p,install:k,version:"3.1.0",mapState:T,mapMutations:C,mapGetters:E,mapActions:D,createNamespacedHelpers:L};e["a"]=N},"2f9a":function(t,e){t.exports=function(){}},"301c":function(t,e,n){n("e198")("asyncIterator")},"313e":function(t,e,n){"use strict";n.r(e);var i={};n.r(i),n.d(i,"create",(function(){return v})),n.d(i,"copy",(function(){return y})),n.d(i,"clone",(function(){return b})),n.d(i,"set",(function(){return w})),n.d(i,"add",(function(){return _})),n.d(i,"scaleAndAdd",(function(){return x})),n.d(i,"sub",(function(){return M})),n.d(i,"len",(function(){return S})),n.d(i,"length",(function(){return O})),n.d(i,"lenSquare",(function(){return A})),n.d(i,"lengthSquare",(function(){return I})),n.d(i,"mul",(function(){return k})),n.d(i,"div",(function(){return T})),n.d(i,"dot",(function(){return C})),n.d(i,"scale",(function(){return E})),n.d(i,"normalize",(function(){return D})),n.d(i,"distance",(function(){return L})),n.d(i,"dist",(function(){return R})),n.d(i,"distanceSquare",(function(){return j})),n.d(i,"distSquare",(function(){return P})),n.d(i,"negate",(function(){return N})),n.d(i,"lerp",(function(){return B})),n.d(i,"applyTransform",(function(){return z})),n.d(i,"min",(function(){return F})),n.d(i,"max",(function(){return V}));var r={};n.r(r),n.d(r,"create",(function(){return xt})),n.d(r,"identity",(function(){return Mt})),n.d(r,"copy",(function(){return St})),n.d(r,"mul",(function(){return Ot})),n.d(r,"translate",(function(){return At})),n.d(r,"rotate",(function(){return It})),n.d(r,"scale",(function(){return kt})),n.d(r,"invert",(function(){return Tt})),n.d(r,"clone",(function(){return Ct}));var o={};n.r(o),n.d(o,"init",(function(){return Gi})),n.d(o,"dispose",(function(){return Ui})),n.d(o,"disposeAll",(function(){return Wi})),n.d(o,"getInstance",(function(){return qi})),n.d(o,"registerPainter",(function(){return Zi})),n.d(o,"version",(function(){return Yi}));var a={};n.r(a),n.d(a,"updateProps",(function(){return ul})),n.d(a,"initProps",(function(){return ll})),n.d(a,"removeElement",(function(){return cl})),n.d(a,"removeElementWithFadeOut",(function(){return dl})),n.d(a,"isElementRemoved",(function(){return hl})),n.d(a,"extendShape",(function(){return Em})),n.d(a,"extendPath",(function(){return Lm})),n.d(a,"registerShape",(function(){return Rm})),n.d(a,"getShapeClass",(function(){return jm})),n.d(a,"makePath",(function(){return Pm})),n.d(a,"makeImage",(function(){return Nm})),n.d(a,"mergePath",(function(){return zm})),n.d(a,"resizePath",(function(){return Fm})),n.d(a,"subPixelOptimizeLine",(function(){return Vm})),n.d(a,"subPixelOptimizeRect",(function(){return Hm})),n.d(a,"subPixelOptimize",(function(){return Gm})),n.d(a,"getTransform",(function(){return Um})),n.d(a,"applyTransform",(function(){return Wm})),n.d(a,"transformDirection",(function(){return qm})),n.d(a,"groupTransition",(function(){return Xm})),n.d(a,"clipPointsByRect",(function(){return $m})),n.d(a,"clipRectByRect",(function(){return Km})),n.d(a,"createIcon",(function(){return Jm})),n.d(a,"linePolygonIntersect",(function(){return Qm})),n.d(a,"lineLineIntersect",(function(){return tv})),n.d(a,"setTooltipConfig",(function(){return iv})),n.d(a,"traverseElements",(function(){return ov})),n.d(a,"Group",(function(){return Ni})),n.d(a,"Image",(function(){return gs})),n.d(a,"Text",(function(){return Hs})),n.d(a,"Circle",(function(){return wg})),n.d(a,"Ellipse",(function(){return Mg})),n.d(a,"Sector",(function(){return Vg})),n.d(a,"Ring",(function(){return Ug})),n.d(a,"Polygon",(function(){return Xg})),n.d(a,"Polyline",(function(){return Jg})),n.d(a,"Rect",(function(){return Ss})),n.d(a,"Line",(function(){return nm})),n.d(a,"BezierCurve",(function(){return sm})),n.d(a,"Arc",(function(){return hm})),n.d(a,"IncrementalDisplayable",(function(){return Im})),n.d(a,"CompoundPath",(function(){return fm})),n.d(a,"LinearGradient",(function(){return mm})),n.d(a,"RadialGradient",(function(){return ym})),n.d(a,"BoundingRect",(function(){return Ht})),n.d(a,"OrientedBoundingRect",(function(){return Sm})),n.d(a,"Point",(function(){return Dt})),n.d(a,"Path",(function(){return ss}));var s={};n.r(s),n.d(s,"createList",(function(){return zM})),n.d(s,"getLayoutRect",(function(){return sc})),n.d(s,"createDimensions",(function(){return X_})),n.d(s,"dataStack",(function(){return FM})),n.d(s,"createSymbol",(function(){return Iy})),n.d(s,"createScale",(function(){return VM})),n.d(s,"mixinAxisModelCommonMethods",(function(){return HM})),n.d(s,"getECData",(function(){return Gs})),n.d(s,"enableHoverEmphasis",(function(){return Wu})),n.d(s,"createTextStyle",(function(){return GM}));var u={};n.r(u),n.d(u,"linearMap",(function(){return Ji})),n.d(u,"round",(function(){return tr})),n.d(u,"asc",(function(){return er})),n.d(u,"getPrecision",(function(){return nr})),n.d(u,"getPrecisionSafe",(function(){return ir})),n.d(u,"getPixelPrecision",(function(){return rr})),n.d(u,"getPercentWithPrecision",(function(){return or})),n.d(u,"MAX_SAFE_INTEGER",(function(){return ur})),n.d(u,"remRadian",(function(){return lr})),n.d(u,"isRadianAroundZero",(function(){return hr})),n.d(u,"parseDate",(function(){return fr})),n.d(u,"quantity",(function(){return dr})),n.d(u,"quantityExponent",(function(){return pr})),n.d(u,"nice",(function(){return gr})),n.d(u,"quantile",(function(){return mr})),n.d(u,"reformIntervals",(function(){return vr})),n.d(u,"isNumeric",(function(){return br})),n.d(u,"numericToNumber",(function(){return yr}));var l={};n.r(l),n.d(l,"parse",(function(){return fr})),n.d(l,"format",(function(){return Mh}));var h={};n.r(h),n.d(h,"extendShape",(function(){return Em})),n.d(h,"extendPath",(function(){return Lm})),n.d(h,"makePath",(function(){return Pm})),n.d(h,"makeImage",(function(){return Nm})),n.d(h,"mergePath",(function(){return zm})),n.d(h,"resizePath",(function(){return Fm})),n.d(h,"createIcon",(function(){return Jm})),n.d(h,"updateProps",(function(){return ul})),n.d(h,"initProps",(function(){return ll})),n.d(h,"getTransform",(function(){return Um})),n.d(h,"clipPointsByRect",(function(){return $m})),n.d(h,"clipRectByRect",(function(){return Km})),n.d(h,"registerShape",(function(){return Rm})),n.d(h,"getShapeClass",(function(){return jm})),n.d(h,"Group",(function(){return Ni})),n.d(h,"Image",(function(){return gs})),n.d(h,"Text",(function(){return Hs})),n.d(h,"Circle",(function(){return wg})),n.d(h,"Ellipse",(function(){return Mg})),n.d(h,"Sector",(function(){return Vg})),n.d(h,"Ring",(function(){return Ug})),n.d(h,"Polygon",(function(){return Xg})),n.d(h,"Polyline",(function(){return Jg})),n.d(h,"Rect",(function(){return Ss})),n.d(h,"Line",(function(){return nm})),n.d(h,"BezierCurve",(function(){return sm})),n.d(h,"Arc",(function(){return hm})),n.d(h,"IncrementalDisplayable",(function(){return Im})),n.d(h,"CompoundPath",(function(){return fm})),n.d(h,"LinearGradient",(function(){return mm})),n.d(h,"RadialGradient",(function(){return ym})),n.d(h,"BoundingRect",(function(){return Ht}));var c={};n.r(c),n.d(c,"addCommas",(function(){return Hh})),n.d(c,"toCamelCase",(function(){return Gh})),n.d(c,"normalizeCssArray",(function(){return Uh})),n.d(c,"encodeHTML",(function(){return ot})),n.d(c,"formatTpl",(function(){return Yh})),n.d(c,"getTooltipMarker",(function(){return $h})),n.d(c,"formatTime",(function(){return Kh})),n.d(c,"capitalFirst",(function(){return Jh})),n.d(c,"truncateText",(function(){return Eo})),n.d(c,"getTextRect",(function(){return Vh}));var f={};n.r(f),n.d(f,"map",(function(){return m["map"]})),n.d(f,"each",(function(){return m["each"]})),n.d(f,"indexOf",(function(){return m["indexOf"]})),n.d(f,"inherits",(function(){return m["inherits"]})),n.d(f,"reduce",(function(){return m["reduce"]})),n.d(f,"filter",(function(){return m["filter"]})),n.d(f,"bind",(function(){return m["bind"]})),n.d(f,"curry",(function(){return m["curry"]})),n.d(f,"isArray",(function(){return m["isArray"]})),n.d(f,"isString",(function(){return m["isString"]})),n.d(f,"isObject",(function(){return m["isObject"]})),n.d(f,"isFunction",(function(){return m["isFunction"]})),n.d(f,"extend",(function(){return m["extend"]})),n.d(f,"defaults",(function(){return m["defaults"]})),n.d(f,"clone",(function(){return m["clone"]})),n.d(f,"merge",(function(){return m["merge"]})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +var d=function(t,e){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},d(t,e)};function p(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}d(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}Object.create;Object.create;var g=n("22d1"),m=n("6d8b");function v(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function y(t,e){return t[0]=e[0],t[1]=e[1],t}function b(t){return[t[0],t[1]]}function w(t,e,n){return t[0]=e,t[1]=n,t}function _(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function x(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function M(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function S(t){return Math.sqrt(A(t))}var O=S;function A(t){return t[0]*t[0]+t[1]*t[1]}var I=A;function k(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function T(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function C(t,e){return t[0]*e[0]+t[1]*e[1]}function E(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function D(t,e){var n=S(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function L(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var R=L;function j(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var P=j;function N(t,e){return t[0]=-e[0],t[1]=-e[1],t}function B(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function z(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function F(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function V(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var H=function(){function t(t,e){this.target=t,this.topTarget=e&&e.topTarget}return t}(),G=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){var e=t.target;while(e&&!e.draggable)e=e.parent||e.__hostTarget;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new H(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new H(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new H(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new H(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new H(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new H(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),U=G,W=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"===typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[u]+":0",r[l]+":0",i[1-u]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}function et(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],u=!0,l=0;l<4;l++){var h=t[l].getBoundingClientRect(),c=2*l,f=h.left,d=h.top;a.push(f,d),u=u&&o&&f===o[c]&&d===o[c+1],s.push(t[l].offsetLeft,t[l].offsetTop)}return u&&r?r:(e.srcCoords=a,e[i]=n?X(s,a):X(a,s))}function nt(t){return"CANVAS"===t.nodeName.toUpperCase()}var it=/([&<>"'])/g,rt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ot(t){return null==t?"":(t+"").replace(it,(function(t,e){return rt[e]}))}var at=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,st=[],ut=g["a"].browser.firefox&&+g["a"].browser.version.split(".")[0]<39;function lt(t,e,n,i){return n=n||{},i?ht(t,e,n):ut&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):ht(t,e,n),n}function ht(t,e,n){if(g["a"].domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(nt(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Q(st,t,i,r))return n.zrX=st[0],void(n.zrY=st[1])}n.zrX=n.zrY=0}function ct(t){return t||window.event}function ft(t,e,n){if(e=ct(e),null!=e.zrX)return e;var i=e.type,r=i&&i.indexOf("touch")>=0;if(r){var o="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];o&<(t,o,e,n)}else{lt(t,e,e,n);var a=dt(e);e.zrDelta=a?a/120:-(e.detail||0)/3}var s=e.button;return null==e.which&&void 0!==s&&at.test(e.type)&&(e.which=1&s?1:2&s?3:4&s?2:0),e}function dt(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;var r=0!==i?Math.abs(i):Math.abs(n),o=i>0?-1:i<0?1:n>0?-1:1;return 3*r*o}function pt(t,e,n,i){t.addEventListener(e,n,i)}function gt(t,e,n,i){t.removeEventListener(e,n,i)}var mt=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0};function vt(t){return 2===t.which||3===t.which}var yt=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o1&&i&&i.length>1){var o=bt(i)/bt(r);!isFinite(o)&&(o=1),e.pinchScale=o;var a=wt(i);return e.pinchX=a[0],e.pinchY=a[1],{type:"pinch",target:t[0].target,event:e}}}}};function xt(){return[1,0,0,1,0,0]}function Mt(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function St(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Ot(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],u=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=u,t}function At(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function It(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],u=e[5],l=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*l,t[1]=-i*l+a*h,t[2]=r*h+s*l,t[3]=-r*l+h*s,t[4]=h*o+l*u,t[5]=h*u-l*o,t}function kt(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function Tt(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],u=n*a-o*i;return u?(u=1/u,t[0]=a*u,t[1]=-o*u,t[2]=-i*u,t[3]=n*u,t[4]=(i*s-a*r)*u,t[5]=(o*r-n*s)*u,t):null}function Ct(t){var e=xt();return St(e,t),e}var Et=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),Dt=Et,Lt=Math.min,Rt=Math.max,jt=new Dt,Pt=new Dt,Nt=new Dt,Bt=new Dt,zt=new Dt,Ft=new Dt,Vt=function(){function t(t,e,n,i){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=Lt(t.x,this.x),n=Lt(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Rt(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Rt(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=xt();return At(r,r,[-e.x,-e.y]),kt(r,r,[n,i]),At(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,u=e.x,l=e.x+e.width,h=e.y,c=e.y+e.height,f=!(op&&(p=b,gp&&(p=w,v=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}jt.x=Nt.x=n.x,jt.y=Bt.y=n.y,Pt.x=Bt.x=n.x+n.width,Pt.y=Nt.y=n.y+n.height,jt.transform(i),Bt.transform(i),Pt.transform(i),Nt.transform(i),e.x=Lt(jt.x,Pt.x,Nt.x,Bt.x),e.y=Lt(jt.y,Pt.y,Nt.y,Bt.y);var u=Rt(jt.x,Pt.x,Nt.x,Bt.x),l=Rt(jt.y,Pt.y,Nt.y,Bt.y);e.width=u-e.x,e.height=l-e.y}else e!==n&&t.copy(e,n)},t}(),Ht=Vt,Gt="silent";function Ut(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Wt}}function Wt(){mt(this.event)}var qt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return p(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(q),Zt=function(){function t(t,e){this.x=t,this.y=e}return t}(),Yt=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Xt=new Ht(0,0,0,0),$t=function(t){function e(e,n,i,r,o){var a=t.call(this)||this;return a._hovered=new Zt(0,0),a.storage=e,a.painter=n,a.painterRoot=r,a._pointerSize=o,i=i||new qt,a.proxy=null,a.setHandlerProxy(i),a._draggingMgr=new U(a),a}return p(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(m["each"](Yt,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=Qt(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(r=this.findHover(r.x,r.y),o=r.target);var a=this._hovered=i?new Zt(e,n):this.findHover(e,n),s=a.target,u=this.proxy;u.setCursor&&u.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new Zt(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){t=t||{};var i=t.target;if(!i||!i.silent){var r="on"+e,o=Ut(e,t,n);while(i)if(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,o.cancelBubble)break;o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"===typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){var i=this.storage.getDisplayList(),r=new Zt(t,e);if(Jt(i,r,t,e,n),this._pointerSize&&!r.target){for(var o=[],a=this._pointerSize,s=a/2,u=new Ht(t-s,e-s,a,a),l=i.length-1;l>=0;l--){var h=i[l];h===n||h.ignore||h.ignoreCoarsePointer||h.parent&&h.parent.ignoreCoarsePointer||(Xt.copy(h.getBoundingRect()),h.transform&&Xt.applyTransform(h.transform),Xt.intersect(u)&&o.push(h))}if(o.length)for(var c=4,f=Math.PI/12,d=2*Math.PI,p=0;p=0;o--){var a=t[o],s=void 0;if(a!==r&&!a.ignore&&(s=Kt(a,n,i))&&(!e.topTarget&&(e.topTarget=a),s!==Gt)){e.target=a;break}}}function Qt(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}m["each"](["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){$t.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=Qt(this,r,o);if("mouseup"===t&&a||(n=this.findHover(r,o),i=n.target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||R(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var te=$t,ee=32,ne=7;function ie(t){var e=0;while(t>=ee)e|=1&t,t>>=1;return t+e}function re(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){while(r=0)r++;return r-e}function oe(t,e,n){n--;while(e>>1,r(a,t[o])<0?u=o:s=o+1;var l=i-s;switch(l){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:while(l>0)t[s+l]=t[s+l-1],l--}t[s]=a}}function se(t,e,n,i,r,o){var a=0,s=0,u=1;if(o(t,e[n+r])>0){s=i-r;while(u0)a=u,u=1+(u<<1),u<=0&&(u=s);u>s&&(u=s),a+=r,u+=r}else{s=r+1;while(us&&(u=s);var l=a;a=r-u,u=r-l}a++;while(a>>1);o(t,e[n+h])>0?a=h+1:u=h}return u}function ue(t,e,n,i,r,o){var a=0,s=0,u=1;if(o(t,e[n+r])<0){s=r+1;while(us&&(u=s);var l=a;a=r-u,u=r-l}else{s=i-r;while(u=0)a=u,u=1+(u<<1),u<=0&&(u=s);u>s&&(u=s),a+=r,u+=r}a++;while(a>>1);o(t,e[n+h])<0?u=h:a=h+1}return u}function le(t,e){var n,i,r=ne,o=0,a=0;o=t.length;var s=[];function u(t,e){n[a]=t,i[a]=e,a+=1}function l(){while(a>1){var t=a-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]i[t+1])break;c(t)}}function h(){while(a>1){var t=a-2;t>0&&i[t-1]=ne||d>=ne);if(p)break;g<0&&(g=0),g+=2}if(r=g,r<1&&(r=1),1===i){for(u=0;u=0;u--)t[d+u]=t[f+u];if(0===i){v=!0;break}}if(t[c--]=s[h--],1===--a){v=!0;break}if(m=a-se(t[l],s,0,a,a-1,e),0!==m){for(c-=m,h-=m,a-=m,d=c+1,f=h+1,u=0;u=ne||m>=ne);if(v)break;p<0&&(p=0),p+=2}if(r=p,r<1&&(r=1),1===a){for(c-=i,l-=i,d=c+1,f=l+1,u=i-1;u>=0;u--)t[d+u]=t[f+u];t[c]=s[h]}else{if(0===a)throw new Error;for(f=c-(a-1),u=0;u=0;u--)t[d+u]=t[f+u];t[c]=s[h]}else for(f=c-(a-1),u=0;us&&(u=s),ae(t,n,n+u,n+o,e),o=u}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}var ce=1,fe=2,de=4,pe=!1;function ge(){pe||(pe=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function me(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var ve,ye=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=me}return t.prototype.traverse=function(t,e){for(var n=0;n0&&(l.__clipPaths=[]),isNaN(l.z)&&(ge(),l.z=0),isNaN(l.z2)&&(ge(),l.z2=0),isNaN(l.zlevel)&&(ge(),l.zlevel=0),this._displayList[this._displayListLen++]=l}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var f=t.getTextContent();f&&this._updateAndAddDisplayable(f,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),be=ye;ve=g["a"].hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)};var we=ve,_e={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},elasticOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-_e.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*_e.bounceIn(2*t):.5*_e.bounceOut(2*t-1)+.5}},xe=_e,Me=Math.pow,Se=Math.sqrt,Oe=1e-8,Ae=1e-4,Ie=Se(3),ke=1/3,Te=v(),Ce=v(),Ee=v();function De(t){return t>-Oe&&tOe||t<-Oe}function Re(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function je(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Pe(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),u=3*(e-t),l=t-r,h=s*s-3*a*u,c=s*u-9*a*l,f=u*u-3*s*l,d=0;if(De(h)&&De(c))if(De(s))o[0]=0;else{var p=-u/s;p>=0&&p<=1&&(o[d++]=p)}else{var g=c*c-4*h*f;if(De(g)){var m=c/h,v=(p=-s/a+m,-m/2);p>=0&&p<=1&&(o[d++]=p),v>=0&&v<=1&&(o[d++]=v)}else if(g>0){var y=Se(g),b=h*s+1.5*a*(-c+y),w=h*s+1.5*a*(-c-y);b=b<0?-Me(-b,ke):Me(b,ke),w=w<0?-Me(-w,ke):Me(w,ke);p=(-s-(b+w))/(3*a);p>=0&&p<=1&&(o[d++]=p)}else{var _=(2*h*s-3*a*c)/(2*Se(h*h*h)),x=Math.acos(_)/3,M=Se(h),S=Math.cos(x),O=(p=(-s-2*M*S)/(3*a),v=(-s+M*(S+Ie*Math.sin(x)))/(3*a),(-s+M*(S-Ie*Math.sin(x)))/(3*a));p>=0&&p<=1&&(o[d++]=p),v>=0&&v<=1&&(o[d++]=v),O>=0&&O<=1&&(o[d++]=O)}}return d}function Ne(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,u=0;if(De(a)){if(Le(o)){var l=-s/o;l>=0&&l<=1&&(r[u++]=l)}}else{var h=o*o-4*a*s;if(De(h))r[0]=-o/(2*a);else if(h>0){var c=Se(h),f=(l=(-o+c)/(2*a),(-o-c)/(2*a));l>=0&&l<=1&&(r[u++]=l),f>=0&&f<=1&&(r[u++]=f)}}return u}function Be(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,u=(i-n)*r+n,l=(s-a)*r+a,h=(u-s)*r+s,c=(h-l)*r+l;o[0]=t,o[1]=a,o[2]=l,o[3]=c,o[4]=c,o[5]=h,o[6]=u,o[7]=i}function ze(t,e,n,i,r,o,a,s,u,l,h){var c,f,d,p,g,m=.005,v=1/0;Te[0]=u,Te[1]=l;for(var y=0;y<1;y+=.05)Ce[0]=Re(t,n,r,a,y),Ce[1]=Re(e,i,o,s,y),p=P(Te,Ce),p=0&&p=0&&l<=1&&(r[u++]=l)}}else{var h=a*a-4*o*s;if(De(h)){l=-a/(2*o);l>=0&&l<=1&&(r[u++]=l)}else if(h>0){var c=Se(h),f=(l=(-a+c)/(2*o),(-a-c)/(2*o));l>=0&&l<=1&&(r[u++]=l),f>=0&&f<=1&&(r[u++]=f)}}return u}function Ue(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function We(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function qe(t,e,n,i,r,o,a,s,u){var l,h=.005,c=1/0;Te[0]=a,Te[1]=s;for(var f=0;f<1;f+=.05){Ce[0]=Ve(t,n,r,f),Ce[1]=Ve(e,i,o,f);var d=P(Te,Ce);d=0&&d=1?1:Pe(0,i,o,1,t,s)&&Re(0,r,a,1,s[0])}}}var $e=function(){function t(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||m["noop"],this.ondestroy=t.ondestroy||m["noop"],this.onrestart=t.onrestart||m["noop"],t.easing&&this.setEasing(t.easing)}return t.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),!this._paused){var n=this._life,i=t-this._startTime-this._pausedTime,r=i/n;r<0&&(r=0),r=Math.min(r,1);var o=this.easingFunc,a=o?o(r):r;if(this.onframe(a),1===r){if(!this.loop)return!0;var s=i%n;this._startTime=t-s,this._pausedTime=0,this.onrestart()}return!1}this._pausedTime+=e},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Object(m["isFunction"])(t)?t:xe[t]||Xe(t)},t}(),Ke=$e,Je=n("41ef"),Qe=n("7a29"),tn=Array.prototype.slice;function en(t,e,n){return(e-t)*n+t}function nn(t,e,n,i){for(var r=e.length,o=0;oi?e:t,o=Math.min(n,i),a=r[o-1]||{color:[0,0,0,0],offset:0},s=o;sa;if(s)i.length=a;else for(var u=o;u=1},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e,n){this._needsSort=!0;var i=this.keyframes,r=i.length,o=!1,a=yn,s=e;if(Object(m["isArrayLike"])(e)){var u=cn(e);a=u,(1===u&&!Object(m["isNumber"])(e[0])||2===u&&!Object(m["isNumber"])(e[0][0]))&&(o=!0)}else if(Object(m["isNumber"])(e)&&!Object(m["eqNaN"])(e))a=fn;else if(Object(m["isString"])(e))if(isNaN(+e)){var l=Je["parse"](e);l&&(s=l,a=gn)}else a=fn;else if(Object(m["isGradientObject"])(e)){var h=Object(m["extend"])({},s);h.colorStops=Object(m["map"])(e.colorStops,(function(t){return{offset:t.offset,color:Je["parse"](t.color)}})),Object(Qe["m"])(e)?a=mn:Object(Qe["o"])(e)&&(a=vn),s=h}0===r?this.valType=a:a===this.valType&&a!==yn||(o=!0),this.discrete=this.discrete||o;var c={time:t,value:s,rawValue:e,percent:0};return n&&(c.easing=n,c.easingFunc=Object(m["isFunction"])(n)?n:xe[n]||Xe(n)),i.push(c),c},t.prototype.prepare=function(t,e){var n=this.keyframes;this._needsSort&&n.sort((function(t,e){return t.time-e.time}));for(var i=this.valType,r=n.length,o=n[r-1],a=this.discrete,s=wn(i),u=bn(i),l=0;l=0;n--)if(u[n].percent<=e)break;n=d(n,l-2)}else{for(n=f;ne)break;n=d(n-1,l-2)}r=u[n+1],i=u[n]}if(i&&r){this._lastFr=n,this._lastFrP=e;var g=r.percent-i.percent,v=0===g?1:d((e-i.percent)/g,1);r.easingFunc&&(v=r.easingFunc(v));var y=o?this._additiveValue:c?_n:t[h];if(!wn(s)&&!c||y||(y=this._additiveValue=[]),this.discrete)t[h]=v<1?i.rawValue:r.rawValue;else if(wn(s))s===dn?nn(y,i[a],r[a],v):rn(y,i[a],r[a],v);else if(bn(s)){var b=i[a],w=r[a],_=s===mn;t[h]={type:_?"linear":"radial",x:en(b.x,w.x,v),y:en(b.y,w.y,v),colorStops:Object(m["map"])(b.colorStops,(function(t,e){var n=w.colorStops[e];return{offset:en(t.offset,n.offset,v),color:hn(nn([],t.color,n.color,v))}})),global:w.global},_?(t[h].x2=en(b.x2,w.x2,v),t[h].y2=en(b.y2,w.y2,v)):t[h].r=en(b.r,w.r,v)}else if(c)nn(y,i[a],r[a],v),o||(t[h]=hn(y));else{var x=en(i[a],r[a],v);o?this._additiveValue=x:t[h]=x}o&&this._addToTarget(t)}}},t.prototype._addToTarget=function(t){var e=this.valType,n=this.propName,i=this._additiveValue;e===fn?t[n]=t[n]+i:e===gn?(Je["parse"](t[n],_n),on(_n,_n,i,1),t[n]=hn(_n)):e===dn?on(t[n],t[n],i,1):e===pn&&an(t[n],t[n],i,1)},t}(),Mn=function(){function t(t,e,n,i){this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&i?Object(m["logError"])("Can' use additive animation on looped animation."):(this._additiveAnimators=i,this._allowDiscrete=n)}return t.prototype.getMaxTime=function(){return this._maxTime},t.prototype.getDelay=function(){return this._delay},t.prototype.getLoop=function(){return this._loop},t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e,n){return this.whenWithKeys(t,e,Object(m["keys"])(e),n)},t.prototype.whenWithKeys=function(t,e,n,i){for(var r=this._tracks,o=0;o0&&s.addKeyframe(0,ln(u),i),this._trackKeys.push(a)}s.addKeyframe(t,ln(e[a]),i)}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,n=0;n0)){this._started=1;for(var e=this,n=[],i=this._maxTime||0,r=0;r1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(this._maxTime,r.getAdditiveTrack())}}}},t}(),Sn=Mn;function On(){return(new Date).getTime()}var An=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n}return p(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._head=n,n?n.prev=e:this._tail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){var e=On()-this._pausedTime,n=e-this._time,i=this._head;while(i){var r=i.next,o=i.step(e,n);o?(i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;function e(){t._running&&(we(e),!t._paused&&t.update())}this._running=!0,we(e)},e.prototype.start=function(){this._running||(this._time=On(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=On(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=On()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){var t=this._head;while(t){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._head=this._tail=null},e.prototype.isFinished=function(){return null==this._head},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new Sn(t,e.loop);return this.addAnimator(n),n},e}(q),In=An,kn=300,Tn=g["a"].domSupported,Cn=function(){var t=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},i=m["map"](t,(function(t){var e=t.replace("mouse","pointer");return n.hasOwnProperty(e)?e:t}));return{mouse:t,touch:e,pointer:i}}(),En={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Dn=!1;function Ln(t){var e=t.pointerType;return"pen"===e||"touch"===e}function Rn(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}function jn(t){t&&(t.zrByTouch=!0)}function Pn(t,e){return ft(t.dom,new Bn(t,e),!0)}function Nn(t,e){var n=e,i=!1;while(n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot))n=n.parentNode;return i}var Bn=function(){function t(t,e){this.stopPropagation=m["noop"],this.stopImmediatePropagation=m["noop"],this.preventDefault=m["noop"],this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY}return t}(),zn={mousedown:function(t){t=ft(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=ft(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=ft(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){t=ft(this.dom,t);var e=t.toElement||t.relatedTarget;Nn(this,e)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Dn=!0,t=ft(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Dn||(t=ft(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){t=ft(this.dom,t),jn(t),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),zn.mousemove.call(this,t),zn.mousedown.call(this,t)},touchmove:function(t){t=ft(this.dom,t),jn(t),this.handler.processGesture(t,"change"),zn.mousemove.call(this,t)},touchend:function(t){t=ft(this.dom,t),jn(t),this.handler.processGesture(t,"end"),zn.mouseup.call(this,t),+new Date-+this.__lastTouchMomentei||t<-ei}var ii=[],ri=[],oi=xt(),ai=Math.abs,si=function(){function t(){}return t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return ni(this.rotation)||ni(this.x)||ni(this.y)||ni(this.scaleX-1)||ni(this.scaleY-1)||ni(this.skewX)||ni(this.skewY)},t.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),n=this.transform;e||t?(n=n||xt(),e?this.getLocalTransform(n):ti(n),t&&(e?Ot(n,t,n):St(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)):n&&ti(n)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(ii);var n=ii[0]<0?-1:1,i=ii[1]<0?-1:1,r=((ii[0]-n)*e+n)/ii[0]||0,o=((ii[1]-i)*e+i)/ii[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||xt(),Tt(this.invTransform,t)},t.prototype.getComputedTransform=function(){var t=this,e=[];while(t)e.push(t),t=t.parent;while(t=e.pop())t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),r=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(r),e=Math.sqrt(e),this.skewX=r,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ot(ri,t.invTransform,e),e=ri);var n=this.originX,i=this.originY;(n||i)&&(oi[4]=n,oi[5]=i,Ot(ri,e,oi),ri[4]-=n,ri[5]-=i,e=ri),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&z(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&z(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&ai(t[0]-1)>1e-10&&ai(t[3]-1)>1e-10?Math.sqrt(ai(t[0]*t[3]-t[2]*t[1])):1},t.prototype.copyTransform=function(t){li(this,t)},t.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.anchorX,s=t.anchorY,u=t.rotation||0,l=t.x,h=t.y,c=t.skewX?Math.tan(t.skewX):0,f=t.skewY?Math.tan(-t.skewY):0;if(n||i||a||s){var d=n+a,p=i+s;e[4]=-d*r-c*p*o,e[5]=-p*o-f*d*r}else e[4]=e[5]=0;return e[0]=r,e[3]=o,e[1]=f*r,e[2]=c*o,u&&It(e,e,u),e[4]+=n+l,e[5]+=i+h,e},t.initDefaultProps=function(){var e=t.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),t}(),ui=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function li(t,e){for(var n=0;n=0?parseFloat(t)/100*e:parseFloat(t):t}function _i(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,u=n.x,l=n.y,h="left",c="top";if(i instanceof Array)u+=wi(i[0],n.width),l+=wi(i[1],n.height),h=null,c=null;else switch(i){case"left":u-=r,l+=s,h="right",c="middle";break;case"right":u+=r+a,l+=s,c="middle";break;case"top":u+=a/2,l-=r,h="center",c="bottom";break;case"bottom":u+=a/2,l+=o+r,h="center";break;case"inside":u+=a/2,l+=s,h="center",c="middle";break;case"insideLeft":u+=r,l+=s,c="middle";break;case"insideRight":u+=a-r,l+=s,h="right",c="middle";break;case"insideTop":u+=a/2,l+=r,h="center";break;case"insideBottom":u+=a/2,l+=o-r,h="center",c="bottom";break;case"insideTopLeft":u+=r,l+=r;break;case"insideTopRight":u+=a-r,l+=r,h="right";break;case"insideBottomLeft":u+=r,l+=o-r,c="bottom";break;case"insideBottomRight":u+=a-r,l+=o-r,h="right",c="bottom";break}return t=t||{},t.x=u,t.y=l,t.align=h,t.verticalAlign=c,t}var xi="__zr_normal__",Mi=ui.concat(["ignore"]),Si=Object(m["reduce"])(ui,(function(t,e){return t[e]=!0,t}),{ignore:!1}),Oi={},Ai=new Ht(0,0,0,0),Ii=function(){function t(t){this.id=Object(m["guid"])(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.innerTransformable,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var u=!1;if(r.copyTransform(e),null!=n.position){var l=Ai;n.layoutRect?l.copy(n.layoutRect):l.copy(this.getBoundingRect()),i||l.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Oi,n,l):_i(Oi,n,l),r.x=Oi.x,r.y=Oi.y,o=Oi.align,a=Oi.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,f=void 0;"center"===h?(c=.5*l.width,f=.5*l.height):(c=wi(h[0],l.width),f=wi(h[1],l.height)),u=!0,r.originX=-r.x+c+(i?0:l.x),r.originY=-r.y+f+(i?0:l.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],u||(r.originX=-d[0],r.originY=-d[1]));var p=null==n.inside?"string"===typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,v=void 0,y=void 0;p&&this.canBeInsideText()?(m=n.insideFill,v=n.insideStroke,null!=m&&"auto"!==m||(m=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(m),y=!0)):(m=n.outsideFill,v=n.outsideStroke,null!=m&&"auto"!==m||(m=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(m),y=!0)),m=m||"#000",m===g.fill&&v===g.stroke&&y===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=m,g.stroke=v,g.autoStroke=y,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),e.__dirty|=ce,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Jn:Kn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"===typeof e&&Object(Je["parse"])(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,Object(Je["stringify"])(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},Object(m["extend"])(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"===typeof t)this.attrKV(t,e);else if(Object(m["isObject"])(t))for(var n=t,i=Object(m["keys"])(n),r=0;r0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(xi,!1,t)},t.prototype.useState=function(t,e,n,i){var r=t===xi,o=this.hasState();if(o||!r){var a=this.currentStates,s=this.stateTransition;if(!(Object(m["indexOf"])(a,t)>=0)||!e&&1!==a.length){var u;if(this.stateProxy&&!r&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),u||r){r||this.saveCurrentToNormalState(u);var l=!!(u&&u.hoverLayer||i);l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,e,!n&&!this.__inHover&&s&&s.duration>0,s);var h=this._textContent,c=this._textGuide;return h&&h.useState(t,e,n,l),c&&c.useState(t,e,n,l),r?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~ce),u}Object(m["logError"])("State "+t+" not exists.")}}},t.prototype.useStates=function(t,e,n){if(t.length){var i=[],r=this.currentStates,o=t.length,a=o===r.length;if(a)for(var s=0;s0,d);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,e,c),g&&g.useStates(t,e,c),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~ce)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=Object(m["indexOf"])(i,t),o=Object(m["indexOf"])(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var f=0;f0||r.force&&!a.length){var O=void 0,A=void 0,I=void 0;if(s){A={},f&&(O={});for(_=0;_=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,e){var n=m["indexOf"](this._children,t);return n>=0&&this.replaceAt(e,n),this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=m["indexOf"](n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e0){if(t<=r)return a;if(t>=o)return s}else{if(t>=r)return a;if(t<=o)return s}else{if(t===r)return a;if(t===o)return s}return(t-r)/u*l+a}function Qi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%";break}return m["isString"](t)?Ki(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function tr(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),$i),t=(+t).toFixed(e),n?t:+t}function er(t){return t.sort((function(t,e){return t-e})),t}function nr(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;n<15;n++,e*=10)if(Math.round(t*e)/e===t)return n;return ir(t)}function ir(t){var e=t.toString().toLowerCase(),n=e.indexOf("e"),i=n>0?+e.slice(n+1):0,r=n>0?n:e.length,o=e.indexOf("."),a=o<0?0:r-1-o;return Math.max(0,a-i)}function rr(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function or(t,e,n){if(!t[e])return 0;var i=ar(t,n);return i[e]||0}function ar(t,e){var n=m["reduce"](t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===n)return[];var i=Math.pow(10,e),r=m["map"](t,(function(t){return(isNaN(t)?0:t)/n*i*100})),o=100*i,a=m["map"](r,(function(t){return Math.floor(t)})),s=m["reduce"](a,(function(t,e){return t+e}),0),u=m["map"](r,(function(t,e){return t-a[e]}));while(sl&&(l=u[c],h=c);++a[h],u[h]=0,++s}return m["map"](a,(function(t){return t/i}))}function sr(t,e){var n=Math.max(nr(t),nr(e)),i=t+e;return n>$i?i:tr(i,n)}var ur=9007199254740991;function lr(t){var e=2*Math.PI;return(t%e+e)%e}function hr(t){return t>-Xi&&t=10&&e++,e}function gr(t,e){var n,i=pr(t),r=Math.pow(10,i),o=t/r;return n=e?o<1.5?1:o<2.5?2:o<4?3:o<7?5:10:o<1?1:o<2?2:o<3?3:o<5?5:10,t=n*r,i>=-20?+t.toFixed(i<0?-i:0):t}function mr(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function vr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i=0||r&&m["indexOf"](r,s)<0)){var u=n.getShallow(s,e);null!=u&&(o[t[a][0]]=u)}}return o}}var xo=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Mo=_o(xo),So=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Mo(this,t,e)},t}(),Oo=new ci["a"](50);function Ao(t){if("string"===typeof t){var e=Oo.get(t);return e&&e.image}return t}function Io(t,e,n,i,r){if(t){if("string"===typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Oo.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?(e=o.image,!To(e)&&o.pending.push(a)):(e=fi["d"].loadImage(t,ko,ko),e.__zrImageSrc=t,Oo.put(t,e.__cachedImgObj={image:e,pending:[a]})),e}return t}return e}function ko(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=a;u++)s-=a;var l=pi(n,e);return l>s&&(n="",l=0),s=t-l,r.ellipsis=n,r.ellipsisWidth=l,r.contentWidth=s,r.containerWidth=t,r}function Lo(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=pi(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?Ro(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;t=t.substr(0,s),o=pi(t,i)}return""===t&&(t=e.placeholder),t}function Ro(t,e,n,i){for(var r=0,o=0,a=t.length;od&&h){var p=Math.floor(d/u);n=n.slice(0,p)}if(t&&a&&null!=c)for(var g=Do(c,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;vu&&Fo(n,t.substring(u,l),e,s),Fo(n,i[2],e,s,i[1]),u=Co.lastIndex}uo){x>0?(b.tokens=b.tokens.slice(0,x),v(b,_,w),n.lines=n.lines.slice(0,y+1)):n.lines=n.lines.slice(0,y);break t}var T=S.width,C=null==T||"auto"===T;if("string"===typeof T&&"%"===T.charAt(T.length-1))M.percentWidth=T,h.push(M),M.contentWidth=pi(M.text,I);else{if(C){var E=S.backgroundColor,D=E&&E.image;D&&(D=Ao(D),To(D)&&(M.width=Math.max(M.width,D.width*k/D.height)))}var L=p&&null!=r?r-_:null;null!=L&&L0&&p+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=p}else{var g=Uo(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var m=0;m=32&&e<=591||e>=880&&e<=4351||e>=4608&&e<=5119||e>=7680&&e<=8303}var Ho=Object(m["reduce"])(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function Go(t){return!Vo(t)||!!Ho[t]}function Uo(t,e,n,i,r){for(var o=[],a=[],s="",u="",l=0,h=0,c=0;cn:r+h+d>n)?h?(s||u)&&(p?(s||(s=u,u="",l=0,h=l),o.push(s),a.push(h-l),u+=f,l+=d,s="",h=l):(u&&(s+=u,u="",l=0),o.push(s),a.push(h),s=f,h=d)):p?(o.push(u),a.push(l),u=f,l=d):(o.push(f),a.push(d)):(h+=d,p?(u+=f,l+=d):(u&&(s+=u,u="",l=0),s+=f))}else u&&(s+=u,h+=l),o.push(s),a.push(h),s="",u="",l=0,h=0}return o.length||s||(s=t,u="",l=0),u&&(s+=u),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var Wo="__zr_style_"+Math.round(10*Math.random()),qo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Zo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};qo[Wo]=!0;var Yo=["z","z2","invisible"],Xo=["invisible"],$o=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype._init=function(e){for(var n=Object(m["keys"])(e),i=0;i1e-4)return s[0]=t-n,s[1]=e-i,u[0]=t+n,void(u[1]=e+i);if(aa[0]=ra(r)*n+t,aa[1]=ia(r)*i+e,sa[0]=ra(o)*n+t,sa[1]=ia(o)*i+e,l(s,aa,sa),h(u,aa,sa),r%=oa,r<0&&(r+=oa),o%=oa,o<0&&(o+=oa),r>o&&!a?o+=oa:rr&&(ua[0]=ra(d)*n+t,ua[1]=ia(d)*i+e,l(s,ua,s),h(u,ua,u))}var ma={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},va=[],ya=[],ba=[],wa=[],_a=[],xa=[],Ma=Math.min,Sa=Math.max,Oa=Math.cos,Aa=Math.sin,Ia=Math.abs,ka=Math.PI,Ta=2*ka,Ca="undefined"!==typeof Float32Array,Ea=[];function Da(t){var e=Math.round(t/ka*1e8)/1e8;return e%2*ka}function La(t,e){var n=Da(t[0]);n<0&&(n+=Ta);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Ta?r=n+Ta:e&&n-r>=Ta?r=n-Ta:!e&&n>r?r=n+(Ta-Da(n-r)):e&&n0&&(this._ux=Ia(n/Xn/t)||0,this._uy=Ia(n/Xn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(ma.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=Ia(t-this._xi),i=Ia(e-this._yi),r=n>this._ux||i>this._uy;if(this.addData(ma.L,t,e),this._ctx&&r&&this._ctx.lineTo(t,e),r)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this._drawPendingPt(),this.addData(ma.C,t,e,n,i,r,o),this._ctx&&this._ctx.bezierCurveTo(t,e,n,i,r,o),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this._drawPendingPt(),this.addData(ma.Q,t,e,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,e,n,i),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){this._drawPendingPt(),Ea[0]=i,Ea[1]=r,La(Ea,o),i=Ea[0],r=Ea[1];var a=r-i;return this.addData(ma.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=Oa(r)*n+t,this._yi=Aa(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,e,n,i),this.addData(ma.R,t,e,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(ma.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&t.closePath(),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!Ca||(this.data=new Float32Array(e));for(var n=0;nl.length&&(this._expandData(),l=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){ba[0]=ba[1]=_a[0]=_a[1]=Number.MAX_VALUE,wa[0]=wa[1]=xa[0]=xa[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;tn||Ia(y)>i||c===e-1)&&(p=Math.sqrt(v*v+y*y),r=g,o=m);break;case ma.C:var b=t[c++],w=t[c++],_=(g=t[c++],m=t[c++],t[c++]),x=t[c++];p=Fe(r,o,b,w,g,m,_,x,10),r=_,o=x;break;case ma.Q:b=t[c++],w=t[c++],g=t[c++],m=t[c++];p=Ze(r,o,b,w,g,m,10),r=g,o=m;break;case ma.A:var M=t[c++],S=t[c++],O=t[c++],A=t[c++],I=t[c++],k=t[c++],T=k+I;c+=1;t[c++];d&&(a=Oa(I)*O+M,s=Aa(I)*A+S),p=Sa(O,A)*Ma(Ta,Math.abs(k)),r=Oa(T)*O+M,o=Aa(T)*A+S;break;case ma.R:a=r=t[c++],s=o=t[c++];var C=t[c++],E=t[c++];p=2*C+2*E;break;case ma.Z:v=a-r,y=s-o;p=Math.sqrt(v*v+y*y),r=a,o=s;break}p>=0&&(u[h++]=p,l+=p)}return this._pathLen=l,l},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,u,l,h,c,f,d=this.data,p=this._ux,g=this._uy,m=this._len,v=e<1,y=0,b=0,w=0;if(!v||(this._pathSegLen||this._calculateLength(),u=this._pathSegLen,l=this._pathLen,h=e*l,h))t:for(var _=0;_0&&(t.lineTo(c,f),w=0),x){case ma.M:n=r=d[_++],i=o=d[_++],t.moveTo(r,o);break;case ma.L:a=d[_++],s=d[_++];var S=Ia(a-r),O=Ia(s-o);if(S>p||O>g){if(v){var A=u[b++];if(y+A>h){var I=(h-y)/A;t.lineTo(r*(1-I)+a*I,o*(1-I)+s*I);break t}y+=A}t.lineTo(a,s),r=a,o=s,w=0}else{var k=S*S+O*O;k>w&&(c=a,f=s,w=k)}break;case ma.C:var T=d[_++],C=d[_++],E=d[_++],D=d[_++],L=d[_++],R=d[_++];if(v){A=u[b++];if(y+A>h){I=(h-y)/A;Be(r,T,E,L,I,va),Be(o,C,D,R,I,ya),t.bezierCurveTo(va[1],ya[1],va[2],ya[2],va[3],ya[3]);break t}y+=A}t.bezierCurveTo(T,C,E,D,L,R),r=L,o=R;break;case ma.Q:T=d[_++],C=d[_++],E=d[_++],D=d[_++];if(v){A=u[b++];if(y+A>h){I=(h-y)/A;We(r,T,E,I,va),We(o,C,D,I,ya),t.quadraticCurveTo(va[1],ya[1],va[2],ya[2]);break t}y+=A}t.quadraticCurveTo(T,C,E,D),r=E,o=D;break;case ma.A:var j=d[_++],P=d[_++],N=d[_++],B=d[_++],z=d[_++],F=d[_++],V=d[_++],H=!d[_++],G=N>B?N:B,U=Ia(N-B)>.001,W=z+F,q=!1;if(v){A=u[b++];y+A>h&&(W=z+F*(h-y)/A,q=!0),y+=A}if(U&&t.ellipse?t.ellipse(j,P,N,B,V,z,W,H):t.arc(j,P,G,z,W,H),q)break t;M&&(n=Oa(z)*N+j,i=Aa(z)*B+P),r=Oa(W)*N+j,o=Aa(W)*B+P;break;case ma.R:n=r=d[_],i=o=d[_+1],a=d[_++],s=d[_++];var Z=d[_++],Y=d[_++];if(v){A=u[b++];if(y+A>h){var X=h-y;t.moveTo(a,s),t.lineTo(a+Ma(X,Z),s),X-=Z,X>0&&t.lineTo(a+Z,s+Ma(X,Y)),X-=Y,X>0&&t.lineTo(a+Sa(Z-X,0),s+Y),X-=Z,X>0&&t.lineTo(a,s+Sa(Y-X,0));break t}y+=A}t.rect(a,s,Z,Y);break;case ma.Z:if(v){A=u[b++];if(y+A>h){I=(h-y)/A;t.lineTo(r*(1-I)+n*I,o*(1-I)+i*I);break t}y+=A}t.closePath(),r=n,o=i}}},t.prototype.clone=function(){var e=new t,n=this.data;return e.data=n.slice?n.slice():Array.prototype.slice.call(n),e._len=this._len,e},t.CMD=ma,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}(),ja=Ra;function Pa(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,u=0,l=t;if(a>e+s&&a>i+s||at+s&&o>n+s||oe+c&&h>i+c&&h>o+c&&h>s+c||ht+c&&l>n+c&&l>r+c&&l>a+c||le+l&&u>i+l&&u>o+l||ut+l&&s>n+l&&s>r+l||sn||h+lr&&(r+=Va);var f=Math.atan2(u,s);return f<0&&(f+=Va),f>=i&&f<=r||f+Va>=i&&f+Va<=r}function Ga(t,e,n,i,r,o){if(o>e&&o>i||or?s:0}var Ua=ja.CMD,Wa=2*Math.PI,qa=1e-4;function Za(t,e){return Math.abs(t-e)e&&l>i&&l>o&&l>s||l1&&$a(),d=Re(e,i,o,s,Xa[0]),f>1&&(p=Re(e,i,o,s,Xa[1]))),2===f?me&&s>i&&s>o||s=0&&l<=1){for(var h=0,c=Ve(e,i,o,l),f=0;fn||s<-n)return 0;var u=Math.sqrt(n*n-s*s);Ya[0]=-u,Ya[1]=u;var l=Math.abs(i-r);if(l<1e-4)return 0;if(l>=Wa-1e-4){i=0,r=Wa;var h=o?1:-1;return a>=Ya[0]+t&&a<=Ya[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Wa,r+=Wa);for(var f=0,d=0;d<2;d++){var p=Ya[d];if(p+t>a){var g=Math.atan2(s,p);h=o?1:-1;g<0&&(g=Wa+g),(g>=i&&g<=r||g+Wa>=i&&g+Wa<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),f+=h)}}return f}function ts(t,e,n,i,r){for(var o,a,s=t.data,u=t.len(),l=0,h=0,c=0,f=0,d=0,p=0;p1&&(n||(l+=Ga(h,c,f,d,i,r))),m&&(h=s[p],c=s[p+1],f=h,d=c),g){case Ua.M:f=s[p++],d=s[p++],h=f,c=d;break;case Ua.L:if(n){if(Pa(h,c,s[p],s[p+1],e,i,r))return!0}else l+=Ga(h,c,s[p],s[p+1],i,r)||0;h=s[p++],c=s[p++];break;case Ua.C:if(n){if(Na(h,c,s[p++],s[p++],s[p++],s[p++],s[p],s[p+1],e,i,r))return!0}else l+=Ka(h,c,s[p++],s[p++],s[p++],s[p++],s[p],s[p+1],i,r)||0;h=s[p++],c=s[p++];break;case Ua.Q:if(n){if(Ba(h,c,s[p++],s[p++],s[p],s[p+1],e,i,r))return!0}else l+=Ja(h,c,s[p++],s[p++],s[p],s[p+1],i,r)||0;h=s[p++],c=s[p++];break;case Ua.A:var v=s[p++],y=s[p++],b=s[p++],w=s[p++],_=s[p++],x=s[p++];p+=1;var M=!!(1-s[p++]);o=Math.cos(_)*b+v,a=Math.sin(_)*w+y,m?(f=o,d=a):l+=Ga(h,c,o,a,i,r);var S=(i-v)*w/b+v;if(n){if(Ha(v,y,w,_,_+x,M,e,S,r))return!0}else l+=Qa(v,y,w,_,_+x,M,S,r);h=Math.cos(_+x)*b+v,c=Math.sin(_+x)*w+y;break;case Ua.R:f=h=s[p++],d=c=s[p++];var O=s[p++],A=s[p++];if(o=f+O,a=d+A,n){if(Pa(f,d,o,d,e,i,r)||Pa(o,d,o,a,e,i,r)||Pa(o,a,f,a,e,i,r)||Pa(f,a,f,d,e,i,r))return!0}else l+=Ga(o,d,o,a,i,r),l+=Ga(f,a,f,d,i,r);break;case Ua.Z:if(n){if(Pa(h,c,f,d,e,i,r))return!0}else l+=Ga(h,c,f,d,i,r);h=f,c=d;break}}return n||Za(c,d)||(l+=Ga(h,c,f,d,i,r)||0),0!==l}function es(t,e,n){return ts(t,0,!1,e,n)}function ns(t,e,n,i){return ts(t,e,!0,n,i)}var is=Object(m["defaults"])({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},qo),rs={style:Object(m["defaults"])({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Zo.style)},os=ui.concat(["invisible","culling","z","z2","zlevel","parent"]),as=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s.5?Kn:e>.2?Qn:Jn}if(t)return Jn}return Kn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(Object(m["isString"])(e)){var n=this.__zr,i=!(!n||!n.isDarkMode()),r=Object(Je["lum"])(t,0)<$n;if(i===r)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~de},e.prototype.getUpdatedPathProxy=function(t){return!this.path&&this.createPathProxy(),this.path.beginPath(),this.buildPath(this.path,this.shape,t),this.path},e.prototype.createPathProxy=function(){this.path=new ja(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},e.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var r=this.path;(i||this.__dirty&de)&&(r.beginPath(),this.buildPath(r,this.shape,!1),this.pathUpdated()),t=r.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){o.copy(t);var a=e.strokeNoScale?this.getLineScale():1,s=e.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;s=Math.max(s,null==u?4:u)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),ns(o,a/s,t,e)))return!0}if(this.hasFill())return es(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=de,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"===typeof t?n[t]=e:Object(m["extend"])(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&de)},e.prototype.createStyle=function(t){return Object(m["createObject"])(is,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=Object(m["extend"])({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,u=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=Object(m["extend"])({},i.shape),Object(m["extend"])(s,n.shape)):(s=Object(m["extend"])({},r?this.shape:i.shape),Object(m["extend"])(s,n.shape)):u&&(s=i.shape),s)if(o){this.shape=Object(m["extend"])({},this.shape);for(var l={},h=Object(m["keys"])(s),c=0;c0},e.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},e.prototype.createStyle=function(t){return Object(m["createObject"])(us,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=mi(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=function(){var t=e.prototype;t.dirtyRectTolerance=10}(),e}(ta);ls.prototype.type="tspan";var hs=ls,cs=Object(m["defaults"])({x:0,y:0},qo),fs={style:Object(m["defaults"])({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Zo.style)};function ds(t){return!!(t&&"string"!==typeof t&&t.width&&t.height)}var ps=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.createStyle=function(t){return Object(m["createObject"])(cs,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i=ds(e.image)?e.image:this.__image;if(!i)return 0;var r="width"===t?"height":"width",o=e[r];return null==o?i[t]:i[t]/i[r]*o},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return fs},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Ht(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(ta);ps.prototype.type="image";var gs=ps;function ms(t,e){var n,i,r,o,a,s=e.x,u=e.y,l=e.width,h=e.height,c=e.r;l<0&&(s+=l,l=-l),h<0&&(u+=h,h=-h),"number"===typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>l&&(a=n+i,n*=l/a,i*=l/a),r+o>l&&(a=r+o,r*=l/a,o*=l/a),i+r>h&&(a=i+r,i*=h/a,r*=h/a),n+o>h&&(a=n+o,n*=h/a,o*=h/a),t.moveTo(s+n,u),t.lineTo(s+l-i,u),0!==i&&t.arc(s+l-i,u+i,i,-Math.PI/2,0),t.lineTo(s+l,u+h-r),0!==r&&t.arc(s+l-r,u+h-r,r,0,Math.PI/2),t.lineTo(s+o,u+h),0!==o&&t.arc(s+o,u+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,u+n),0!==n&&t.arc(s+n,u+n,n,Math.PI,1.5*Math.PI)}var vs=Math.round;function ys(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(vs(2*i)===vs(2*r)&&(t.x1=t.x2=ws(i,s,!0)),vs(2*o)===vs(2*a)&&(t.y1=t.y2=ws(o,s,!0)),t):t}}function bs(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=ws(i,s,!0),t.y=ws(r,s,!0),t.width=Math.max(ws(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(ws(r+a,s,!1)-t.y,0===a?0:1),t):t}}function ws(t,e,n){if(!e)return t;var i=vs(2*t);return(i+vs(e))%2===0?i/2:(i+(n?1:-1))/2}var _s=function(){function t(){this.x=0,this.y=0,this.width=0,this.height=0}return t}(),xs={},Ms=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.getDefaultShape=function(){return new _s},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=bs(xs,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?ms(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(ss);Ms.prototype.type="rect";var Ss=Ms,Os={fill:"#000"},As=2,Is={style:Object(m["defaults"])({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},Zo.style)},ks=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Os,n.attr(e),n}return p(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;e0,A=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),I=r.calculatedLineHeight,k=0;k=0&&(k=w[I],"right"===k.align))this._placeToken(k,t,x,g,A,"right",v),M-=k.width,A-=k.width,I--;O+=(i-(O-p)-(m-A)-M)/2;while(S<=I)k=w[S],this._placeToken(k,t,x,g,O+k.width/2,"center",v),O+=k.width,S++;g+=x}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var u=t.verticalAlign,l=i+n/2;"top"===u?l=i+t.height/2:"bottom"===u&&(l=i+n-t.height/2);var h=!t.isLineHolder&&Vs(s);h&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,l-t.height/2,t.width,t.height);var c=!!s.backgroundColor,f=t.textPadding;f&&(r=zs(r,o,f),l-=t.height/2-f[0]-t.innerHeight/2);var d=this._getOrCreateChild(hs),p=d.createStyle();d.useStyle(p);var g=this._defaultStyle,v=!1,y=0,b=Bs("fill"in s?s.fill:"fill"in e?e.fill:(v=!0,g.fill)),w=Ns("stroke"in s?s.stroke:"stroke"in e?e.stroke:c||a||g.autoStroke&&!v?null:(y=As,g.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;p.text=t.text,p.x=r,p.y=l,_&&(p.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,p.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",p.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,p.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),p.textAlign=o,p.textBaseline="middle",p.font=t.font||fi["a"],p.opacity=Object(m["retrieve3"])(s.opacity,e.opacity,1),Ls(p,s),w&&(p.lineWidth=Object(m["retrieve3"])(s.lineWidth,e.lineWidth,y),p.lineDash=Object(m["retrieve2"])(s.lineDash,e.lineDash),p.lineDashOffset=e.lineDashOffset||0,p.stroke=w),b&&(p.fill=b);var x=t.contentWidth,M=t.contentHeight;d.setBoundingRect(new Ht(vi(p.x,x,p.textAlign),yi(p.y,M,p.textBaseline),x,M))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,u=t.backgroundColor,l=t.borderWidth,h=t.borderColor,c=u&&u.image,f=u&&!c,d=t.borderRadius,p=this;if(f||t.lineHeight||l&&h){a=this._getOrCreateChild(Ss),a.useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(f){var v=a.style;v.fill=u||null,v.fillOpacity=Object(m["retrieve2"])(t.fillOpacity,1)}else if(c){s=this._getOrCreateChild(gs),s.onload=function(){p.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}if(l&&h){v=a.style;v.lineWidth=l,v.stroke=h,v.strokeOpacity=Object(m["retrieve2"])(t.strokeOpacity,1),v.lineDash=t.borderDash,v.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(v.strokeFirst=!0,v.lineWidth*=2)}var b=(a||s).style;b.shadowBlur=t.shadowBlur||0,b.shadowColor=t.shadowColor||"transparent",b.shadowOffsetX=t.shadowOffsetX||0,b.shadowOffsetY=t.shadowOffsetY||0,b.opacity=Object(m["retrieve3"])(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";return Rs(t)&&(e=[t.fontStyle,t.fontWeight,Ds(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),e&&Object(m["trim"])(e)||t.textFont||t.font},e}(ta),Ts={left:!0,right:1,center:1},Cs={top:1,bottom:1,middle:1},Es=["fontStyle","fontWeight","fontSize","fontFamily"];function Ds(t){return"string"!==typeof t||-1===t.indexOf("px")&&-1===t.indexOf("rem")&&-1===t.indexOf("em")?isNaN(+t)?fi["c"]+"px":t+"px":t}function Ls(t,e){for(var n=0;n=0,o=!1;if(t instanceof ss){var a=Zs(t),s=r&&a.selectFill||a.normalFill,u=r&&a.selectStroke||a.normalStroke;if(su(s)||su(u)){i=i||{};var l=i.style||{};"inherit"===l.fill?(o=!0,i=Object(m["extend"])({},i),l=Object(m["extend"])({},l),l.fill=s):!su(l.fill)&&su(s)?(o=!0,i=Object(m["extend"])({},i),l=Object(m["extend"])({},l),l.fill=lu(s)):!su(l.stroke)&&su(u)&&(o||(i=Object(m["extend"])({},i),l=Object(m["extend"])({},l)),l.stroke=lu(u)),i.style=l}}if(i&&null==i.z2){o||(i=Object(m["extend"])({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:tu)}return i}function xu(t,e,n){if(n&&null==n.z2){n=Object(m["extend"])({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:eu)}return n}function Mu(t,e,n){var i=Object(m["indexOf"])(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:wu(t,["opacity"],e,{opacity:1});n=n||{};var a=n.style||{};return null==a.opacity&&(n=Object(m["extend"])({},n),a=Object(m["extend"])({opacity:i?r:.1*o.opacity},a),n.style=a),n}function Su(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return _u(this,t,e,n);if("blur"===t)return Mu(this,t,n);if("select"===t)return xu(this,t,n)}return n}function Ou(t){t.stateProxy=Su;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Su),n&&(n.stateProxy=Su)}function Au(t,e){!Ru(t,e)&&!t.__highByOuter&&yu(t,cu)}function Iu(t,e){!Ru(t,e)&&!t.__highByOuter&&yu(t,fu)}function ku(t,e){t.__highByOuter|=1<<(e||0),yu(t,cu)}function Tu(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&yu(t,fu)}function Cu(t){yu(t,du)}function Eu(t){yu(t,pu)}function Du(t){yu(t,gu)}function Lu(t){yu(t,mu)}function Ru(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function ju(t){var e=t.getModel(),n=[],i=[];e.eachComponent((function(e,r){var o=Ys(r),a="series"===e,s=a?t.getViewOfSeriesModel(r):t.getViewOfComponentModel(r);!a&&i.push(s),o.isBlured&&(s.group.traverse((function(t){pu(t)})),a&&n.push(r)),o.isBlured=!1})),Object(m["each"])(i,(function(t){t&&t.toggleBlurSeries&&t.toggleBlurSeries(n,!1,e)}))}function Pu(t,e,n,i){var r=i.getModel();function o(t,e){for(var n=0;n0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Wu(t,e,n){Ju(t,!0),yu(t,Ou),Yu(t,e,n)}function qu(t){Ju(t,!1)}function Zu(t,e,n,i){i?qu(t):Wu(t,e,n)}function Yu(t,e,n){var i=Gs(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var Xu=["emphasis","blur","select"],$u={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Ku(t,e,n,i){n=n||"itemStyle";for(var r=0;r0){var c=h.duration,f=h.delay,d=h.easing,p={duration:c,delay:f||0,easing:d,done:o,force:!!o||!!a,setToFinal:!l,scope:t,during:a};u?e.animateFrom(n,p):e.animateTo(n,p)}else e.stopAnimation(),!u&&e.attr(n),a&&a(1),o&&o()}function ul(t,e,n,i,r,o){sl("update",t,e,n,i,r,o)}function ll(t,e,n,i,r,o){sl("enter",t,e,n,i,r,o)}function hl(t){if(!t.__zr)return!0;for(var e=0;e=0&&n.push(t)})),n}t.topologicalTravel=function(t,e,i,r){if(t.length){var o=n(e),a=o.graph,s=o.noEntryList,u={};m["each"](t,(function(t){u[t]=!0}));while(s.length){var l=s.pop(),h=a[l],c=!!u[l];c&&(i.call(r,l,h.originalDeps.slice()),delete u[l]),m["each"](h.successor,c?d:f)}m["each"](u,(function(){var t="";throw new Error(t)}))}function f(t){a[t].entryCount--,0===a[t].entryCount&&s.push(t)}function d(t){u[t]=!0,f(t)}}}function $l(t,e){return m["merge"](m["merge"]({},t,!0),e,!0)}var Kl={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Jl={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},Ql="ZH",th="EN",eh=th,nh={},ih={},rh=g["a"].domSupported?function(){var t=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return t.indexOf(Ql)>-1?Ql:eh}():eh;function oh(t,e){t=t.toUpperCase(),ih[t]=new Wl(e),nh[t]=e}function ah(t){if(Object(m["isString"])(t)){var e=nh[t.toUpperCase()]||{};return t===Ql||t===th?Object(m["clone"])(e):Object(m["merge"])(Object(m["clone"])(e),Object(m["clone"])(nh[eh]),!1)}return Object(m["merge"])(Object(m["clone"])(t),Object(m["clone"])(nh[eh]),!1)}function sh(t){return ih[t]}function uh(){return ih[eh]}oh(th,Kl),oh(Ql,Jl);var lh=1e3,hh=60*lh,ch=60*hh,fh=24*ch,dh=365*fh,ph={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},gh="{yyyy}-{MM}-{dd}",mh={year:"{yyyy}",month:"{yyyy}-{MM}",day:gh,hour:gh+" "+ph.hour,minute:gh+" "+ph.minute,second:gh+" "+ph.second,millisecond:ph.none},vh=["year","month","day","hour","minute","second","millisecond"],yh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function bh(t,e){return t+="","0000".substr(0,e-t.length)+t}function wh(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function _h(t){return t===wh(t)}function xh(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Mh(t,e,n,i){var r=fr(t),o=r[Ih(n)](),a=r[kh(n)]()+1,s=Math.floor((a-1)/3)+1,u=r[Th(n)](),l=r["get"+(n?"UTC":"")+"Day"](),h=r[Ch(n)](),c=(h-1)%12+1,f=r[Eh(n)](),d=r[Dh(n)](),p=r[Lh(n)](),g=i instanceof Wl?i:sh(i||rh)||uh(),m=g.getModel("time"),v=m.get("month"),y=m.get("monthAbbr"),b=m.get("dayOfWeek"),w=m.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,v[a-1]).replace(/{MMM}/g,y[a-1]).replace(/{MM}/g,bh(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,bh(u,2)).replace(/{d}/g,u+"").replace(/{eeee}/g,b[l]).replace(/{ee}/g,w[l]).replace(/{e}/g,l+"").replace(/{HH}/g,bh(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,bh(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,bh(f,2)).replace(/{m}/g,f+"").replace(/{ss}/g,bh(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,bh(p,3)).replace(/{S}/g,p+"")}function Sh(t,e,n,i,r){var o=null;if(m["isString"](n))o=n;else if(m["isFunction"](n))o=n(t.value,e,{level:t.level});else{var a=m["extend"]({},ph);if(t.level>0)for(var s=0;s=0;--s)if(u[l]){o=u[l];break}o=o||a.none}if(m["isArray"](o)){var c=null==t.level?0:t.level>=0?t.level:o.length+t.level;c=Math.min(c,o.length-1),o=o[c]}}return Mh(new Date(t.value),o,r,i)}function Oh(t,e){var n=fr(t),i=n[kh(e)]()+1,r=n[Th(e)](),o=n[Ch(e)](),a=n[Eh(e)](),s=n[Dh(e)](),u=n[Lh(e)](),l=0===u,h=l&&0===s,c=h&&0===a,f=c&&0===o,d=f&&1===r,p=d&&1===i;return p?"year":d?"month":f?"day":c?"hour":h?"minute":l?"second":"millisecond"}function Ah(t,e,n){var i=m["isNumber"](t)?fr(t):t;switch(e=e||Oh(t,n),e){case"year":return i[Ih(n)]();case"half-year":return i[kh(n)]()>=6?1:0;case"quarter":return Math.floor((i[kh(n)]()+1)/4);case"month":return i[kh(n)]();case"day":return i[Th(n)]();case"half-day":return i[Ch(n)]()/24;case"hour":return i[Ch(n)]();case"minute":return i[Eh(n)]();case"second":return i[Dh(n)]();case"millisecond":return i[Lh(n)]()}}function Ih(t){return t?"getUTCFullYear":"getFullYear"}function kh(t){return t?"getUTCMonth":"getMonth"}function Th(t){return t?"getUTCDate":"getDate"}function Ch(t){return t?"getUTCHours":"getHours"}function Eh(t){return t?"getUTCMinutes":"getMinutes"}function Dh(t){return t?"getUTCSeconds":"getSeconds"}function Lh(t){return t?"getUTCMilliseconds":"getMilliseconds"}function Rh(t){return t?"setUTCFullYear":"setFullYear"}function jh(t){return t?"setUTCMonth":"setMonth"}function Ph(t){return t?"setUTCDate":"setDate"}function Nh(t){return t?"setUTCHours":"setHours"}function Bh(t){return t?"setUTCMinutes":"setMinutes"}function zh(t){return t?"setUTCSeconds":"setSeconds"}function Fh(t){return t?"setUTCMilliseconds":"setMilliseconds"}function Vh(t,e,n,i,r,o,a,s){var u=new Hs({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}});return u.getBoundingRect()}function Hh(t){if(!br(t))return m["isString"](t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Gh(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Uh=m["normalizeCssArray"];function Wh(t,e,n){var i="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function r(t){return t&&m["trim"](t)?t:"-"}function o(t){return!(null==t||isNaN(t)||!isFinite(t))}var a="time"===e,s=t instanceof Date;if(a||s){var u=a?fr(t):t;if(!isNaN(+u))return Mh(u,i,n);if(s)return"-"}if("ordinal"===e)return m["isStringSafe"](t)?r(t):m["isNumber"](t)&&o(t)?t+"":"-";var l=yr(t);return o(l)?Hh(l):m["isStringSafe"](t)?r(t):"boolean"===typeof t?t+"":"-"}var qh=["a","b","c","d","e","f","g"],Zh=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Yh(t,e,n){m["isArray"](e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o':'';var a=n.markerId||"markerX";return{renderMode:o,content:"{"+a+"|} ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}}function Kh(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=fr(e),r=n?"getUTC":"get",o=i[r+"FullYear"](),a=i[r+"Month"]()+1,s=i[r+"Date"](),u=i[r+"Hours"](),l=i[r+"Minutes"](),h=i[r+"Seconds"](),c=i[r+"Milliseconds"]();return t=t.replace("MM",bh(a,2)).replace("M",a).replace("yyyy",o).replace("yy",bh(o%100+"",2)).replace("dd",bh(s,2)).replace("d",s).replace("hh",bh(u,2)).replace("h",u).replace("mm",bh(l,2)).replace("m",l).replace("ss",bh(h,2)).replace("s",h).replace("SSS",bh(c,3)),t}function Jh(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function Qh(t,e){return e=e||"transparent",m["isString"](t)?t:m["isObject"](t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function tc(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var ec=m["each"],nc=["left","right","top","bottom","width","height"],ic=[["width","left","right"],["height","top","bottom"]];function rc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(u,l){var h,c,f=u.getBoundingRect(),d=e.childAt(l+1),p=d&&d.getBoundingRect();if("horizontal"===t){var g=f.width+(p?-p.x+f.x:0);h=o+g,h>i||u.newline?(o=0,h=g,a+=s+n,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(p?-p.y+f.y:0);c=a+m,c>r||u.newline?(o+=s+n,a=0,c=m,s=f.width):s=Math.max(s,f.width)}u.newline||(u.x=o,u.y=a,u.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var oc=rc;m["curry"](rc,"vertical"),m["curry"](rc,"horizontal");function ac(t,e,n){var i=e.width,r=e.height,o=Qi(t.left,i),a=Qi(t.top,r),s=Qi(t.right,i),u=Qi(t.bottom,r);return(isNaN(o)||isNaN(parseFloat(t.left)))&&(o=0),(isNaN(s)||isNaN(parseFloat(t.right)))&&(s=i),(isNaN(a)||isNaN(parseFloat(t.top)))&&(a=0),(isNaN(u)||isNaN(parseFloat(t.bottom)))&&(u=r),n=Uh(n||0),{width:Math.max(s-o-n[1]-n[3],0),height:Math.max(u-a-n[0]-n[2],0)}}function sc(t,e,n){n=Uh(n||0);var i=e.width,r=e.height,o=Qi(t.left,i),a=Qi(t.top,r),s=Qi(t.right,i),u=Qi(t.bottom,r),l=Qi(t.width,i),h=Qi(t.height,r),c=n[2]+n[0],f=n[1]+n[3],d=t.aspect;switch(isNaN(l)&&(l=i-s-f-o),isNaN(h)&&(h=r-u-c-a),null!=d&&(isNaN(l)&&isNaN(h)&&(d>i/r?l=.8*i:h=.8*r),isNaN(l)&&(l=d*h),isNaN(h)&&(h=l/d)),isNaN(o)&&(o=i-s-l-f),isNaN(a)&&(a=r-u-h-c),t.left||t.right){case"center":o=i/2-l/2-n[3];break;case"right":o=i-l-f;break}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c;break}o=o||0,a=a||0,isNaN(l)&&(l=i-f-o-(s||0)),isNaN(h)&&(h=r-c-a-(u||0));var p=new Ht(o+n[3],a+n[0],l,h);return p.margin=n,p}function uc(t,e,n,i,r,o){var a,s=!r||!r.hv||r.hv[0],u=!r||!r.hv||r.hv[1],l=r&&r.boundingMode||"all";if(o=o||t,o.x=t.x,o.y=t.y,!s&&!u)return!1;if("raw"===l)a="group"===t.type?new Ht(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(a=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();a=a.clone(),a.applyTransform(h)}var c=sc(m["defaults"]({width:a.width,height:a.height},e),n,i),f=s?c.x-a.x:0,d=u?c.y-a.y:0;return"raw"===l?(o.x=f,o.y=d):(o.x+=f,o.y+=d),o===t&&t.markRedraw(),!0}function lc(t,e){return null!=t[ic[e][0]]||null!=t[ic[e][1]]&&null!=t[ic[e][2]]}function hc(t){var e=t.layoutMode||t.constructor.layoutMode;return m["isObject"](e)?e:e?{type:e}:null}function cc(t,e,n){var i=n&&n.ignoreSize;!m["isArray"](i)&&(i=[i,i]);var r=a(ic[0],0),o=a(ic[1],1);function a(n,r){var o={},a=0,l={},h=0,c=2;if(ec(n,(function(e){l[e]=t[e]})),ec(n,(function(t){s(e,t)&&(o[t]=l[t]=e[t]),u(o,t)&&a++,u(l,t)&&h++})),i[r])return u(e,n[1])?l[n[2]]=null:u(e,n[2])&&(l[n[1]]=null),l;if(h!==c&&a){if(a>=c)return o;for(var f=0;f=0;a--)o=m["merge"](o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return to(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Wl);function mc(t){var e=[];return m["each"](gc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=m["map"](e,(function(t){return lo(t).main})),"dataset"!==t&&m["indexOf"](e,"dataset")<=0&&e.unshift("dataset"),e}go(gc,Wl),wo(gc),Yl(gc),Xl(gc,mc);var vc=gc,yc="";"undefined"!==typeof navigator&&(yc=navigator.platform||"");var bc="rgba(0, 0, 0, 0.2)",wc={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:bc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:bc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:bc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:bc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:bc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:bc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:yc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},_c=Object(m["createHashMap"])(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),xc="original",Mc="arrayRows",Sc="objectRows",Oc="keyedColumns",Ac="typedArray",Ic="unknown",kc="column",Tc="row",Cc={Must:1,Might:2,Not:3},Ec=Yr();function Dc(t){Ec(t).datasetMap=Object(m["createHashMap"])()}function Lc(t,e,n){var i={},r=jc(e);if(!r||!t)return i;var o,a,s=[],u=[],l=e.ecModel,h=Ec(l).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;t=t.slice(),Object(m["each"])(t,(function(e,n){var r=Object(m["isObject"])(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=p(r)),i[r.name]=[]}));var f=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;ie)return t[i];return t[n-1]}function Zc(t,e,n,i,r,o,a){o=o||t;var s=e(o),u=s.paletteIdx||0,l=s.paletteNameMap=s.paletteNameMap||{};if(l.hasOwnProperty(r))return l[r];var h=null!=a&&i?qc(i,a):n;if(h=h||n,h&&h.length){var c=h[u];return r&&(l[r]=c),s.paletteIdx=(u+1)%h.length,c}}function Yc(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}var Xc,$c,Kc;"undefined"!==typeof console&&console.warn&&console.log;function Jc(t){0}function Qc(t){throw new Error(t)}var tf="\0_ec_inner",ef=1;var nf=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Wl(i),this._locale=new Wl(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=uf(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,uf(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);0,this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):Kc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&Object(m["each"])(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=Object(m["createHashMap"])(),s=e&&e.replaceMergeMainTypeMap;function u(e){var o=Vc(this,e,Ar(t[e])),a=i.get(e),u=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",l=Er(a,o,u);Ur(l,e,vc),n[e]=null,i.set(e,null),r.set(e,0);var h,c=[],f=[],d=0;Object(m["each"])(l,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o="series"===e,a=vc.getClass(e,t.keyInfo.subType,!o);if(!a)return;if("tooltip"===e){if(h)return void 0;h=!0}if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var s=Object(m["extend"])({componentIndex:n},t.keyInfo);i=new a(r,this,this,s),Object(m["extend"])(i,s),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(c.push(i.option),f.push(i),d++):(c.push(void 0),f.push(void 0))}),this),n[e]=c,i.set(e,f),r.set(e,d),"series"===e&&Xc(this)}Dc(this),Object(m["each"])(t,(function(t,e){null!=t&&(vc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?Object(m["clone"])(t):Object(m["merge"])(n[e],t,!0))})),s&&s.each((function(t,e){vc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),vc.topologicalTravel(o,vc.getAllClassMainTypes(),u,this),this._seriesIndices||Xc(this)},e.prototype.getOption=function(){var t=Object(m["clone"])(this.option);return Object(m["each"])(t,(function(e,n){if(vc.hasClass(n)){for(var i=Ar(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!Hr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t[tf],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r=e:"max"===n?t<=e:t===e}function _f(t,e){return t.join(",")===e.join(",")}var xf=vf,Mf=m["each"],Sf=m["isObject"],Of=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Af(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Of.length;n=0;g--){var m=t[g];if(s||(f=m.data.rawIndexOf(m.stackedByDimension,c)),f>=0){var v=m.data.getByRawIndex(m.stackResultDimension,f);if("all"===u||"positive"===u&&v>0||"negative"===u&&v<0||"samesign"===u&&d>=0&&v>0||"samesign"===u&&d<=0&&v<0){d=sr(d,v),p=v;break}}}return i[0]=d,i[1]=p,i}))}))}var Xf,$f,Kf,Jf,Qf,td=function(){function t(t){this.data=t.data||(t.sourceFormat===Oc?{}:[]),this.sourceFormat=t.sourceFormat||Ic,this.seriesLayoutBy=t.seriesLayoutBy||kc,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var e=this.dimensionsDefine=t.dimensionsDefine;if(e)for(var n=0;nl&&(l=d)}s[0]=u,s[1]=l}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e=0&&(s=o.interpolatedValue[u])}return null!=s?s+"":""}))}},t.prototype.getRawValue=function(t,e){return xd(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function Od(t){var e,n;return m["isObject"](t)?t.type&&(n=t):e=t,{text:e,frag:n}}function Ad(t){return new Id(t)}var Id=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,u=h(t&&t.modBy),l=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===u&&s===l||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=u,this._modDataCount=l;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var f=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||f1&&i>0?s:a}};return o;function a(){return e=t?null:oe},gte:function(t,e){return t>=e}},Ld=function(){function t(t,e){if(!Object(m["isNumber"])(e)){var n="";0,Qc(n)}this._opFn=Dd[t],this._rvalFloat=yr(e)}return t.prototype.evaluate=function(t){return Object(m["isNumber"])(t)?this._opFn(t,this._rvalFloat):this._opFn(yr(t),this._rvalFloat)},t}(),Rd=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=Object(m["isNumber"])(t)?t:yr(t),i=Object(m["isNumber"])(e)?e:yr(e),r=isNaN(n),o=isNaN(i);if(r&&(n=this._incomparable),o&&(i=this._incomparable),r&&o){var a=Object(m["isString"])(t),s=Object(m["isString"])(e);a&&(n=s?t:0),s&&(i=a?e:0)}return ni?-this._resultLT:0},t}(),jd=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=yr(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=yr(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Pd(t,e){return"eq"===t||"ne"===t?new jd("eq"===t,e):Object(m["hasOwn"])(Dd,t)?new Ld(t,e):null}var Nd=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return Td(t,e)},t}();function Bd(t,e){var n=new Nd,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==kc&&Qc(a);var s=[],u={},l=t.dimensionsDefine;if(l)Object(m["each"])(l,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";Object(m["hasOwn"])(u,n)&&Qc(r),u[n]=i}}));else for(var h=0;h65535?$d:Kd}function np(){return[1/0,-1/0]}function ip(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function rp(t,e,n,i,r){var o=tp[n||"float"];if(r){var a=t[e],s=a&&a.length;if(s!==i){for(var u=new o(i),l=0;lg[1]&&(g[1]=p)}return this._rawCount=this._count=s,{start:a,end:s}},t.prototype._initDataFromProvider=function(t,e,n){for(var i=this._provider,r=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,u=Object(m["map"])(o,(function(t){return t.property})),l=0;lv[1]&&(v[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent=[]},t.prototype.count=function(){return this._count},t.prototype.get=function(t,e){if(!(e>=0&&e=0&&e=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks,r=i[t],o=[];if(!r)return o;null==n&&(n=1/0);for(var a=1/0,s=-1,u=0,l=0,h=this.count();l=0&&s<0)&&(a=d,s=f,u=0),f===s&&(o[u++]=l))}return o.length=u,o},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r=h&&y<=c||isNaN(y))&&(s[u++]=p),p++}d=!0}else if(2===r){g=f[i[0]];var b=f[i[1]],w=t[i[1]][0],_=t[i[1]][1];for(v=0;v=h&&y<=c||isNaN(y))&&(x>=w&&x<=_||isNaN(x))&&(s[u++]=p),p++}d=!0}}if(!d)if(1===r)for(v=0;v=h&&y<=c||isNaN(y))&&(s[u++]=M)}else for(v=0;vt[A][1])&&(S=!1)}S&&(s[u++]=e.getRawIndex(v))}return um[1]&&(m[1]=g)}}}},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=this.clone([t],!0),a=o._chunks,s=a[t],u=this.count(),l=0,h=Math.floor(1/e),c=this.getRawIndex(0),f=new(ep(this._rawCount))(Math.min(2*(Math.ceil(u/h)+2),u));f[l++]=c;for(var d=1;dn&&(n=i,r=b))}A>0&&Al-d&&(s=l-d,a.length=s);for(var p=0;ph[1]&&(h[1]=m),c[f++]=v}return r._count=f,r._indices=c,r._updateGetRawIdx(),r},t.prototype.each=function(t,e){if(this._count)for(var n=t.length,i=this._chunks,r=0,o=this.count();rs&&(s=h)}return i=[a,s],this._extent[t]=i,i},t.prototype.getRawDataItem=function(t){var e=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(e);for(var n=[],i=this._chunks,r=0;r=0?this._indices[t]:-1},t.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},t.internalField=function(){function t(t,e,n,i){return Td(t[i],this._dimensions[i])}Yd={arrayRows:t,objectRows:function(t,e,n,i){return Td(t[e],this._dimensions[i])},keyedColumns:t,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return Td(r instanceof Array?r[i]:r,this._dimensions[i])},typedArray:function(t,e,n,i){return t[i]}}}(),t}(),ap=op,sp=function(){function t(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(lp(n)){var o=n,a=void 0,s=void 0,u=void 0;if(r){var l=i[0];l.prepareSource(),u=l.getSource(),a=u.data,s=u.sourceFormat,e=[l._getVersionSign()]}else a=o.get("data",!0),s=Object(m["isTypedArray"])(a)?Ac:xc,e=[];var h=this._getSourceMetaRawOption()||{},c=u&&u.metaRawOption||{},f=Object(m["retrieve2"])(h.seriesLayoutBy,c.seriesLayoutBy)||null,d=Object(m["retrieve2"])(h.sourceHeader,c.sourceHeader),p=Object(m["retrieve2"])(h.dimensions,c.dimensions),g=f!==c.seriesLayoutBy||!!d!==!!c.sourceHeader||p;t=g?[nd(a,{seriesLayoutBy:f,sourceHeader:d,dimensions:p},s)]:[]}else{var v=n;if(r){var y=this._applyTransform(i);t=y.sourceList,e=y.upstreamSignList}else{var b=v.get("source",!0);t=[nd(b,this._getSourceMetaRawOption(),null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&hp(o)}var a=[],s=[];return Object(m["each"])(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||hp(n),a.push(e),s.push(t._getVersionSign())})),i?e=Wd(i,a,{datasetIndex:n.componentIndex}):null!=r&&(e=[rd(a[0])]),{sourceList:e,upstreamSignList:s}},t.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e1||n>0&&!t.noHeader;return Object(m["each"])(t.blocks,(function(t){var n=yp(t);n>=e&&(e=n+ +(i&&(!n||mp(t)&&!t.noHeader)))})),e}return 0}function bp(t,e,n,i){var r=e.noHeader,o=xp(yp(e)),a=[],s=e.blocks||[];Object(m["assert"])(!s||Object(m["isArray"])(s)),s=s||[];var u=t.orderMode;if(e.sortBlocks&&u){s=s.slice();var l={valueAsc:"asc",valueDesc:"desc"};if(Object(m["hasOwn"])(l,u)){var h=new Rd(l[u],null);s.sort((function(t,e){return h.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===u&&s.reverse()}Object(m["each"])(s,(function(n,r){var s=e.valueFormatter,u=vp(n)(s?Object(m["extend"])(Object(m["extend"])({},t),{valueFormatter:s}):t,n,r>0?o.html:0,i);null!=u&&a.push(u)}));var c="richText"===t.renderMode?a.join(o.richText):Mp(a.join(""),r?n:o.html);if(r)return c;var f=Wh(e.header,"ordinal",t.useUTC),d=fp(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Ap(t,f,d)+o.richText+c:Mp('
'+ot(f)+"
"+c,n)}function wp(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,u=e.name,l=t.useUTC,h=e.valueFormatter||t.valueFormatter||function(t){return t=Object(m["isArray"])(t)?t:[t],Object(m["map"])(t,(function(t,e){return Wh(t,Object(m["isArray"])(d)?d[e]:d,l)}))};if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),f=o?"":Wh(u,"ordinal",l),d=e.valueType,p=a?[]:h(e.value),g=!s||!o,v=!s&&o,y=fp(i,r),b=y.nameStyle,w=y.valueStyle;return"richText"===r?(s?"":c)+(o?"":Ap(t,f,b))+(a?"":Ip(t,p,g,v,w)):Mp((s?"":c)+(o?"":Sp(f,!s,b))+(a?"":Op(p,g,v,w)),n)}}function _p(t,e,n,i,r,o){if(t){var a=vp(t),s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter};return a(s,t,0,o)}}function xp(t){return{html:dp[t],richText:pp[t]}}function Mp(t,e){var n='
',i="margin: "+e+"px 0 0";return'
'+t+n+"
"}function Sp(t,e,n){var i=e?"margin-left:2px":"";return''+ot(t)+""}function Op(t,e,n,i){var r=n?"10px":"20px",o=e?"float:right;margin-left:"+r:"";return t=Object(m["isArray"])(t)?t:[t],''+Object(m["map"])(t,(function(t){return ot(t)})).join("  ")+""}function Ap(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Ip(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(Object(m["isArray"])(e)?e.join(" "):e,o)}function kp(t,e){var n=t.getData().getItemVisual(e,"style"),i=n[t.visualDrawType];return Qh(i)}function Tp(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var Cp=function(){function t(){this.richTextStyles={},this._nextStyleNameId=wr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=$h({color:e,type:t,renderMode:n,markerId:i});return Object(m["isString"])(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};Object(m["isArray"])(e)?Object(m["each"])(e,(function(t){return Object(m["extend"])(n,t)})):Object(m["extend"])(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function Ep(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,u=o.getData(),l=u.mapDimensionsAll("defaultedTooltip"),h=l.length,c=o.getRawValue(a),f=Object(m["isArray"])(c),d=kp(o,a);if(h>1||f&&!h){var p=Dp(c,o,a,l,d);e=p.inlineValues,n=p.inlineValueTypes,i=p.blocks,r=p.inlineValues[0]}else if(h){var g=u.getDimensionInfo(l[0]);r=e=xd(u,a,l[0]),n=g.type}else r=e=f?c[0]:c;var v=Vr(o),y=v&&o.name||"",b=u.getName(a),w=s?y:b;return gp("section",{header:y,noHeader:s||!v,sortParam:r,blocks:[gp("nameValue",{markerType:"item",markerColor:d,name:w,noName:!Object(m["trim"])(w),value:e,valueType:n})].concat(i||[])})}function Dp(t,e,n,i,r){var o=e.getData(),a=Object(m["reduce"])(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],u=[],l=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?l.push(gp("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),u.push(n.type)))}return i.length?Object(m["each"])(i,(function(t){h(xd(o,n,t),t)})):Object(m["each"])(t,h),{inlineValues:s,inlineValueTypes:u,blocks:l}}var Lp=Yr();function Rp(t,e){return t.getName(e)||t.getId(e)}var jp="__universalTransitionEnabled",Pp=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return p(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=Ad({count:zp,reset:Fp}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n);var i=Lp(this).sourceManager=new sp(this);i.prepareSource();var r=this.getInitialData(t,n);Hp(r,this),this.dataTask.context.data=r,Lp(this).dataBeforeProcessed=r,Np(this),this._initSelectedMapFromData(r)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=hc(this),i=n?fc(t):{},r=this.subType;vc.hasClass(r)&&(r+="Series"),m["merge"](t,e.getTheme().get(this.subType)),m["merge"](t,this.getDefaultOption()),Ir(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&cc(t,i,n)},e.prototype.mergeOption=function(t,e){t=m["merge"](this.option,t,!0),this.fillDataTextStyle(t.data);var n=hc(this);n&&cc(this.option,t,n);var i=Lp(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Hp(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,Lp(this).dataBeforeProcessed=r,Np(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!m["isTypedArray"](t))for(var e=["show"],n=0;nthis.getShallow("animationThreshold")&&(e=!1),!!e},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=Uc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,r=this.getData(e);if("series"===i||"all"===n)return this.option.selectedMap={},void(this._selectedDataIndicesMap={});for(var o=0;o=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(e);return("all"===n||n[Rp(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this[jp])return!0;var t=this.option.universalTransition;return!!t&&(!0===t||t&&t.enabled)},e.prototype._innerSelect=function(t,e){var n,i,r=this.option,o=r.selectedMode,a=e.length;if(o&&a)if("series"===o)r.selectedMap="all";else if("multiple"===o){m["isObject"](r.selectedMap)||(r.selectedMap={});for(var s=r.selectedMap,u=0;u0&&this._innerSelect(t,e)}},e.registerClass=function(t){return vc.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(vc);function Np(t){var e=t.name;Vr(t)||(t.name=Bp(t)||e)}function Bp(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return m["each"](n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}function zp(t){return t.model.getRawData().count()}function Fp(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Vp}function Vp(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Hp(t,e){m["each"](m["concatArray"](t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,m["curry"](Gp,e))}))}function Gp(t,e){var n=Up(t);return n&&n.setOutputEnd((e||this).count()),e}function Up(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}m["mixin"](Pp,Sd),m["mixin"](Pp,Uc),go(Pp,vc);var Wp=Pp,qp=function(){function t(){this.group=new Ni,this.uid=Zl("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.toggleBlurSeries=function(t,e,n){},t.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)},t}();fo(qp),wo(qp);var Zp=qp;function Yp(){var t=Yr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}var Xp=ja.CMD,$p=[[],[],[]],Kp=Math.sqrt,Jp=Math.atan2;function Qp(t,e){if(e){var n,i,r,o,a,s,u=t.data,l=t.len(),h=Xp.M,c=Xp.C,f=Xp.L,d=Xp.R,p=Xp.A,g=Xp.Q;for(r=0,o=0;r1&&(a*=tg(p),s*=tg(p));var g=(r===o?-1:1)*tg((a*a*(s*s)-a*a*(d*d)-s*s*(f*f))/(a*a*(d*d)+s*s*(f*f)))||0,m=g*a*d/s,v=g*-s*f/a,y=(t+n)/2+ng(c)*m-eg(c)*v,b=(e+i)/2+eg(c)*m+ng(c)*v,w=ag([1,0],[(f-m)/a,(d-v)/s]),_=[(f-m)/a,(d-v)/s],x=[(-1*f-m)/a,(-1*d-v)/s],M=ag(_,x);if(og(_,x)<=-1&&(M=ig),og(_,x)>=1&&(M=0),M<0){var S=Math.round(M/ig*1e6)/1e6;M=2*ig+S%2*ig}h.addData(l,y,b,a,s,w,M,c,o)}var ug=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,lg=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function hg(t){var e=new ja;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=ja.CMD,u=t.match(ug);if(!u)return e;for(var l=0;lC*C+E*E&&(S=A,O=I),{cx:S,cy:O,x0:-h,y0:-c,x1:S*(r/_-1),y1:O*(r/_-1)}}function Ng(t){var e;if(Object(m["isArray"])(t)){var n=t.length;if(!n)return t;e=1===n?[t[0],t[0],0,0]:2===n?[t[0],t[0],t[1],t[1]]:3===n?t.concat(t[2]):t}else e=[t,t,t,t];return e}function Bg(t,e){var n,i=Dg(e.r,0),r=Dg(e.r0||0,0),o=i>0,a=r>0;if(o||a){if(o||(i=r,r=0),r>i){var s=i;i=r,r=s}var u=e.startAngle,l=e.endAngle;if(!isNaN(u)&&!isNaN(l)){var h=e.cx,c=e.cy,f=!!e.clockwise,d=Cg(l-u),p=d>Og&&d%Og;if(p>Rg&&(d=p),i>Rg)if(d>Og-Rg)t.moveTo(h+i*Ig(u),c+i*Ag(u)),t.arc(h,c,i,u,l,!f),r>Rg&&(t.moveTo(h+r*Ig(l),c+r*Ag(l)),t.arc(h,c,r,l,u,f));else{var g=void 0,m=void 0,v=void 0,y=void 0,b=void 0,w=void 0,_=void 0,x=void 0,M=void 0,S=void 0,O=void 0,A=void 0,I=void 0,k=void 0,T=void 0,C=void 0,E=i*Ig(u),D=i*Ag(u),L=r*Ig(l),R=r*Ag(l),j=d>Rg;if(j){var P=e.cornerRadius;P&&(n=Ng(P),g=n[0],m=n[1],v=n[2],y=n[3]);var N=Cg(i-r)/2;if(b=Lg(N,v),w=Lg(N,y),_=Lg(N,g),x=Lg(N,m),O=M=Dg(b,w),A=S=Dg(_,x),(M>Rg||S>Rg)&&(I=i*Ig(l),k=i*Ag(l),T=r*Ig(u),C=r*Ag(u),dRg){var W=Lg(v,O),q=Lg(y,O),Z=Pg(T,C,E,D,i,W,f),Y=Pg(I,k,L,R,i,q,f);t.moveTo(h+Z.cx+Z.x0,c+Z.cy+Z.y0),O0&&t.arc(h+Z.cx,c+Z.cy,W,Tg(Z.y0,Z.x0),Tg(Z.y1,Z.x1),!f),t.arc(h,c,i,Tg(Z.cy+Z.y1,Z.cx+Z.x1),Tg(Y.cy+Y.y1,Y.cx+Y.x1),!f),q>0&&t.arc(h+Y.cx,c+Y.cy,q,Tg(Y.y1,Y.x1),Tg(Y.y0,Y.x0),!f))}else t.moveTo(h+E,c+D),t.arc(h,c,i,u,l,!f);else t.moveTo(h+E,c+D);if(r>Rg&&j)if(A>Rg){W=Lg(g,A),q=Lg(m,A),Z=Pg(L,R,I,k,r,-q,f),Y=Pg(E,D,T,C,r,-W,f);t.lineTo(h+Z.cx+Z.x0,c+Z.cy+Z.y0),A0&&t.arc(h+Z.cx,c+Z.cy,q,Tg(Z.y0,Z.x0),Tg(Z.y1,Z.x1),!f),t.arc(h,c,r,Tg(Z.cy+Z.y1,Z.cx+Z.x1),Tg(Y.cy+Y.y1,Y.cx+Y.x1),f),W>0&&t.arc(h+Y.cx,c+Y.cy,W,Tg(Y.y1,Y.x1),Tg(Y.y0,Y.x0),!f))}else t.lineTo(h+L,c+R),t.arc(h,c,r,l,u,f);else t.lineTo(h+L,c+R)}else t.moveTo(h,c);t.closePath()}}}var zg=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0}return t}(),Fg=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.getDefaultShape=function(){return new zg},e.prototype.buildPath=function(t,e){Bg(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(ss);Fg.prototype.type="sector";var Vg=Fg,Hg=function(){function t(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return t}(),Gg=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.getDefaultShape=function(){return new Hg},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(ss);Gg.prototype.type="ring";var Ug=Gg;function Wg(t,e,n,i){var r,o,a,s,u=[],l=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var f=0,d=t.length;f=2){if(i){var o=Wg(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var u=o[2*s],l=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(u[0],u[1],l[0],l[1],h[0],h[1])}}else{t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;swm[1]){if(a=!1,r)return a;var l=Math.abs(wm[0]-bm[1]),h=Math.abs(bm[0]-wm[1]);Math.min(l,h)>i.len()&&(lMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Zm(t){return!t.isGroup}function Ym(t){return null!=t.shape}function Xm(t,e,n){if(t&&e){var i=r(t);e.traverse((function(t){if(Zm(t)&&t.anid){var e=i[t.anid];if(e){var r=o(t);t.attr(o(e)),ul(t,r,n,Gs(t).dataIndex)}}}))}function r(t){var e={};return t.traverse((function(t){Zm(t)&&t.anid&&(e[t.anid]=t)})),e}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return Ym(t)&&(e.shape=Object(m["extend"])({},t.shape)),e}}function $m(t,e){return Object(m["map"])(t,(function(t){var n=t[0];n=km(n,e.x),n=Tm(n,e.x+e.width);var i=t[1];return i=km(i,e.y),i=Tm(i,e.y+e.height),[n,i]}))}function Km(t,e){var n=km(t.x,e.x),i=Tm(t.x+t.width,e.x+e.width),r=km(t.y,e.y),o=Tm(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Jm(t,e,n){var i=Object(m["extend"])({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),Object(m["defaults"])(r,n),new gs(i)):Pm(t.replace("path://",""),i,n,"center")}function Qm(t,e,n,i,r){for(var o=0,a=r[r.length-1];o1)return!1;var m=ev(d,p,h,c)/f;return!(m<0||m>1)}function ev(t,e,n,i){return t*i-n*e}function nv(t){return t<=1e-6&&t>=-1e-6}function iv(t){var e=t.itemTooltipOption,n=t.componentModel,i=t.itemName,r=Object(m["isString"])(e)?{formatter:e}:e,o=n.mainType,a=n.componentIndex,s={componentType:o,name:i,$vars:["name"]};s[o+"Index"]=a;var u=t.formatterParamsExtra;u&&Object(m["each"])(Object(m["keys"])(u),(function(t){Object(m["hasOwn"])(s,t)||(s[t]=u[t],s.$vars.push(t))}));var l=Gs(t.el);l.componentMainType=o,l.componentIndex=a,l.tooltipConfig={name:i,option:Object(m["defaults"])({content:i,formatterParams:s},r)}}function rv(t,e){var n;t.isGroup&&(n=e(t)),n||t.traverse(e)}function ov(t,e){if(t)if(Object(m["isArray"])(t))for(var n=0;n=0?c():h=setTimeout(c,-r),u=i};return f.clear=function(){h&&(clearTimeout(h),h=null)},f.debounceNextCall=function(t){s=t},f}function bv(t,e,n,i){var r=t[e];if(r){var o=r[gv]||r,a=r[vv],s=r[mv];if(s!==n||a!==i){if(null==n||!i)return t[e]=o;r=t[e]=yv(o,n,"debounce"===i),r[gv]=o,r[vv]=i,r[mv]=n}return r}}function wv(t,e){var n=t[e];n&&n[gv]&&(n.clear&&n.clear(),t[e]=n[gv])}var _v=Yr(),xv={itemStyle:_o(Vl,!0),lineStyle:_o(Bl,!0)},Mv={lineStyle:"stroke",itemStyle:"fill"};function Sv(t,e){var n=t.visualStyleMapper||xv[e];return n||(console.warn("Unknown style type '"+e+"'."),xv.itemStyle)}function Ov(t,e){var n=t.visualDrawType||Mv[e];return n||(console.warn("Unknown style type '"+e+"'."),"fill")}var Av={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Sv(t,i),a=o(r),s=r.getShallow("decal");s&&(n.setVisual("decal",s),s.dirty=!0);var u=Ov(t,i),l=a[u],h=Object(m["isFunction"])(l)?l:null,c="auto"===a.fill||"auto"===a.stroke;if(!a[u]||h||c){var f=t.getColorFromPalette(t.name,null,e.getSeriesCount());a[u]||(a[u]=f,n.setVisual("colorFromPalette",!0)),a.fill="auto"===a.fill||Object(m["isFunction"])(a.fill)?f:a.fill,a.stroke="auto"===a.stroke||Object(m["isFunction"])(a.stroke)?f:a.stroke}if(n.setVisual("style",a),n.setVisual("drawType",u),!e.isSeriesFiltered(t)&&h)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=Object(m["extend"])({},a);r[u]=h(i),e.setItemVisual(n,"style",r)}}}},Iv=new Wl,kv={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Sv(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){Iv.option=n[i];var a=r(Iv),s=t.ensureUniqueItemVisual(e,"style");Object(m["extend"])(s,a),Iv.option.decal&&(t.setItemVisual(e,"decal",Iv.option.decal),Iv.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Tv={performRawSeries:!0,overallReset:function(t){var e=Object(m["createHashMap"])();t.eachSeries((function(t){var n=t.getColorBy();if(!t.isColorBySeries()){var i=t.type+"-"+n,r=e.get(i);r||(r={},e.set(i,r)),_v(t).scope=r}})),t.eachSeries((function(e){if(!e.isColorBySeries()&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=_v(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Ov(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t],u=r.getItemVisual(a,"colorFromPalette");if(u){var l=r.ensureUniqueItemVisual(a,"style"),h=n.getName(t)||t+"",c=n.count();l[s]=e.getColorFromPalette(h,o,c)}}))}}))}},Cv=Math.PI;function Ev(t,e){e=e||{},m["defaults"](e,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Ni,i=new Ss({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new Hs({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new Ss({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&(r=new hm({shape:{startAngle:-Cv/2,endAngle:-Cv/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),r.animateShape(!0).when(1e3,{endAngle:3*Cv/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Cv/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,u=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),l=t.getHeight()/2;e.showSpinner&&r.setShape({cx:u,cy:l}),a.setShape({x:u-s,y:l-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n}var Dv=function(){function t(t,e,n,i){this._stageTaskMap=Object(m["createHashMap"])(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=r?n.step:null,a=i&&i.modDataCount,s=null!=a?Math.ceil(a/o):null;return{step:o,modBy:s,modDataCount:a}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData(),r=i.count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&r>=n.threshold,a=t.get("large")&&r>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?r:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:a}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=Object(m["createHashMap"])();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;Object(m["each"])(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";Object(m["assert"])(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}Object(m["each"])(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var u=o._stageTaskMap.get(t.uid),l=u.seriesTaskMap,h=u.overallTask;if(h){var c,f=h.agentStubMap;f.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);f.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else l&&l.each((function(s,u){a(i,s)&&s.dirty();var l=o.getPerformArgs(s,i.block);l.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(l)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=Object(m["createHashMap"])(),s=t.seriesType,u=t.getTargetSeries;function l(e){var s=e.uid,u=a.set(s,o&&o.get(s)||Ad({plan:Nv,reset:Bv,count:Vv}));u.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,u)}t.createOnAllSeries?n.eachRawSeries(l):s?n.eachRawSeriesByType(s,l):u&&u(n,i).each(l)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Ad({reset:Lv});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=Object(m["createHashMap"])(),u=t.seriesType,l=t.getTargetSeries,h=!0,c=!1,f="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,Ad({reset:Rv,onDirty:Pv})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}Object(m["assert"])(!t.createOnAllSeries,f),u?n.eachRawSeriesByType(u,d):l?l(n,i).each(d):(h=!1,Object(m["each"])(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return Object(m["isFunction"])(t)&&(t={overallReset:t,seriesType:Hv(t)}),t.uid=Zl("stageHandler"),e&&(t.visualType=e),t},t}();function Lv(t){t.overallReset(t.ecModel,t.api,t.payload)}function Rv(t){return t.overallProgress&&jv}function jv(){this.agent.dirty(),this.getDownstream().dirty()}function Pv(){this.agent&&this.agent.dirty()}function Nv(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Bv(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Ar(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?Object(m["map"])(e,(function(t,e){return Fv(e)})):zv}var zv=Fv(0);function Fv(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o0&&h===r.length-l.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[l.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,u=e.dataQuery;return l(s,o,"mainType")&&l(s,o,"subType")&&l(s,o,"index","componentIndex")&&l(s,o,"name")&&l(s,o,"id")&&l(u,r,"name")&&l(u,r,"dataIndex")&&l(u,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function l(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),iy=["symbol","symbolSize","symbolRotate","symbolOffset"],ry=iy.concat(["symbolKeepAspect"]),oy={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendIcon&&n.setVisual("legendIcon",t.legendIcon),t.hasSymbolVisual){for(var i={},r={},o=!1,a=0;a=0&&Cy(u)?u:.5;var l=t.createRadialGradient(a,s,0,a,s,u);return l}function Ly(t,e,n){for(var i="radial"===e.type?Dy(t,e,n):Ey(t,e,n),r=e.colorStops,o=0;o0?"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:Object(m["isNumber"])(t)?[t]:Object(m["isArray"])(t)?t:null:null}function By(t){var e=t.style,n=e.lineDash&&e.lineWidth>0&&Ny(e.lineDash,e.lineWidth),i=e.lineDashOffset;if(n){var r=e.strokeNoScale&&t.getLineScale?t.getLineScale():1;r&&1!==r&&(n=Object(m["map"])(n,(function(t){return t/r})),i/=r)}return[n,i]}var zy=new ja(!0);function Fy(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Vy(t){return"string"===typeof t&&"none"!==t}function Hy(t){var e=t.fill;return null!=e&&"none"!==e}function Gy(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Uy(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Wy(t,e,n){var i=Io(e.image,e.__image,n);if(To(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"===typeof DOMMatrix&&r&&r.setTransform){var o=new DOMMatrix;o.translateSelf(e.x||0,e.y||0),o.rotateSelf(0,0,(e.rotation||0)*m["RADIAN_TO_DEGREE"]),o.scaleSelf(e.scaleX||1,e.scaleY||1),r.setTransform(o)}return r}}function qy(t,e,n,i){var r,o=Fy(n),a=Hy(n),s=n.strokePercent,u=s<1,l=!e.path;e.silent&&!u||!l||e.createPathProxy();var h=e.path||zy,c=e.__dirty;if(!i){var f=n.fill,d=n.stroke,p=a&&!!f.colorStops,g=o&&!!d.colorStops,m=a&&!!f.image,v=o&&!!d.image,y=void 0,b=void 0,w=void 0,_=void 0,x=void 0;(p||g)&&(x=e.getBoundingRect()),p&&(y=c?Ly(t,f,x):e.__canvasFillGradient,e.__canvasFillGradient=y),g&&(b=c?Ly(t,d,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=b),m&&(w=c||!e.__canvasFillPattern?Wy(t,f,e):e.__canvasFillPattern,e.__canvasFillPattern=w),v&&(_=c||!e.__canvasStrokePattern?Wy(t,d,e):e.__canvasStrokePattern,e.__canvasStrokePattern=w),p?t.fillStyle=y:m&&(w?t.fillStyle=w:a=!1),g?t.strokeStyle=b:v&&(_?t.strokeStyle=_:o=!1)}var M,S,O=e.getGlobalScale();h.setScale(O[0],O[1],e.segmentIgnoreThreshold),t.setLineDash&&n.lineDash&&(r=By(e),M=r[0],S=r[1]);var A=!0;(l||c&de)&&(h.setDPR(t.dpr),u?h.setContext(null):(h.setContext(t),A=!1),h.reset(),e.buildPath(h,e.shape,i),h.toStatic(),e.pathUpdated()),A&&h.rebuildPath(t,u?s:1),M&&(t.setLineDash(M),t.lineDashOffset=S),i||(n.strokeFirst?(o&&Uy(t,n),a&&Gy(t,n)):(a&&Gy(t,n),o&&Uy(t,n))),M&&t.setLineDash([])}function Zy(t,e,n){var i=e.__image=Io(n.image,e.__image,e,e.onload);if(i&&To(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),u=i.width/i.height;if(null==a&&null!=s?a=s*u:null==s&&null!=a?s=a/u:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var l=n.sx||0,h=n.sy||0;t.drawImage(i,l,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){l=n.sx,h=n.sy;var c=a-l,f=s-h;t.drawImage(i,l,h,c,f,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}function Yy(t,e,n){var i,r=n.text;if(null!=r&&(r+=""),r){t.font=n.font||fi["a"],t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var o=void 0,a=void 0;t.setLineDash&&n.lineDash&&(i=By(e),o=i[0],a=i[1]),o&&(t.setLineDash(o),t.lineDashOffset=a),n.strokeFirst?(Fy(n)&&t.strokeText(r,n.x,n.y),Hy(n)&&t.fillText(r,n.x,n.y)):(Hy(n)&&t.fillText(r,n.x,n.y),Fy(n)&&t.strokeText(r,n.x,n.y)),o&&t.setLineDash([])}}var Xy=["shadowBlur","shadowOffsetX","shadowOffsetY"],$y=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Ky(t,e,n,i,r){var o=!1;if(!i&&(n=n||{},e===n))return!1;if(i||e.opacity!==n.opacity){ub(t,r),o=!0;var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?qo.opacity:a}(i||e.blend!==n.blend)&&(o||(ub(t,r),o=!0),t.globalCompositeOperation=e.blend||qo.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,e,n){if(!this[Zb])if(this._disposed)Iw(this.id);else{var i,r,o;if(Object(m["isObject"])(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this[Zb]=!0,!this._model||e){var a=new xf(this._api),s=this._theme,u=this._model=new lf;u.scheduler=this._scheduler,u.ssr=this._ssr,u.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Ew);var l={seriesTransition:o,optionChanged:!0};if(n)this[Yb]={silent:i,updateParams:l},this[Zb]=!1,this.getZr().wakeUp();else{try{rw(this),sw.update.call(this,null,l)}catch(h){throw this[Yb]=null,this[Zb]=!1,h}this._ssr||this._zr.flush(),this[Yb]=null,this[Zb]=!1,cw.call(this,i),fw.call(this,i)}}},e.prototype.setTheme=function(){Jc("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||g["a"].hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){t=t||{};var e=this._zr.painter;return e.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){t=t||{};var e=this._zr.painter;return e.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(g["a"].svgSupported){var t=this._zr,e=t.storage.getDisplayList();return Object(m["each"])(e,(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){t=t||{};var e=t.excludeComponents,n=this._model,i=[],r=this;Object(m["each"])(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Object(m["each"])(i,(function(t){t.group.ignore=!1})),o}Iw(this.id)},e.prototype.getConnectedDataURL=function(t){if(!this._disposed){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(Pw[n]){var a=o,s=o,u=-o,l=-o,h=[],c=t&&t.pixelRatio||this.getDevicePixelRatio();Object(m["each"])(jw,(function(o,c){if(o.group===n){var f=e?o.getZr().painter.getSvgDom().innerHTML:o.renderToCanvas(Object(m["clone"])(t)),d=o.getDom().getBoundingClientRect();a=i(d.left,a),s=i(d.top,s),u=r(d.right,u),l=r(d.bottom,l),h.push({dom:f,left:d.left,top:d.top})}})),a*=c,s*=c,u*=c,l*=c;var f=u-a,d=l-s,p=fi["d"].createCanvas(),g=Gi(p,{renderer:e?"svg":"canvas"});if(g.resize({width:f,height:d}),e){var v="";return Object(m["each"])(h,(function(t){var e=t.left-a,n=t.top-s;v+=''+t.dom+""})),g.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&g.painter.setBackgroundColor(t.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}return t.connectedBackgroundColor&&g.add(new Ss({shape:{x:0,y:0,width:f,height:d},style:{fill:t.connectedBackgroundColor}})),Object(m["each"])(h,(function(t){var e=new gs({style:{x:t.left*c-a,y:t.top*c-s,image:t.dom}});g.add(e)})),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}Iw(this.id)},e.prototype.convertToPixel=function(t,e){return uw(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return uw(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){if(!this._disposed){var n,i=this._model,r=$r(i,t);return Object(m["each"])(r,(function(t,i){i.indexOf("Models")>=0&&Object(m["each"])(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n}Iw(this.id)},e.prototype.getVisual=function(t,e){var n=this._model,i=$r(n,t,{defaultMainType:"series"}),r=i.seriesModel;var o=r.getData(),a=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?o.indexOfRawIndex(i.dataIndex):null;return null!=a?sy(o,a,e):uy(o,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t=this;Object(m["each"])(Aw,(function(e){var n=function(n){var i,r=t.getModel(),o=n.target,a="globalout"===e;if(a?i={}:o&&dy(o,(function(t){var e=Gs(t);if(e&&null!=e.dataIndex){var n=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return i=n&&n.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return i=Object(m["extend"])({},e.eventData),!0}),!0),i){var s=i.componentType,u=i.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",u=i.seriesIndex);var l=s&&null!=u&&r.getComponent(s,u),h=l&&t["series"===l.mainType?"_chartsMap":"_componentsMap"][l.__viewId];0,i.event=n,i.type=e,t._$eventProcessor.eventInfo={targetEl:o,packedEvent:i,model:l,view:h},t.trigger(e,i)}};n.zrEventfulCallAtLast=!0,t._zr.on(e,n,t)})),Object(m["each"])(Tw,(function(e,n){t._messageCenter.on(n,(function(t){this.trigger(n,t)}),t)})),Object(m["each"])(["selectchanged"],(function(e){t._messageCenter.on(e,(function(t){this.trigger(e,t)}),t)})),fy(this._messageCenter,this,this._api)},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Iw(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Iw(this.id);else{this._disposed=!0;var t=this.getDom();t&&eo(this.getDom(),zw,"");var e=this,n=e._api,i=e._model;Object(m["each"])(e._componentsViews,(function(t){t.dispose(i,n)})),Object(m["each"])(e._chartsViews,(function(t){t.dispose(i,n)})),e._zr.dispose(),e._dom=e._model=e._chartsMap=e._componentsMap=e._chartsViews=e._componentsViews=e._scheduler=e._api=e._zr=e._throttledZrFlush=e._theme=e._coordSysMgr=e._messageCenter=null,delete jw[e.id]}},e.prototype.resize=function(t){if(!this[Zb])if(this._disposed)Iw(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this[Yb]&&(null==i&&(i=this[Yb].silent),n=!0,this[Yb]=null),this[Zb]=!0;try{n&&rw(this),sw.update.call(this,{type:"resize",animation:Object(m["extend"])({duration:0},t&&t.animation)})}catch(r){throw this[Zb]=!1,r}this[Zb]=!1,cw.call(this,i),fw.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Iw(this.id);else if(Object(m["isObject"])(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Rw[t]){var n=Rw[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?Iw(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=Object(m["extend"])({},t);return e.type=Tw[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Iw(this.id);else if(Object(m["isObject"])(e)||(e={silent:!!e}),kw[t.type]&&this._model)if(this[Zb])this._pendingActions.push(t);else{var n=e.silent;hw.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&g["a"].browser.weChat&&this._throttledZrFlush(),cw.call(this,n),fw.call(this,n)}},e.prototype.updateLabelLayout=function(){Sb.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed)Iw(this.id);else{var e=t.seriesIndex,n=this.getModel(),i=n.getSeriesByIndex(e);0,i.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))}function e(t){var e=[],n=[],i=!1;if(t.eachComponent((function(t,r){var o=r.get("zlevel")||0,a=r.get("z")||0,s=r.getZLevelKey();i=i||!!s,("series"===t?n:e).push({zlevel:o,z:a,idx:r.componentIndex,type:t,key:s})})),i){var r,o,a=e.concat(n);he(a,(function(t,e){return t.zlevel===e.zlevel?t.z-e.z:t.zlevel-e.zlevel})),Object(m["each"])(a,(function(e){var n=t.getComponent(e.type,e.idx),i=e.zlevel,a=e.key;null!=r&&(i=Math.max(r,i)),a?(i===r&&a!==o&&i++,o=a):o&&(i===r&&i++,o=""),r=i,n.setZLevel(i)}))}}function n(t){for(var e=[],n=t.currentStates,i=0;ie.get("hoverLayerThreshold")&&!g["a"].node&&!g["a"].worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.eachRendered((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}function r(t,e){var n=t.get("blendMode")||null;e.eachRendered((function(t){t.isGroup||(t.style.blend=n)}))}function o(t,e){if(!t.preventAutoZ){var n=t.get("z")||0,i=t.get("zlevel")||0;e.eachRendered((function(t){return a(t,n,i,-1/0),!0}))}}function a(t,e,n,i){var r=t.getTextContent(),o=t.getTextGuideLine(),s=t.isGroup;if(s)for(var u=t.childrenRef(),l=0;l0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;e.eachRendered((function(t){if(t.states&&t.states.emphasis){if(hl(t))return;if(t instanceof ss&&rl(t),t.__dirty){var e=t.prevStates;e&&t.useStates(e)}if(r){t.stateTransition=a;var i=t.getTextContent(),o=t.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}t.__dirty&&n(t)}}))}rw=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),ow(t,!0),ow(t,!1),e.plan()},ow=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,u=0;u=0)){r_.push(n);var o=Zv.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function a_(t,e){Rw[t]=e}function s_(t){Object(fi["e"])({createCanvas:t})}function u_(t,e,n){var i=Ib("registerMap");i&&i(t,e,n)}function l_(t){var e=Ib("getMap");return e&&e(t)}var h_=Ud;i_(Bb,Av),i_(Vb,kv),i_(Vb,Tv),i_(Bb,oy),i_(Vb,ay),i_(Wb,xb),Yw(qf),Xw(Db,Zf),a_("default",Ev),Qw({type:nu,event:nu,update:nu},m["noop"]),Qw({type:iu,event:iu,update:iu},m["noop"]),Qw({type:ru,event:ru,update:ru},m["noop"]),Qw({type:ou,event:ou,update:ou},m["noop"]),Qw({type:au,event:au,update:au},m["noop"]),Zw("light",Xv),Zw("dark",ey);var c_={},f_=[],d_={registerPreprocessor:Yw,registerProcessor:Xw,registerPostInit:$w,registerPostUpdate:Kw,registerUpdateLifecycle:Jw,registerAction:Qw,registerCoordinateSystem:t_,registerLayout:n_,registerVisual:i_,registerTransform:h_,registerLoading:a_,registerMap:u_,registerImpl:Ab,PRIORITY:qb,ComponentModel:vc,ComponentView:Zp,SeriesModel:Wp,ChartView:pv,registerComponentModel:function(t){vc.registerClass(t)},registerComponentView:function(t){Zp.registerClass(t)},registerSeriesModel:function(t){Wp.registerClass(t)},registerChartView:function(t){pv.registerClass(t)},registerSubTypeDefaulter:function(t,e){vc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Zi(t,e)}};function p_(t){Object(m["isArray"])(t)?Object(m["each"])(t,(function(t){p_(t)})):Object(m["indexOf"])(f_,t)>=0||(f_.push(t),Object(m["isFunction"])(t)&&(t={install:t}),t.install(d_))}function g_(t){return null==t?0:t.length||1}function m_(t){return t}var v_=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||m_,this._newKeyGetter=i||m_,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o1){var l=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(l,o)}else 1===u?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a1&&1===c)this._updateManyToOne&&this._updateManyToOne(l,u),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(l,u),i[s]=null;else if(1===h&&1===c)this._update&&this._update(l,u),i[s]=null;else if(h>1&&c>1)this._updateManyToMany&&this._updateManyToMany(l,u),i[s]=null;else if(h>1)for(var f=0;f1)for(var a=0;a30}var L_,R_,j_,P_,N_,B_,z_,F_=m["isObject"],V_=m["map"],H_="undefined"===typeof Int32Array?Array:Int32Array,G_="e\0\0",U_=-1,W_=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],q_=["_approximateExtent"],Z_=function(){function t(t,e){var n;this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var i=!1;T_(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var r={},o=[],a={},s=!1,u={},l=0;l=e)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var r=this._nameList,o=this._idList,a=i.getSource().sourceFormat,s=a===xc;if(s&&!i.pure)for(var u=[],l=t;l0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(r=this.getVisual(e),m["isArray"](r)?r=r.slice():F_(r)&&(r=m["extend"]({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,F_(e)?m["extend"](i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){F_(t)?m["extend"](this._layout,t):this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?m["extend"](this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel&&this.hostModel.seriesIndex;Us(n,this.dataType,t,e),this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){m["each"](this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){return e||(e=new t(this._schema?this._schema:V_(this.dimensions,this._getDimInfo,this),this.hostModel)),N_(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(t,e){var n=this[t];m["isFunction"](n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(m["slice"](arguments)))})},t.internalField=function(){L_=function(t){var e=t._invertedIndicesMap;m["each"](e,(function(n,i){var r=t._dimInfos[i],o=r.ordinalMeta,a=t._store;if(o){n=e[i]=new H_(o.categories.length);for(var s=0;s1&&(s+="__ec__"+l),i[e]=s}}}(),t}(),Y_=Z_;function X_(t,e){return $_(t,e).dimensions}function $_(t,e){ed(t)||(t=id(t)),e=e||{};var n=e.coordDimensions||[],i=e.dimensionsDefine||t.dimensionsDefine||[],r=Object(m["createHashMap"])(),o=[],a=J_(t,n,i,e.dimensionsCount),s=e.canOmitUnusedDimensions&&D_(a),u=i===t.dimensionsDefine,l=u?E_(t):C_(i),h=e.encodeDefine;!h&&e.encodeDefaulter&&(h=e.encodeDefaulter(t,a));for(var c=Object(m["createHashMap"])(h),f=new Jd(a),d=0;d0&&(i.name=r+(o-1)),o++,e.set(r,o)}}function J_(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return Object(m["each"])(e,(function(t){var e;Object(m["isObject"])(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}function Q_(t,e,n){if(n||e.hasKey(t)){var i=0;while(e.hasKey(t+i))i++;t+=i}return e.set(t,!0),t}var tx=function(){function t(t){this.coordSysDims=[],this.axisMap=Object(m["createHashMap"])(),this.categoryAxisMap=Object(m["createHashMap"])(),this.coordSysName=t}return t}();function ex(t){var e=t.get("coordinateSystem"),n=new tx(e),i=nx[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}var nx={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Jr).models[0],o=t.getReferringComponents("yAxis",Jr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),ix(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),ix(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Jr).models[0];e.coordSysDims=["single"],n.set("single",r),ix(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Jr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),ix(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),ix(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();Object(m["each"])(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),u=a[o];n.set(u,s),ix(s)&&(i.set(u,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function ix(t){return"category"===t.get("type")}function rx(t,e,n){n=n||{};var i,r,o,a=n.byIndex,s=n.stackedCoordDimension;ox(e)?i=e:(r=e.schema,i=r.dimensions,o=e.store);var u,l,h,c,f=!(!t||!t.get("stack"));if(Object(m["each"])(i,(function(t,e){Object(m["isString"])(t)&&(i[e]=t={name:t}),f&&!t.isExtraCoord&&(a||u||!t.ordinalMeta||(u=t),l||"ordinal"===t.type||"time"===t.type||s&&s!==t.coordDim||(l=t))})),!l||a||u||(a=!0),l){h="__\0ecstackresult_"+t.id,c="__\0ecstackedover_"+t.id,u&&(u.createInvertedIndices=!0);var d=l.coordDim,p=l.type,g=0;Object(m["each"])(i,(function(t){t.coordDim===d&&g++}));var v={name:h,coordDim:d,coordDimIndex:g,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},y={name:c,coordDim:c,coordDimIndex:g+1,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};r?(o&&(v.storeDimIndex=o.ensureCalculationDimension(c,p),y.storeDimIndex=o.ensureCalculationDimension(h,p)),r.appendCalculationDimension(v),r.appendCalculationDimension(y)):(i.push(v),i.push(y))}return{stackedDimension:l&&l.name,stackedByDimension:u&&u.name,isStackedByIndex:a,stackedOverDimension:c,stackResultDimension:h}}function ox(t){return!T_(t.schema)}function ax(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function sx(t,e){return ax(t,e)?t.getCalculationInfo("stackResultDimension"):e}function ux(t,e){var n,i=t.get("coordinateSystem"),r=gf.get(i);return e&&e.coordSysDims&&(n=m["map"](e.coordSysDims,(function(t){var n={name:t},i=e.axisMap.get(t);if(i){var r=i.get("type");n.type=x_(r)}return n}))),n||(n=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||["x","y"]),n}function lx(t,e,n){var i,r;return n&&m["each"](t,(function(t,o){var a=t.coordDim,s=n.categoryAxisMap.get(a);s&&(null==i&&(i=o),t.ordinalMeta=s.getOrdinalMeta(),e&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(r=!0)})),r||null==i||(t[i].otherDims.itemName=0),i}function hx(t,e,n){n=n||{};var i,r=e.getSourceManager(),o=!1;t?(o=!0,i=id(t)):(i=r.getSource(),o=i.sourceFormat===xc);var a=ex(e),s=ux(e,a),u=n.useEncodeDefaulter,l=m["isFunction"](u)?u:u?m["curry"](Lc,s,e):null,h={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:l,canOmitUnusedDimensions:!o},c=$_(i,h),f=lx(c.dimensions,n.createInvertedIndices,a),d=o?null:r.getSharedDataStore(c),p=rx(e,{schema:c,store:d}),g=new Y_(c,e);g.setCalculationInfo(p);var v=null!=f&&cx(i)?function(t,e,n,i){return i===f?n:this.defaultDimValueGetter(t,e,n,i)}:null;return g.hasItemOption=!1,g.initData(o?i:d,null,v),g}function cx(t){if(t.sourceFormat===xc){var e=fx(t.data||[]);return!m["isArray"](Tr(e))}}function fx(t){var e=0;while(ee[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();wo(px);var gx=px,mx=0,vx=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++mx}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&Object(m["map"])(i,yx);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if(!Object(m["isString"])(t)&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return e=i.get(t),null==e&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=Object(m["createHashMap"])(this.categories))},t}();function yx(t){return Object(m["isObject"])(t)&&null!=t.value?t.value:t+""}var bx=vx;function wx(t){return"interval"===t.type||"log"===t.type}function _x(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=gr(o/e,!0);null!=n&&ai&&(a=r.interval=i);var s=r.intervalPrecision=Mx(a),u=r.niceTickExtent=[tr(Math.ceil(t[0]/a)*a,s),tr(Math.floor(t[1]/a)*a,s)];return Ox(u,t),r}function xx(t){var e=Math.pow(10,pr(t)),n=t/e;return n?2===n?n=3:3===n?n=5:n*=2:n=1,tr(n*e)}function Mx(t){return nr(t)+2}function Sx(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Ox(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Sx(t,0,e),Sx(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Ax(t,e){return t>=e[0]&&t<=e[1]}function Ix(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function kx(t,e){return t*(e[1]-e[0])+e[0]}var Tx=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new bx({})),Object(m["isArray"])(i)&&(i=new bx({categories:Object(m["map"])(i,(function(t){return Object(m["isObject"])(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return p(e,t),e.prototype.parse=function(t){return null==t?NaN:Object(m["isString"])(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return t=this.parse(t),Ax(t,this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return t=this._getTickNumber(this.parse(t)),Ix(t,this._extent)},e.prototype.scale=function(t){return t=Math.round(kx(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){var t=[],e=this._extent,n=e[0];while(n<=e[1])t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(gx);gx.registerClass(Tx);var Cx=Tx,Ex=tr,Dx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return p(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Ax(t,this._extent)},e.prototype.normalize=function(t){return Ix(t,this._extent)},e.prototype.scale=function(t){return kx(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Mx(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;var a=1e4;n[0]a)return[]}var u=o.length?o[o.length-1].value:i[1];return n[1]>u&&(t?o.push({value:Ex(u+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&c0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}function Gx(t){var e=Hx(t),n=[];return Object(m["each"])(t,(function(t){var i,r=t.coordinateSystem,o=r.getBaseAxis(),a=o.getExtent();if("category"===o.type)i=o.getBandWidth();else if("value"===o.type||"time"===o.type){var s=o.dim+"_"+o.index,u=e[s],l=Math.abs(a[1]-a[0]),h=o.scale.getExtent(),c=Math.abs(h[1]-h[0]);i=u?l/c*u:l}else{var f=t.getData();i=Math.abs(a[1]-a[0])/f.count()}var d=Qi(t.get("barWidth"),i),p=Qi(t.get("barMaxWidth"),i),g=Qi(t.get("barMinWidth")||(Xx(t)?.5:1),i),m=t.get("barGap"),v=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:d,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:v,axisKey:zx(o),stackId:Bx(t)})})),Ux(n)}function Ux(t){var e={};Object(m["each"])(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var u=t.barWidth;u&&!a[s].width&&(a[s].width=u,u=Math.min(o.remainedWidth,u),o.remainedWidth-=u);var l=t.barMaxWidth;l&&(a[s].maxWidth=l);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var f=t.barCategoryGap;null!=f&&(o.categoryGap=f)}));var n={};return Object(m["each"])(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=Object(m["keys"])(i).length;o=Math.max(35-4*a,15)+"%"}var s=Qi(o,r),u=Qi(t.gap,1),l=t.remainedWidth,h=t.autoWidthCount,c=(l-s)/(h+(h-1)*u);c=Math.max(c,0),Object(m["each"])(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,l-=i+u*i,h--}else{var i=c;e&&ei&&(i=n),i!==c&&(t.width=i,l-=i+u*i,h--)}})),c=(l-s)/(h+(h-1)*u),c=Math.max(c,0);var f,d=0;Object(m["each"])(i,(function(t,e){t.width||(t.width=c),f=t,d+=t.width*(1+u)})),f&&(d-=f.width*u);var p=-d/2;Object(m["each"])(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:p,width:t.width},p+=t.width*(1+u)}))})),n}function Wx(t,e,n){if(t&&e){var i=t[zx(e)];return null!=i&&null!=n?i[Bx(n)]:i}}function qx(t,e){var n=Vx(t,e),i=Gx(n);Object(m["each"])(n,(function(t){var e=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),o=Bx(t),a=i[zx(r)][o],s=a.offset,u=a.width;e.setLayout({bandWidth:a.bandWidth,offset:s,size:u})}))}function Zx(t){return{seriesType:t,plan:Yp(),reset:function(t){if(Yx(t)){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),r=n.getOtherAxis(i),o=e.getDimensionIndex(e.mapDimension(r.dim)),a=e.getDimensionIndex(e.mapDimension(i.dim)),s=t.get("showBackground",!0),u=e.mapDimension(r.dim),l=e.getCalculationInfo("stackResultDimension"),h=ax(e,u)&&!!e.getCalculationInfo("stackedOnSeries"),c=r.isHorizontal(),f=$x(i,r),d=Xx(t),p=t.get("barMinHeight")||0,g=l&&e.getDimensionIndex(l),m=e.getLayout("size"),v=e.getLayout("offset");return{progress:function(t,e){var i,r=t.count,u=d&&Px(3*r),l=d&&s&&Px(3*r),y=d&&Px(r),b=n.master.getRect(),w=c?b.width:b.height,_=e.getStore(),x=0;while(null!=(i=t.next())){var M=_.get(h?g:o,i),S=_.get(a,i),O=f,A=void 0;h&&(A=+M-_.get(o,i));var I=void 0,k=void 0,T=void 0,C=void 0;if(c){var E=n.dataToPoint([M,S]);if(h){var D=n.dataToPoint([A,S]);O=D[0]}I=O,k=E[1]+v,T=E[0]-O,C=m,Math.abs(T)>>1;t[r][1]n&&(this._approxInterval=n);var o=Qx.length,a=Math.min(Kx(Qx,this._approxInterval,0,o),o-1);this._interval=Qx[a][1],this._minLevelUnit=Qx[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return Object(m["isNumber"])(t)?t:+fr(t)},e.prototype.contain=function(t){return Ax(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Ix(this.parse(t),this._extent)},e.prototype.scale=function(t){return kx(t,this._extent)},e.type="time",e}(Lx),Qx=[["second",lh],["minute",hh],["hour",ch],["quarter-day",6*ch],["half-day",12*ch],["day",1.2*fh],["half-week",3.5*fh],["week",7*fh],["month",31*fh],["quarter",95*fh],["half-year",dh/2],["year",dh]];function tM(t,e,n,i){var r=fr(e),o=fr(n),a=function(t){return Ah(r,t,i)===Ah(o,t,i)},s=function(){return a("year")},u=function(){return s()&&a("month")},l=function(){return u()&&a("day")},h=function(){return l()&&a("hour")},c=function(){return h()&&a("minute")},f=function(){return c()&&a("second")},d=function(){return f()&&a("millisecond")};switch(t){case"year":return s();case"month":return u();case"day":return l();case"hour":return h();case"minute":return c();case"second":return f();case"millisecond":return d()}}function eM(t,e){return t/=fh,t>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function nM(t){var e=30*fh;return t/=e,t>6?6:t>3?3:t>2?2:1}function iM(t){return t/=ch,t>12?12:t>6?6:t>3.5?4:t>2?2:1}function rM(t,e){return t/=e?hh:lh,t>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function oM(t){return gr(t,!0)}function aM(t,e,n){var i=new Date(t);switch(wh(e)){case"year":case"month":i[jh(n)](0);case"day":i[Ph(n)](1);case"hour":i[Nh(n)](0);case"minute":i[Bh(n)](0);case"second":i[zh(n)](0),i[Fh(n)](0)}return i.getTime()}function sM(t,e,n,i){var r=1e4,o=yh,a=0;function s(t,e,n,r,o,a,s){var u=new Date(e),l=e,h=u[r]();while(l1&&0===l&&o.unshift({value:o[0].value-f})}}for(l=0;l=i[0]&&b<=i[1]&&c++)}var w=(i[1]-i[0])/e;if(c>1.5*w&&f>w/1.5)break;if(l.push(v),c>w||t===o[d])break}h=[]}}}var _=Object(m["filter"])(Object(m["map"])(l,(function(t){return Object(m["filter"])(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],M=_.length-1;for(d=0;d<_.length;++d)for(var S=_[d],O=0;O0)i*=10;var o=[tr(dM(e[0]/i)*i),tr(fM(e[1]/i)*i)];this._interval=i,this._niceExtent=o}},e.prototype.calcNiceExtent=function(t){hM.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return t=gM(t)/gM(this.base),Ax(t,this._extent)},e.prototype.normalize=function(t){return t=gM(t)/gM(this.base),Ix(t,this._extent)},e.prototype.scale=function(t){return t=kx(t,this._extent),pM(this.base,t)},e.type="log",e}(gx),vM=mM.prototype;function yM(t,e){return cM(t,nr(e))}vM.getMinorTicks=hM.getMinorTicks,vM.getLabel=hM.getLabel,gx.registerClass(mM);var bM=mM,wM=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]0&&s>0&&!u&&(a=0),a<0&&s<0&&!l&&(s=0));var c=this._determinedMin,f=this._determinedMax;return null!=c&&(a=c,u=!0),null!=f&&(s=f,l=!0),{min:a,max:s,minFixed:u,maxFixed:l,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[xM[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=_M[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),_M={min:"_determinedMin",max:"_determinedMax"},xM={min:"_dataMin",max:"_dataMax"};function MM(t,e,n){var i=t.rawExtentInfo;return i||(i=new wM(t,e,n),t.rawExtentInfo=i,i)}function SM(t,e){return null==e?null:Object(m["eqNaN"])(e)?NaN:t.parse(e)}function OM(t,e){var n=t.type,i=MM(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Vx("bar",a),u=!1;if(m["each"](s,(function(t){u=u||t.getBaseAxis()===e.axis})),u){var l=Gx(s),h=AM(r,o,e,l);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function AM(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Wx(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;m["each"](a,(function(t){s=Math.min(t.offset,s)}));var u=-1/0;m["each"](a,(function(t){u=Math.max(t.offset+t.width,u)})),s=Math.abs(s),u=Math.abs(u);var l=s+u,h=e-t,c=1-(s+u)/o,f=h/c-h;return e+=f*(u/l),t-=f*(s/l),{min:t,max:e}}function IM(t,e){var n=e,i=OM(t,n),r=i.extent,o=n.get("splitNumber");t instanceof bM&&(t.base=n.get("logBase"));var a=t.type,s=n.get("interval"),u="interval"===a||"time"===a;t.setExtent(r[0],r[1]),t.calcNiceExtent({splitNumber:o,fixMin:i.fixMin,fixMax:i.fixMax,minInterval:u?n.get("minInterval"):null,maxInterval:u?n.get("maxInterval"):null}),null!=s&&t.setInterval&&t.setInterval(s)}function kM(t,e){if(e=e||t.get("type"),e)switch(e){case"category":return new Cx({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new uM({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(gx.getClass(e)||Lx)}}function TM(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}function CM(t){var e=t.getLabelModel().get("formatter"),n="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?function(e){return function(n,i){return t.scale.getFormattedLabel(n,i,e)}}(e):m["isString"](e)?function(e){return function(n){var i=t.scale.getLabel(n),r=e.replace("{value}",null!=i?i:"");return r}}(e):m["isFunction"](e)?function(e){return function(i,r){return null!=n&&(r=i.value-n),e(EM(t,i),r,null!=i.level?{level:i.level}:null)}}(e):function(e){return t.scale.getLabel(e)}}function EM(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function DM(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();n instanceof Cx?r=n.count():(i=n.getTicks(),r=i.length);var a,s=t.getLabelModel(),u=CM(t),l=1;r>40&&(l=Math.ceil(r/40));for(var h=0;ht[1]&&(t[1]=i[1])}))}var BM=function(){function t(){}return t.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},t.prototype.getCoordSysModel=function(){},t}();function zM(t){return dx(null,t)}var FM={isDimensionStacked:ax,enableDataStack:rx,getStackedDimension:sx};function VM(t,e){var n=e;e instanceof Wl||(n=new Wl(e));var i=kM(n);return i.setExtent(t[0],t[1]),IM(i,n),i}function HM(t){m["mixin"](t,BM)}function GM(t,e){return e=e||{},_l(t,null,null,"normal"!==e.state)}var UM=1e-8;function WM(t,e){return Math.abs(t-e)n&&(t=r,n=a)}if(t)return $M(t.exterior);var s=this.getBoundingRect();return[s.x+s.width/2,s.y+s.height/2]},e.prototype.getBoundingRect=function(t){var e=this._rect;if(e&&!t)return e;var n=[1/0,1/0],i=[-1/0,-1/0],r=this.geometries;return Object(m["each"])(r,(function(e){"polygon"===e.type?XM(e.exterior,n,i,t):Object(m["each"])(e.points,(function(e){XM(e,n,i,t)}))})),isFinite(n[0])&&isFinite(n[1])&&isFinite(i[0])&&isFinite(i[1])||(n[0]=n[1]=i[0]=i[1]=0),e=new Ht(n[0],n[1],i[0]-n[0],i[1]-n[1]),t||(this._rect=e),e},e.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i>1^-(1&s),u=u>>1^-(1&u),s+=r,u+=o,r=s,o=u,i.push([s/n,u/n])}return i}function oS(t,e){return t=nS(t),m["map"](m["filter"](t.features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];switch(i.type){case"Polygon":var o=i.coordinates;r.push(new JM(o[0],o.slice(1)));break;case"MultiPolygon":m["each"](i.coordinates,(function(t){t[0]&&r.push(new JM(t[0],t.slice(1)))}));break;case"LineString":r.push(new QM([i.coordinates]));break;case"MultiLineString":r.push(new QM(i.coordinates))}var a=new tS(n[e||"name"],r,n.cp);return a.properties=n,a}))}var aS=Yr();function sS(t){return"category"===t.type?lS(t):fS(t)}function uS(t,e){return"category"===t.type?cS(t,e):{ticks:m["map"](t.scale.getTicks(),(function(t){return t.value}))}}function lS(t){var e=t.getLabelModel(),n=hS(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}function hS(t,e){var n,i,r=dS(t,"labels"),o=RM(e),a=pS(r,o);return a||(m["isFunction"](o)?n=wS(t,o):(i="auto"===o?mS(t):o,n=bS(t,i)),gS(r,o,{labels:n,labelCategoryInterval:i}))}function cS(t,e){var n,i,r=dS(t,"ticks"),o=RM(e),a=pS(r,o);if(a)return a;if(e.get("show")&&!t.scale.isBlank()||(n=[]),m["isFunction"](o))n=wS(t,o,!0);else if("auto"===o){var s=hS(t,t.getLabelModel());i=s.labelCategoryInterval,n=m["map"](s.labels,(function(t){return t.tickValue}))}else i=o,n=bS(t,i,!0);return gS(r,o,{ticks:n,tickCategoryInterval:i})}function fS(t){var e=t.scale.getTicks(),n=CM(t);return{labels:m["map"](e,(function(e,i){return{level:e.level,formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}function dS(t,e){return aS(t)[e]||(aS(t)[e]=[])}function pS(t,e){for(var n=0;n40&&(s=Math.max(1,Math.floor(a/40)));for(var u=o[0],l=t.dataToCoord(u+1)-t.dataToCoord(u),h=Math.abs(l*Math.cos(i)),c=Math.abs(l*Math.sin(i)),f=0,d=0;u<=o[1];u+=s){var p=0,g=0,m=mi(n({value:u}),e.font,"center","top");p=1.3*m.width,g=1.3*m.height,f=Math.max(f,p,7),d=Math.max(d,g,7)}var v=f/h,y=d/c;isNaN(v)&&(v=1/0),isNaN(y)&&(y=1/0);var b=Math.max(0,Math.floor(Math.min(v,y))),w=aS(t.model),_=t.getExtent(),x=w.lastAutoInterval,M=w.lastTickCount;return null!=x&&null!=M&&Math.abs(x-b)<=1&&Math.abs(M-a)<=1&&x>b&&w.axisExtent0===_[0]&&w.axisExtent1===_[1]?b=x:(w.lastTickCount=a,w.lastAutoInterval=b,w.axisExtent0=_[0],w.axisExtent1=_[1]),b}function yS(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function bS(t,e,n){var i=CM(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],u=Math.max((e||0)+1,1),l=o[0],h=r.count();0!==l&&u>1&&h/u>2&&(l=Math.round(Math.ceil(l/u)*u));var c=jM(t),f=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;f&&l!==o[0]&&g(o[0]);for(var p=l;p<=o[1];p+=u)g(p);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&p-u!==o[1]&&g(o[1]),s}function wS(t,e,n){var i=t.scale,r=CM(t),o=[];return m["each"](i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var _S=[0,1],xS=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return rr(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&(n=n.slice(),MS(n,i.count())),Ji(t,_S,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&(n=n.slice(),MS(n,i.count()));var r=Ji(t,n,_S,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){t=t||{};var e=t.tickModel||this.getTickModel(),n=uS(this,e),i=n.ticks,r=Object(m["map"])(i,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this),o=e.get("alignWithLabel");return SS(this,r,o,t.clamp),r},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick"),e=t.get("splitNumber");e>0&&e<100||(e=5);var n=this.scale.getMinorTicks(e),i=Object(m["map"])(n,(function(t){return Object(m["map"])(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this);return i},t.prototype.getViewLabels=function(){return sS(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return vS(this)},t}();function MS(t,e){var n=t[1]-t[0],i=e,r=n/i/2;t[0]+=r,t[1]-=r}function SS(t,e,n,i){var r=e.length;if(t.onBand&&!n&&r){var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var u=e[r-1].tickValue-e[0].tickValue,l=(e[r-1].coord-e[0].coord)/u;Object(m["each"])(e,(function(t){t.coord-=l/2}));var h=t.scale.getExtent();a=1+h[1]-e[r-1].tickValue,o={coord:e[r-1].coord+l*a},e.push(o)}var c=s[0]>s[1];f(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift()),i&&f(s[0],e[0].coord)&&e.unshift({coord:s[0]}),f(s[1],o.coord)&&(i?o.coord=s[1]:e.pop()),i&&f(o.coord,s[1])&&e.push({coord:s[1]})}function f(t,e){return t=tr(t),e=tr(e),c?t>e:tr&&(r+=CS);var d=Math.atan2(s,a);if(d<0&&(d+=CS),d>=i&&d<=r||d+CS>=i&&d+CS<=r)return u[0]=h,u[1]=c,l-n;var p=n*Math.cos(i)+t,g=n*Math.sin(i)+e,m=n*Math.cos(r)+t,v=n*Math.sin(r)+e,y=(p-a)*(p-a)+(g-s)*(g-s),b=(m-a)*(m-a)+(v-s)*(v-s);return y0){e=e/180*Math.PI,FS.fromArray(t[0]),VS.fromArray(t[1]),HS.fromArray(t[2]),Dt.sub(GS,FS,VS),Dt.sub(US,HS,VS);var n=GS.len(),i=US.len();if(!(n<.001||i<.001)){GS.scale(1/n),US.scale(1/i);var r=GS.dot(US),o=Math.cos(e);if(o1&&Dt.copy(ZS,HS),ZS.toArray(t[1])}}}}function XS(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,FS.fromArray(t[0]),VS.fromArray(t[1]),HS.fromArray(t[2]),Dt.sub(GS,VS,FS),Dt.sub(US,HS,VS);var i=GS.len(),r=US.len();if(!(i<.001||r<.001)){GS.scale(1/i),US.scale(1/r);var o=GS.dot(e),a=Math.cos(n);if(o=u)Dt.copy(ZS,HS);else{ZS.scaleAndAdd(US,s/Math.tan(Math.PI/2-h));var c=HS.x!==VS.x?(ZS.x-VS.x)/(HS.x-VS.x):(ZS.y-VS.y)/(HS.y-VS.y);if(isNaN(c))return;c<0?Dt.copy(ZS,VS):c>1&&Dt.copy(ZS,HS)}ZS.toArray(t[1])}}}}function $S(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function KS(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=R(i[0],i[1]),o=R(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=B([],i[1],i[0],a/r),u=B([],i[1],i[2],a/o),l=B([],s,u,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],l[0],l[1]),t.bezierCurveTo(u[0],u[1],u[0],u[1],i[2][0],i[2][1])}else for(var h=1;h0&&o&&x(-c/a,0,a);var m,v,y=t[0],b=t[a-1];return w(),m<0&&M(-m,.8),v<0&&M(v,.8),w(),_(m,v,1),_(v,m,-1),w(),m<0&&S(-m),v<0&&S(v),l}function w(){m=y.rect[e]-i,v=r-b.rect[e]-b.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&M(-r*n,1)}else M(-t*n,1)}}function x(n,i,r){0!==n&&(l=!0);for(var o=i;o0)for(u=0;u0;u--){f=o[u-1]*c;x(-f,u,a)}}}function S(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i0?x(n,0,i+1):x(-n,a-i-1,a),t-=n,t<=0)return}}function nO(t,e,n,i){return eO(t,"x","width",e,n,i)}function iO(t,e,n,i){return eO(t,"y","height",e,n,i)}function rO(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Ht(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r=0&&n.attr(r.oldLayoutSelect),Object(m["indexOf"])(h,"emphasis")>=0&&n.attr(r.oldLayoutEmphasis)),ul(n,u,e,s)}else if(n.attr(u),!Cl(n).valueAnimation){var c=Object(m["retrieve2"])(n.style.opacity,1);n.style.opacity=0,ll(n,{style:{opacity:c}},e,s)}if(r.oldLayout=u,n.states.select){var f=r.oldLayoutSelect={};cO(f,u,fO),cO(f,n.states.select,fO)}if(n.states.emphasis){var d=r.oldLayoutEmphasis={};cO(d,u,fO),cO(d,n.states.emphasis,fO)}Dl(n,s,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=hO(i),o=r.oldLayout;var p={points:i.shape.points};o?(i.attr({shape:o}),ul(i,{shape:p},e)):(i.setShape(p),i.style.strokePercent=0,ll(i,{style:{strokePercent:1}},e)),r.oldLayout=p}},t}(),pO=dO,gO=Yr();function mO(t){t.registerUpdateLifecycle("series:beforeupdate",(function(t,e,n){var i=gO(e).labelManager;i||(i=gO(e).labelManager=new pO),i.clearLabels()})),t.registerUpdateLifecycle("series:layoutlabels",(function(t,e,n){var i=gO(e).labelManager;n.updatedSeries.forEach((function(t){i.addLabelsOfSeries(e.getViewOfSeriesModel(t))})),i.updateLayoutConfig(e),i.layout(e),i.processLabelsOverall()}))}function vO(t,e,n){var i=fi["d"].createCanvas(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}p_(mO);var yO=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Xn,"string"===typeof e?r=vO(e,n,i):m["isObject"](e)&&(r=e,e=r.id),o.id=e,o.dom=r;var a=r.style;return a&&(m["disableUserSelect"](r),r.onselectstart=function(){return!1},a.padding="0",a.margin="0",a.borderWidth="0"),o.painter=n,o.dpr=i,o}return p(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=vO("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,u=new Ht(0,0,0,0);function l(t){if(t.isFinite()&&!t.isZero())if(0===o.length){var e=new Ht(0,0,0,0);e.copy(t),o.push(e)}else{for(var n=!1,i=1/0,r=0,l=0;l=a)}}for(var h=this.__startIndex;h15)break}}n.prevElClipPaths&&c.restore()};if(d)if(0===d.length)s=u.__endIndex;else for(var w=f.dpr,_=0;_0&&t>i[0]){for(s=0;st)break;a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var u=a.dom;u.nextSibling?o.insertBefore(e.dom,u.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i0?xO:0),this._needsManuallyCompositing),l.__builtin__||m["logError"]("ZLevel "+u+" has been used by unkown layer "+l.id),l!==a&&(l.__used=!0,l.__startIndex!==o&&(l.__dirty=!0),l.__startIndex=o,l.incremental?l.__drawIndex=-1:l.__drawIndex=o,e(o),a=l),i.__dirty&ce&&!i.__inHover&&(l.__dirty=!0,l.incremental&&l.__drawIndex<0&&(l.__drawIndex=o))}e(o),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,m["each"](this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?m["merge"](n[t],e,!0):n[t]=e;for(var i=0;i=DO:-u>=DO),f=u>0?u%DO:u%DO+DO,d=!1;d=!!c||!Object(Qe["j"])(h)&&f>=EO===!!l;var p=t+n*CO(o),g=e+i*TO(o);this._start&&this._add("M",p,g);var m=Math.round(r*LO);if(c){var v=1/this._p,y=(l?1:-1)*(DO-v);this._add("A",n,i,m,1,+l,t+n*CO(o+y),e+i*TO(o+y)),v>.01&&this._add("A",n,i,m,0,+l,p,g)}else{var b=t+n*CO(a),w=e+i*TO(a);this._add("A",n,i,m,+d,+l,b,w)}},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("l",n,0),this._add("l",0,i),this._add("l",-n,0),this._add("Z")},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,u){for(var l=[],h=this._p,c=1;c"}function $O(t){return""}function KO(t,e){e=e||{};var n=e.newline?"\n":"";function i(t){var e=t.children,r=t.tag,o=t.attrs,a=t.text;return XO(r,o)+("style"!==r?ot(a):a||"")+(e?""+n+Object(m["map"])(e,(function(t){return i(t)})).join(n)+n:"")+$O(r)}return i(t)}function JO(t,e,n){n=n||{};var i=n.newline?"\n":"",r=" {"+i,o=i+"}",a=Object(m["map"])(Object(m["keys"])(t),(function(e){return e+r+Object(m["map"])(Object(m["keys"])(t[e]),(function(n){return n+":"+t[e][n]+";"})).join(i)+o})).join(i),s=Object(m["map"])(Object(m["keys"])(e),(function(t){return"@keyframes "+t+r+Object(m["map"])(Object(m["keys"])(e[t]),(function(n){return n+r+Object(m["map"])(Object(m["keys"])(e[t][n]),(function(i){var r=e[t][n][i];return"d"===i&&(r='path("'+r+'")'),i+":"+r+";"})).join(i)+o})).join(i)+o})).join(i);return a||s?[""].join(i):""}function QO(t){return{zrId:t,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssClassIdx:0,cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function tA(t,e,n,i){return YO("svg","root",{width:t,height:e,xmlns:GO,"xmlns:xlink":UO,version:"1.1",baseProfile:"full",viewBox:!!i&&"0 0 "+t+" "+e},n)}var eA={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},nA="transform-origin";function iA(t,e,n){var i=Object(m["extend"])({},t.shape);Object(m["extend"])(i,e),t.buildPath(n,i);var r=new jO;return r.reset(Object(Qe["f"])(t)),n.rebuildPath(r,1),r.generateStr(),r.getStr()}function rA(t,e){var n=e.originX,i=e.originY;(n||i)&&(t[nA]=n+"px "+i+"px")}var oA={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function aA(t,e){var n=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[n]=t,n}function sA(t,e,n){var i,r,o=t.shape.paths,a={};if(Object(m["each"])(o,(function(t){var e=QO(n.zrId);e.animation=!0,lA(t,{},e,!0);var o=e.cssAnims,s=e.cssNodes,u=Object(m["keys"])(o),l=u.length;if(l){r=u[l-1];var h=o[r];for(var c in h){var f=h[c];a[c]=a[c]||{d:""},a[c].d+=f.d||""}for(var d in s){var p=s[d].animation;p.indexOf(r)>=0&&(i=p)}}})),i){e.d=!1;var s=aA(a,n);return i.replace(r,s)}}function uA(t){return Object(m["isString"])(t)?eA[t]?"cubic-bezier("+eA[t]+")":Xe(t)?t:"":""}function lA(t,e,n,i){var r=t.animators,o=r.length,a=[];if(t instanceof fm){var s=sA(t,e,n);if(s)a.push(s);else if(!o)return}else if(!o)return;for(var u={},l=0;l0})).length){var C=aA(h,n);return C+" "+r[0]+" both"}}for(var v in u){s=g(u[v]);s&&a.push(s)}if(a.length){var y=n.zrId+"-cls-"+n.cssClassIdx++;n.cssNodes["."+y]={animation:a.join(",")},e["class"]=y}}var hA=Math.round;function cA(t){return t&&Object(m["isString"])(t.src)}function fA(t){return t&&Object(m["isFunction"])(t.toDataURL)}function dA(t,e,n,i){HO((function(r,o){var a="fill"===r||"stroke"===r;a&&Object(Qe["k"])(o)?IA(e,t,r,i):a&&Object(Qe["n"])(o)?kA(n,t,r,i):t[r]=o}),e,n,!1),AA(n,t,i)}function pA(t){return Object(Qe["j"])(t[0]-1)&&Object(Qe["j"])(t[1])&&Object(Qe["j"])(t[2])&&Object(Qe["j"])(t[3]-1)}function gA(t){return Object(Qe["j"])(t[4])&&Object(Qe["j"])(t[5])}function mA(t,e,n){if(e&&(!gA(e)||!pA(e))){var i=n?10:1e4;t.transform=pA(e)?"translate("+hA(e[4]*i)/i+" "+hA(e[5]*i)/i+")":Object(Qe["e"])(e)}}function vA(t,e,n){for(var i=t.points,r=[],o=0;ol?(a=null==n[f+1]?null:n[f+1].elm,WA(t,a,n,u,f)):qA(t,e,s,l))}function XA(t,e){var n=e.elm=t.elm,i=t.children,r=e.children;t!==e&&(ZA(t,e),FA(e.text)?VA(i)&&VA(r)?i!==r&&YA(n,i,r):VA(r)?(VA(t.text)&&PA(n,""),WA(n,null,r,0,r.length-1)):VA(i)?qA(n,i,0,i.length-1):VA(t.text)&&PA(n,""):t.text!==e.text&&(VA(i)&&qA(n,i,0,i.length-1),PA(n,e.text)))}function $A(t,e){if(GA(t,e))XA(t,e);else{var n=t.elm,i=RA(n);UA(e),null!==i&&(EA(i,e.elm,jA(n)),qA(i,[t],0,0))}return e}var KA=0,JA=function(){function t(t,e,n){if(this.type="svg",this.refreshHover=QA("refreshHover"),this.configLayer=QA("configLayer"),this.storage=e,this._opts=n=Object(m["extend"])({},n),this.root=t,this._id="zr"+KA++,this._oldVNode=tA(n.width,n.height),t&&!n.ssr){var i=this._viewport=document.createElement("div");i.style.cssText="position:relative;overflow:hidden";var r=this._svgDom=this._oldVNode.elm=ZO("svg");ZA(null,this._oldVNode),i.appendChild(r),t.appendChild(i)}this.resize(n.width,n.height)}return t.prototype.getType=function(){return this.type},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style="position:absolute;left:0;top:0;user-select:none",$A(this._oldVNode,t),this._oldVNode=t}},t.prototype.renderOneToVNode=function(t){return OA(t,QO(this._id))},t.prototype.renderToVNode=function(t){t=t||{};var e=this.storage.getDisplayList(!0),n=this._width,i=this._height,r=QO(this._id);r.animation=t.animation,r.willUpdate=t.willUpdate,r.compress=t.compress;var o=[],a=this._bgVNode=tI(n,i,this._backgroundColor,r);a&&o.push(a);var s=t.compress?null:this._mainVNode=YO("g","main",{},[]);this._paintList(e,r,s?s.children:o),s&&o.push(s);var u=Object(m["map"])(Object(m["keys"])(r.defs),(function(t){return r.defs[t]}));if(u.length&&o.push(YO("defs","defs",{},u)),t.animation){var l=JO(r.cssNodes,r.cssAnims,{newline:!0});if(l){var h=YO("style","stl",{},[],l);o.push(h)}}return tA(n,i,o,t.useViewBox)},t.prototype.renderToString=function(t){return t=t||{},KO(this.renderToVNode({animation:Object(m["retrieve2"])(t.cssAnimation,!0),willUpdate:!1,compress:!0,useViewBox:Object(m["retrieve2"])(t.useViewBox,!0)}),{newline:!0})},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t},t.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},t.prototype._paintList=function(t,e,n){for(var i,r,o=t.length,a=[],s=0,u=0,l=0;l=0;p--)if(c&&r&&c[p]===r[p])break;for(var g=d-1;g>p;g--)s--,i=a[s-1];for(var m=p+1;m-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},e}(Wp),rI=iI;function oI(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=xd(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a=0&&i.push(e[o])}return i.join(" ")}var sI=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return p(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Iy(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=uI,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){ku(this.childAt(0))},e.prototype.downplay=function(){Tu(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),u=o!==this._symbolType,l=r&&r.disableAnimation;if(u){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{var c=this.childAt(0);c.silent=!1;var f={scaleX:s[0]/2,scaleY:s[1]/2};l?c.attr(f):ul(c,f,a,n),pl(c)}if(this._updateCommon(t,n,s,i,r),u){c=this.childAt(0);if(!l){f={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:c.style.opacity}};c.scaleX=c.scaleY=0,c.style.opacity=0,ll(c,f,a,n)}}l&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,u,l,h,c,f,d,p=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,u=i.focus,l=i.blurScope,c=i.labelStatesModels,f=i.hoverScale,d=i.cursorStyle,h=i.emphasisDisabled),!i||t.hasItemOption){var v=i&&i.itemModel?i.itemModel:t.getItemModel(e),y=v.getModel("emphasis");o=y.getModel("itemStyle").getItemStyle(),s=v.getModel(["select","itemStyle"]).getItemStyle(),a=v.getModel(["blur","itemStyle"]).getItemStyle(),u=y.get("focus"),l=y.get("blurScope"),h=y.get("disabled"),c=wl(v),f=y.getShallow("scale"),d=v.getShallow("cursor")}var b=t.getItemVisual(e,"symbolRotate");p.attr("rotation",(b||0)*Math.PI/180||0);var w=Ty(t.getItemVisual(e,"symbolOffset"),n);w&&(p.x=w[0],p.y=w[1]),d&&p.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(p instanceof gs){var M=p.style;p.useStyle(Object(m["extend"])({image:M.image,x:M.x,y:M.y,width:M.width,height:M.height},_))}else p.__isEmptyBrush?p.useStyle(Object(m["extend"])({},_)):p.useStyle(_),p.style.decal=null,p.setColor(x,r&&r.symbolInnerColor),p.style.strokeNoScale=!0;var S=t.getItemVisual(e,"liftZ"),O=this._z2;null!=S?null==O&&(this._z2=p.z2,p.z2+=S):null!=O&&(p.z2=O,this._z2=null);var A=r&&r.useNameLabel;function I(e){return A?t.getName(e):oI(t,e)}bl(p,c,{labelFetcher:g,labelDataIndex:e,defaultText:I,inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var k=p.ensureState("emphasis");k.style=o,p.ensureState("select").style=s,p.ensureState("blur").style=a;var T=null==f||!0===f?Math.max(1.1,3/this._sizeY):isFinite(f)&&f>0?+f:1;k.scaleX=this._sizeX*T,k.scaleY=this._sizeY*T,this.setSymbolScale(1),Zu(this,u,l,h)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e,n){var i=this.childAt(0),r=Gs(this).dataIndex,o=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var a=i.getTextContent();a&&cl(a,{style:{opacity:0}},e,{dataIndex:r,removeOpt:o,cb:function(){i.removeTextContent()}})}else i.removeTextContent();cl(i,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){return ky(t.getItemVisual(e,"symbolSize"))},e}(Ni);function uI(t,e){this.parent.drift(t,e)}var lI=sI;function hI(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function cI(t){return null==t||Object(m["isObject"])(t)||(t={isIgnore:t}),t||{}}function fI(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:wl(e),cursorStyle:e.get("cursor")}}var dI=function(){function t(t){this.group=new Ni,this._SymbolCtor=t||lI}return t.prototype.updateData=function(t,e){this._progressiveEls=null,e=cI(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=fI(t),u={disableAnimation:a},l=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=l(i);if(hI(t,r,i,e)){var a=new o(t,i,s,u);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var f=r.getItemGraphicEl(c),d=l(h);if(hI(t,d,h,e)){var p=t.getItemVisual(h,"symbol")||"circle",g=f&&f.getSymbolType&&f.getSymbolType();if(!f||g&&g!==p)n.remove(f),f=new o(t,h,s,u),f.setPosition(d);else{f.updateData(t,h,s,u);var m={x:d[0],y:d[1]};a?f.attr(m):ul(f,m,i)}n.add(f),t.setItemGraphicEl(h,f)}else n.remove(f)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}),i)})).execute(),this._getSymbolPoint=l,this._data=t},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=fI(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[],n=cI(n);for(var r=t.start;r0?n=i[0]:i[1]<0&&(n=i[1]),n}function vI(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}function yI(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}function bI(t,e,n,i,r,o,a,s){for(var u=yI(t,e),l=[],h=[],c=[],f=[],d=[],p=[],g=[],m=gI(r,e,a),v=t.getLayout("points")||[],y=e.getLayout("points")||[],b=0;b=r||g<0)break;if(xI(v,y)){if(u){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,y),c=v,f=y;else{var b=v-l,w=y-h;if(b*b+w*w<.5){g+=o;continue}if(a>0){var _=g+o,x=e[2*_],M=e[2*_+1];while(x===v&&M===y&&m=i||xI(x,M))d=v,p=y;else{A=x-l,I=M-h;var C=v-l,E=x-v,D=y-h,L=M-y,R=void 0,j=void 0;if("x"===s){R=Math.abs(C),j=Math.abs(E);var P=A>0?1:-1;d=v-P*R*a,p=y,k=v+P*j*a,T=y}else if("y"===s){R=Math.abs(D),j=Math.abs(L);var N=I>0?1:-1;d=v,p=y-N*R*a,k=v,T=y+N*j*a}else R=Math.sqrt(C*C+D*D),j=Math.sqrt(E*E+L*L),O=j/(j+R),d=v-A*a*(1-O),p=y-I*a*(1-O),k=v+A*a*O,T=y+I*a*O,k=wI(k,_I(x,v)),T=wI(T,_I(M,y)),k=_I(k,wI(x,v)),T=_I(T,wI(M,y)),A=k-v,I=T-y,d=v-A*R/j,p=y-I*R/j,d=wI(d,_I(l,v)),p=wI(p,_I(h,y)),d=_I(d,wI(l,v)),p=_I(p,wI(h,y)),A=v-d,I=y-p,k=v+A*j/R,T=y+I*j/R}t.bezierCurveTo(c,f,d,p,v,y),c=k,f=T}else t.lineTo(v,y)}l=v,h=y,g+=o}return m}var SI=function(){function t(){this.smooth=0,this.smoothConstraint=!0}return t}(),OI=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return p(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new SI},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0;r--)if(!xI(n[2*r-2],n[2*r-1]))break;for(;i=0){var y=s?(f-i)*v+i:(c-n)*v+n;return s?[t,y]:[y,t]}n=c,i=f;break;case a.C:c=o[l++],f=o[l++],d=o[l++],p=o[l++],g=o[l++],m=o[l++];var b=s?Pe(n,c,d,g,t,u):Pe(i,f,p,m,t,u);if(b>0)for(var w=0;w=0){y=s?Re(i,f,p,m,_):Re(n,c,d,g,_);return s?[t,y]:[y,t]}}n=g,i=m;break}}},e}(ss),AI=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e}(SI),II=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return p(e,t),e.prototype.getDefaultShape=function(){return new AI},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0;o--)if(!xI(n[2*o-2],n[2*o-1]))break;for(;re){i?r.push(a(i,u,e)):n&&r.push(a(n,u,0),a(n,u,e));break}n&&(r.push(a(n,u,0)),n=null),r.push(u),i=u}}return r}function zI(t,e,n){var i=t.getVisual("visualMeta");if(i&&i.length&&t.count()&&"cartesian2d"===e.type){for(var r,o,a=i.length-1;a>=0;a--){var s=t.getDimensionInfo(i[a].dimension);if(r=s&&s.coordDim,"x"===r||"y"===r){o=i[a];break}}if(o){var u=e.getAxis(r),l=m["map"](o.stops,(function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),h=l.length,c=o.outerColors.slice();h&&l[0].coord>l[h-1].coord&&(l.reverse(),c.reverse());var f=BI(l,"x"===r?n.getWidth():n.getHeight()),d=f.length;if(!d&&h)return l[0].coord<0?c[1]?c[1]:l[h-1].color:c[0]?c[0]:l[0].color;var p=10,g=f[0].coord-p,v=f[d-1].coord+p,y=v-g;if(y<.001)return"transparent";m["each"](f,(function(t){t.offset=(t.coord-g)/y})),f.push({offset:d?f[d-1].offset:.5,color:c[1]||"transparent"}),f.unshift({offset:d?f[0].offset:.5,color:c[0]||"transparent"});var b=new mm(0,0,0,0,f,!0);return b[r]=g,b[r+"2"]=v,b}}}function FI(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!VI(o,e))){var a=e.mapDimension(o.dim),s={};return m["each"](o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function VI(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;ai)return!1;return!0}function HI(t,e){return isNaN(t)||isNaN(e)}function GI(t){for(var e=t.length/2;e>0;e--)if(!HI(t[2*e-2],t[2*e-1]))break;return e-1}function UI(t,e){return[t[2*e],t[2*e+1]]}function WI(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,u=-1,l=0;l=e||i>=e&&r<=e){u=l;break}s=l,i=r}else i=r;return{range:[s,u],t:(e-i)/(r-i)}}function qI(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;e0&&"bolder"===t.get(["emphasis","lineStyle","width"])){var j=d.getState("emphasis").style;j.lineWidth=+d.style.lineWidth+1}Gs(d).seriesIndex=t.seriesIndex,Zu(d,D,L,R);var P=jI(t.get("smooth")),N=t.get("smoothMonotone");if(d.setShape({smooth:P,smoothMonotone:N,connectNulls:M}),p){var B=a.getCalculationInfo("stackedOnSeries"),z=0;p.useStyle(m["defaults"](u.getAreaStyle(),{fill:k,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),B&&(z=jI(B.get("smooth"))),p.setShape({smooth:P,stackedOnSmooth:z,smoothMonotone:N,connectNulls:M}),Ku(p,t,"areaStyle"),Gs(p).seriesIndex=t.seriesIndex,Zu(p,D,L,R)}var F=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=F)})),this._polyline.onHoverStateChange=F,this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=l,this._step=I,this._valueOrigin=b,t.get("triggerLineEvent")&&(this.packEventData(t,d),p&&this.packEventData(t,p))},e.prototype.packEventData=function(t,e){Gs(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=Zr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var u=a[2*o],l=a[2*o+1];if(isNaN(u)||isNaN(l))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(u,l))return;var h=t.get("zlevel")||0,c=t.get("z")||0;s=new lI(r,o),s.x=u,s.y=l,s.setZ(h,c);var f=s.getSymbolPath().getTextContent();f&&(f.zlevel=h,f.z=c,f.z2=this._polyline.z2+1),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else pv.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=Zr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else pv.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;bu(this._polyline,t),e&&bu(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new OI({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new II({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,u=s.get("animationDuration");m["isFunction"](u)&&(u=u(null));var l=s.get("animationDelay")||0,h=m["isFunction"](l)?l(null):l;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],f=void 0,d=void 0,p=void 0;if(n)if(r){var g=n,v=e.pointToCoord(c);i?(f=g.startAngle,d=g.endAngle,p=-v[1]/180*Math.PI):(f=g.r0,d=g.r,p=v[0])}else{var y=n;i?(f=y.x,d=y.x+y.width,p=t.x):(f=y.y+y.height,d=y.y,p=t.y)}var b=d===f?0:(p-f)/(d-f);a&&(b=1-b);var w=m["isFunction"](l)?l(o):u*b+h,_=s.getSymbolPath(),x=_.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:w}),x&&x.animateFrom({style:{opacity:0}},{duration:300,delay:w}),_.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e,n){var i=t.getModel("endLabel");if(qI(t)){var r=t.getData(),o=this._polyline,a=r.getLayout("points");if(!a)return o.removeTextContent(),void(this._endLabel=null);var s=this._endLabel;s||(s=this._endLabel=new Hs({z2:200}),s.ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var u=GI(a);u>=0&&(bl(o,wl(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:u,defaultText:function(t,e,n){return null!=n?aI(r,n):oI(r,t)},enableTextSetter:!0},YI(i,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,u=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var l=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),f=o.get("precision"),d=o.get("distance")||0,p=a.getBaseAxis(),g=p.isHorizontal(),m=p.inverse,v=e.shape,y=m?g?v.x:v.y+v.height:g?v.x+v.width:v.y,b=(g?d:0)*(m?-1:1),w=(g?0:-d)*(m?-1:1),_=g?"x":"y",x=WI(l,y,_),M=x.range,S=M[1]-M[0],O=void 0;if(S>=1){if(S>1&&!c){var A=UI(l,M[0]);s.attr({x:A[0]+b,y:A[1]+w}),r&&(O=h.getRawValue(M[0]))}else{A=u.getPointOn(y,_);A&&s.attr({x:A[0]+b,y:A[1]+w});var I=h.getRawValue(M[0]),k=h.getRawValue(M[1]);r&&(O=oo(n,f,I,k,x.t))}i.lastFrameIndex=M[0]}else{var T=1===t||i.lastFrameIndex>0?M[0]:0;A=UI(l,T);r&&(O=h.getRawValue(T)),s.attr({x:A[0]+b,y:A[1]+w})}r&&Cl(s).setLabelText(O)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o,a){var s=this._polyline,u=this._polygon,l=t.hostModel,h=bI(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),c=h.current,f=h.stackedOnCurrent,d=h.next,p=h.stackedOnNext;if(r&&(c=NI(h.current,n,r,a),f=NI(h.stackedOnCurrent,n,r,a),d=NI(h.next,n,r,a),p=NI(h.stackedOnNext,n,r,a)),RI(c,d)>3e3||u&&RI(f,p)>3e3)return s.stopAnimation(),s.setShape({points:d}),void(u&&(u.stopAnimation(),u.setShape({points:d,stackedOnPoints:p})));s.shape.__points=h.current,s.shape.points=c;var g={shape:{points:d}};h.current!==c&&(g.shape.__points=h.next),s.stopAnimation(),ul(s,g,l),u&&(u.setShape({points:c,stackedOnPoints:f}),u.stopAnimation(),ul(u,{shape:{stackedOnPoints:p}},l),s.shape.points!==u.shape.points&&(u.shape.points=s.shape.points));for(var m=[],v=h.status,y=0;ye&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),u=o.getOtherAxis(s),l=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(l[1]-l[0])*(h||1),f=Math.round(a/c);if(isFinite(f)&&f>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/f));var d=void 0;Object(m["isString"])(r)?d=JI[r]:Object(m["isFunction"])(r)&&(d=r),d&&t.setData(i.downSample(i.mapDimension(u.dim),1/f,d,QI))}}}}}function ek(t){t.registerChartView($I),t.registerSeriesModel(rI),t.registerLayout(KI("line",!0)),t.registerVisual({seriesType:"line",reset:function(t){var e=t.getData(),n=t.getModel("lineStyle").getLineStyle();n&&!n.stroke&&(n.stroke=e.getVisual("style").fill),e.setVisual("legendLineStyle",n)}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,tk("line"))}var nk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.getInitialData=function(t,e){return dx(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t,e,n){var i=this.coordinateSystem;if(i&&i.clampData){var r=i.clampData(t),o=i.dataToPoint(r);if(n)Object(m["each"])(i.getAxes(),(function(t,n){if("category"===t.type&&null!=e){var i=t.getTicksCoords(),a=r[n],s="x1"===e[n]||"y1"===e[n];if(s&&(a+=1),i.length<2)return;if(2===i.length)return void(o[n]=t.toGlobalCoord(t.getExtent()[s?1:0]));for(var u=void 0,l=void 0,h=1,c=0;ca){l=(f+u)/2;break}1===c&&(h=d-i[0].tickValue)}null==l&&(u?u&&(l=i[i.length-1].coord):l=i[0].coord),o[n]=t.toGlobalCoord(l)}}));else{var a=this.getData(),s=a.getLayout("offset"),u=a.getLayout("size"),l=i.getBaseAxis().isHorizontal()?0:1;o[l]+=s+u/2}return o}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Wp);Wp.registerClass(nk);var ik=nk,rk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.getInitialData=function(){return dx(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=$l(ik.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(ik),ok=rk,ak=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return t}(),sk=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return p(e,t),e.prototype.getDefaultShape=function(){return new ak},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,u=e.startAngle,l=e.endAngle,h=e.clockwise,c=2*Math.PI,f=h?l-uMath.PI/2&&h<1.5*Math.PI&&(h-=Math.PI),t.setTextConfig({rotation:h})}}function ck(t,e,n){return e*Math.sin(t)*(n?-1:1)}function fk(t,e,n){return e*Math.cos(t)*(n?1:-1)}function dk(t,e,n){var i=t.get("borderRadius");if(null==i)return n?{cornerRadius:0}:null;Object(m["isArray"])(i)||(i=[i,i,i,i]);var r=Math.abs(e.r||0-e.r0||0);return{cornerRadius:Object(m["map"])(i,(function(t){return wi(t,r)}))}}var pk=Math.max,gk=Math.min;function mk(t,e){var n=t.getArea&&t.getArea();if(EI(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}var vk=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return p(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._progressiveEls=[],this._incrementalRenderLarge(t,e)},e.prototype.eachRendered=function(t){ov(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,u=t.coordinateSystem,l=u.getBaseAxis();"cartesian2d"===u.type?r=l.isHorizontal():"polar"===u.type&&(r="angle"===l.dim);var h=t.isAnimationEnabled()?t:null,c=wk(t,u);c&&this._enableRealtimeSort(c,a,n);var f=t.get("clip",!0)||c,d=mk(u,a);o.removeClipPath();var p=t.get("roundCap",!0),g=t.get("showBackground",!0),m=t.getModel("backgroundStyle"),v=m.get("borderRadius")||0,y=[],b=this._backgroundEls,w=i&&i.isInitSort,_=i&&"changeAxisOrder"===i.type;function x(t){var e=Ak[u.type](a,t),n=Nk(u,r,e);return n.useStyle(m.getItemStyle()),"cartesian2d"===u.type?n.setShape("r",v):n.setShape("cornerRadius",v),y[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=Ak[u.type](a,e,n);if(g&&x(e),a.hasValue(e)&&Ok[u.type](i)){var s=!1;f&&(s=yk[u.type](d,i));var m=bk[u.type](t,a,e,i,r,h,l.model,!1,p);c&&(m.forceLabelAnimation=!0),Tk(m,a,e,n,i,t,r,"polar"===u.type),w?m.attr({shape:i}):c?_k(c,h,m,i,e,r,!1,!1):ll(m,{shape:i},t,e),a.setItemGraphicEl(e,m),o.add(m),m.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),M=Ak[u.type](a,e,i);if(g){var S=void 0;0===b.length?S=x(n):(S=b[n],S.useStyle(m.getItemStyle()),"cartesian2d"===u.type?S.setShape("r",v):S.setShape("cornerRadius",v),y[e]=S);var O=Ak[u.type](a,e),A=Pk(r,O,u);ul(S,{shape:A},h,e)}var I=s.getItemGraphicEl(n);if(a.hasValue(e)&&Ok[u.type](M)){var k=!1;if(f&&(k=yk[u.type](d,M),k&&o.remove(I)),I?pl(I):I=bk[u.type](t,a,e,M,r,h,l.model,!!I,p),c&&(I.forceLabelAnimation=!0),_){var T=I.getTextContent();if(T){var C=Cl(T);null!=C.prevValue&&(C.prevValue=C.value)}}else Tk(I,a,e,i,M,t,r,"polar"===u.type);w?I.attr({shape:M}):c?_k(c,h,I,M,e,r,!0,_):ul(I,{shape:M},t,e,null),a.setItemGraphicEl(e,I),I.ignore=k,o.add(I)}else o.remove(I)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&dl(n,t,e)})).execute();var M=this._backgroundGroup||(this._backgroundGroup=new Ni);M.removeAll();for(var S=0;So)return!0;o=l}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){dl(e,t,Gs(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(pv),yk={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=pk(e.x,t.x),s=gk(e.x+e.width,r),u=pk(e.y,t.y),l=gk(e.y+e.height,o),h=sr?s:a,e.y=c&&u>o?l:u,e.width=h?0:s-a,e.height=c?0:l-u,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=gk(e.r,t.r),o=pk(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},bk={cartesian2d:function(t,e,n,i,r,o,a,s,u){var l=new Ss({shape:Object(m["extend"])({},i),z2:1});if(l.__dataIndex=n,l.name="item",o){var h=l.shape,c=r?"height":"width";h[c]=0}return l},polar:function(t,e,n,i,r,o,a,s,u){var l=!r&&u?uk:Vg,h=new l({shape:i,z2:1});h.name="item";var c=kk(r);if(h.calculateTextPosition=lk(c,{isRoundCap:l===uk}),o){var f=h.shape,d=r?"r":"endAngle",p={};f[d]=r?i.r0:i.startAngle,p[d]=i[d],(s?ul:ll)(h,{shape:p},o)}return h}};function wk(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}function _k(t,e,n,i,r,o,a,s){var u,l;o?(l={x:i.x,width:i.width},u={y:i.y,height:i.height}):(l={y:i.y,height:i.height},u={x:i.x,width:i.width}),s||(a?ul:ll)(n,{shape:u},e,r,null);var h=e?t.baseAxis.model:null;(a?ul:ll)(n,{shape:l},h,r)}function xk(t,e){for(var n=0;n0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}}};function Ik(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}function kk(t){return function(t){var e=t?"Arc":"Angle";return function(t){switch(t){case"start":case"insideStart":case"end":case"insideEnd":return t+e;default:return t}}}(t)}function Tk(t,e,n,i,r,o,a,s){var u=e.getItemVisual(n,"style");if(s){if(!o.get("roundCap")){var l=t.shape,h=dk(i.getModel("itemStyle"),l,!0);Object(m["extend"])(l,h),t.setShape(l)}}else{var c=i.get(["itemStyle","borderRadius"])||0;t.setShape("r",c)}t.useStyle(u);var f=i.getShallow("cursor");f&&t.attr("cursor",f);var d=s?a?r.r>=r.r0?"endArc":"startArc":r.endAngle>=r.startAngle?"endAngle":"startAngle":a?r.height>=0?"bottom":"top":r.width>=0?"right":"left",p=wl(i);bl(t,p,{labelFetcher:o,labelDataIndex:n,defaultText:oI(o.getData(),n),inheritColor:u.fill,defaultOpacity:u.opacity,defaultOutsidePosition:d});var g=t.getTextContent();if(s&&g){var v=i.get(["label","position"]);t.textConfig.inside="middle"===v||null,hk(t,"outside"===v?d:v,kk(a),i.get(["label","rotate"]))}El(g,p,o.getRawValue(n),(function(t){return aI(e,t)}));var y=i.getModel(["emphasis"]);Zu(t,y.get("focus"),y.get("blurScope"),y.get("disabled")),Ku(t,i),Ik(r)&&(t.style.fill="none",t.style.stroke="none",Object(m["each"])(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}function Ck(t,e){var n=t.get(["itemStyle","borderColor"]);if(!n||"none"===n)return 0;var i=t.get(["itemStyle","borderWidth"])||0,r=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),o=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(i,r,o)}var Ek=function(){function t(){}return t}(),Dk=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return p(e,t),e.prototype.getDefaultShape=function(){return new Ek},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.baseDimIdx,r=1-this.baseDimIdx,o=[],a=[],s=this.barWidth,u=0;u=0?n:null}),30,!1);function jk(t,e,n){for(var i=t.baseDimIdx,r=1-i,o=t.shape.points,a=t.largeDataIndices,s=[],u=[],l=t.barWidth,h=0,c=o.length/3;h=s[0]&&e<=s[0]+u[0]&&n>=s[1]&&n<=s[1]+u[1])return a[h]}return-1}function Pk(t,e,n){if(EI(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}r=n.getArea();var o=e;return{cx:r.cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}function Nk(t,e,n){var i="polar"===t.type?Vg:Ss;return new i({shape:Pk(e,n,t),silent:!0,z2:0})}var Bk=vk;function zk(t){t.registerChartView(Bk),t.registerSeriesModel(ok),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,m["curry"](qx,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Zx("bar")),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,tk("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))}var Fk=2*Math.PI,Vk=Math.PI/180;function Hk(t,e){return sc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Gk(t,e){var n=Hk(t,e),i=t.get("center"),r=t.get("radius");m["isArray"](r)||(r=[0,r]);var o,a,s=Qi(n.width,e.getWidth()),u=Qi(n.height,e.getHeight()),l=Math.min(s,u),h=Qi(r[0],l/2),c=Qi(r[1],l/2),f=t.coordinateSystem;if(f){var d=f.dataToPoint(i);o=d[0]||0,a=d[1]||0}else m["isArray"](i)||(i=[i,i]),o=Qi(i[0],s)+n.x,a=Qi(i[1],u)+n.y;return{cx:o,cy:a,r0:h,r:c}}function Uk(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=Hk(t,n),o=Gk(t,n),a=o.cx,s=o.cy,u=o.r,l=o.r0,h=-t.get("startAngle")*Vk,c=t.get("minAngle")*Vk,f=0;e.each(i,(function(t){!isNaN(t)&&f++}));var d=e.getSum(i),p=Math.PI/(d||f)*2,g=t.get("clockwise"),m=t.get("roseType"),v=t.get("stillShowZeroSum"),y=e.getDataExtent(i);y[0]=0;var b=Fk,w=0,_=h,x=g?1:-1;if(e.setLayout({viewRect:r,r:u}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:a,cy:s,r0:l,r:m?NaN:u});else{i="area"!==m?0===d&&v?p:t*p:Fk/f,in?a:o,h=Math.abs(u.label.y-n);if(h>=l.maxY){var c=u.label.x-e-u.len2*r,f=i+u.len,p=Math.abs(c)t.unconstrainedWidth?null:d:null;i.setStyle("width",p)}var g=i.getBoundingRect();o.width=g.width;var m=(i.style.margin||0)+2.1;o.height=g.height+m,o.y-=(o.height-c)/2}}}function $k(t){return"center"===t.position}function Kk(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*qk,s=i.getLayout("viewRect"),u=i.getLayout("r"),l=s.width,h=s.x,c=s.y,f=s.height;function d(t){t.ignore=!0}function p(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,f=s.getTextContent(),g=s.getTextGuideLine(),v=i.getItemModel(t),y=v.getModel("label"),b=y.get("position")||v.get(["emphasis","label","position"]),w=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Qi(y.get("edgeDistance"),l),M=y.get("bleedMargin"),S=v.getModel("labelLine"),O=S.get("length");O=Qi(O,l);var A=S.get("length2");if(A=Qi(A,l),Math.abs(c.endAngle-c.startAngle)0?"right":"left":D>0?"left":"right"}var V=Math.PI,H=0,G=y.get("rotate");if(Object(m["isNumber"])(G))H=G*(V/180);else if("center"===b)H=0;else if("radial"===G||!0===G){var U=D<0?-E+V:-E;H=U}else if("tangential"===G&&"outside"!==b&&"outer"!==b){var W=Math.atan2(D,L);W<0&&(W=2*V+W);var q=L>0;q&&(W=V+W),H=W-V}if(o=!!H,f.x=I,f.y=k,f.rotation=H,f.setStyle({verticalAlign:"middle"}),R){f.setStyle({align:C});var Z=f.states.select;Z&&(Z.x+=f.x,Z.y+=f.y)}else{var Y=f.getBoundingRect().clone();Y.applyTransform(f.getComputedTransform());var X=(f.style.margin||0)+2.1;Y.y-=X/2,Y.height+=X,r.push({label:f,labelLine:g,position:b,len:O,len2:A,minTurnAngle:S.get("minTurnAngle"),maxSurfaceAngle:S.get("maxSurfaceAngle"),surfaceNormal:new Dt(D,L),linePoints:T,textAlign:C,labelDistance:w,labelAlignTo:_,edgeDistance:x,bleedMargin:M,rect:Y,unconstrainedWidth:Y.width,labelStyleWidth:f.style.width})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&Yk(r,e,n,u,l,f,h,c);for(var g=0;g0){for(var u=o.getItemLayout(0),l=1;isNaN(u&&u.startAngle)&&l=i.r0}},e.type="pie",e}(pv),tT=Qk;function eT(t,e,n){e=Object(m["isArray"])(e)&&{coordDimensions:e}||Object(m["extend"])({encodeDefine:t.getEncode()},e);var i=t.getSource(),r=$_(i,e).dimensions,o=new Y_(r,t);return o.initData(i,n),o}var nT=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){var e=this._getRawData();return e.indexOfName(t)>=0},t.prototype.indexOfName=function(t){var e=this._getDataWithEncodedVisual();return e.indexOfName(t)},t.prototype.getItemVisual=function(t,e){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,e)},t}(),iT=nT,rT=Yr(),oT=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new iT(m["bind"](this.getData,this),m["bind"](this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return eT(this,{coordDimensions:["value"],encodeDefaulter:m["curry"](Rc,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=rT(n),r=i.seats;if(!r){var o=[];n.each(n.mapDimension("value"),(function(t){o.push(t)})),r=i.seats=ar(o,n.hostModel.get("percentPrecision"))}var a=t.prototype.getDataParams.call(this,e);return a.percent=r[e]||0,a.$vars.push("percent"),a},e.prototype._defaultLabelLine=function(t){Ir(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Wp),aT=oT;function sT(t){return{seriesType:t,reset:function(t,e){var n=t.getData();n.filterSelf((function(t){var e=n.mapDimension("value"),i=n.get(e,t);return!(Object(m["isNumber"])(i)&&!isNaN(i)&&i<0)}))}}}function uT(t){t.registerChartView(tT),t.registerSeriesModel(aT),hy("pie",t.registerAction),t.registerLayout(Object(m["curry"])(Uk,"pie")),t.registerProcessor(Wk("pie")),t.registerProcessor(sT("pie"))}var lT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return p(e,t),e.prototype.getInitialData=function(t,e){return dx(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(Wp),hT=lT,cT=4,fT=function(){function t(){}return t}(),dT=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return p(e,t),e.prototype.getDefaultShape=function(){return new fT},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,e){var n,i=e.points,r=e.size,o=this.symbolProxy,a=o.shape,s=t.getContext?t.getContext():t,u=s&&r[0]=0;s--){var u=2*s,l=i[u]-o/2,h=i[u+1]-a/2;if(t>=l&&e>=h&&t<=l+o&&e<=h+a)return s}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();if(t=n[0],e=n[1],i.contain(t,e)){var r=this.hoverDataIdx=this.findDataIndex(t,e);return r>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.points,i=e.size,r=i[0],o=i[1],a=1/0,s=1/0,u=-1/0,l=-1/0,h=0;h=0&&(u.dataIndex=n+(t.startIndex||0))}))},t.prototype.remove=function(){this._clear()},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),gT=pT,mT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._updateSymbolDraw(i,t);r.updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData(),r=this._updateSymbolDraw(i,t);r.incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var r=KI("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext,r=i.large;return n&&r===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=r?new gT:new pI,this._isLargeDraw=r,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(pv),vT=mT,yT=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(vc),bT=yT,wT=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Jr).models[0]},e.type="cartesian2dAxis",e}(vc);m["mixin"](wT,BM);var _T={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},xT=m["merge"]({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},_T),MT=m["merge"]({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},_T),ST=m["merge"]({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},MT),OT=m["defaults"]({logBase:10},MT),AT={category:xT,value:MT,time:ST,log:OT},IT={value:1,category:1,time:1,log:1};function kT(t,e,n,i){Object(m["each"])(IT,(function(r,o){var a=Object(m["merge"])(Object(m["merge"])({},AT[o],!0),i,!0),s=function(t){function n(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e+"Axis."+o,n}return p(n,t),n.prototype.mergeDefaultAndTheme=function(t,e){var n=hc(this),i=n?fc(t):{},r=e.getTheme();Object(m["merge"])(t,r.get(o+"Axis")),Object(m["merge"])(t,this.getDefaultOption()),t.type=TT(t),n&&cc(t,i,n)},n.prototype.optionUpdated=function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=bx.createByAxisModel(this))},n.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},n.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},n.type=e+"Axis."+o,n.defaultOption=a,n}(n);t.registerComponentModel(s)})),t.registerSubTypeDefaulter(e+"Axis",TT)}function TT(t){return t.type||(t.data?"category":"value")}var CT=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return m["map"](this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),m["filter"](this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),ET=CT,DT=["x","y"];function LT(t){return"interval"===t.type||"time"===t.type}var RT=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=DT,e}return p(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(LT(t)&<(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var u=(o[0]-r[0])/a,l=(o[1]-r[1])/s,h=r[0]-n[0]*u,c=r[1]-i[0]*l,f=this._transform=[u,0,0,l,h,c];this._invTransform=Tt([],f)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,e){var n=this.dataToPoint(t),i=this.dataToPoint(e),r=this.getArea(),o=new Ht(n[0],n[1],i[0]-n[0],i[1]-n[1]);return r.intersect(o)},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return z(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i,e)),n[1]=a.toGlobalCoord(a.dataToCoord(r,e)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return e=e||[],e[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){var n=[];if(this._invTransform)return z(n,t,this._invTransform);var i=this.getAxis("x"),r=this.getAxis("y");return n[0]=i.coordToData(i.toLocalCoord(t[0]),e),n[1]=r.coordToData(r.toLocalCoord(t[1]),e),n},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Ht(n,i,r,o)},e}(ET),jT=RT,PT=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return p(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(OS),NT=PT;function BT(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,u=a?"onZero":s,l=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],f={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,p="x"===l?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));p[f.onZero]=Math.max(Math.min(g,p[1]),p[0])}o.position=["y"===l?p[f[u]]:c[0],"x"===l?p[f[u]]:c[3]],o.rotation=Math.PI/2*("x"===l?0:1);var v={top:-1,bottom:1,left:-1,right:1};o.labelDirection=o.tickDirection=o.nameDirection=v[s],o.labelOffset=a?p[f[s]]-p[f.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),m["retrieve"](n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===u?-y:y,o.z2=1,o}function zT(t){return"cartesian2d"===t.get("coordinateSystem")}function FT(t){var e={xAxisModel:null,yAxisModel:null};return m["each"](e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Jr).models[0];e[i]=o})),e}var VT=Math.log;function HT(t,e,n){var i=Lx.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,s=i.getInterval.call(n),u=OM(t,e),l=u.extent,h=u.fixMin,c=u.fixMax;if("log"===t.type){var f=VT(t.base);l=[VT(l[0])/f,VT(l[1])/f]}t.setExtent(l[0],l[1]),t.calcNiceExtent({splitNumber:a,fixMin:h,fixMax:c});var d=i.getExtent.call(t);h&&(l[0]=d[0]),c&&(l[1]=d[1]);var p=i.getInterval.call(t),g=l[0],m=l[1];if(h&&c)p=(m-g)/a;else if(h){m=l[0]+p*a;while(ml[0]&&isFinite(g)&&isFinite(l[0]))p=xx(p),g=l[1]-p*a}else{var v=t.getTicks().length-1;v>a&&(p=xx(p));var y=p*a;m=Math.ceil(l[1]/p)*p,g=tr(m-y),g<0&&l[0]>=0?(g=0,m=tr(y)):m>0&&l[1]<=0&&(m=0,g=-tr(y))}var b=(r[0].value-o[0].value)/s,w=(r[a].value-o[a].value)/s;i.setExtent.call(t,g+p*b,m+p*w),i.setInterval.call(t,p),(b||w)&&i.setNiceExtent.call(t,g+p,m-p)}var GT=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=DT,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;function i(t){var e,n=Object(m["keys"])(t),i=n.length;if(i){for(var r=[],o=i-1;o>=0;o--){var a=+n[o],s=t[a],u=s.model,l=s.scale;wx(l)&&u.get("alignTicks")&&null==u.get("interval")?r.push(s):(IM(l,u),wx(l)&&(e=s))}r.length&&(e||(e=r.pop(),IM(e.scale,e.model)),Object(m["each"])(r,(function(t){HT(t.scale,t.model,e.scale)})))}}this._updateScale(t,this.model),i(n.x),i(n.y);var r={};Object(m["each"])(n.x,(function(t){WT(n,"y",t,r)})),Object(m["each"])(n.y,(function(t){WT(n,"x",t,r)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=sc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){Object(m["each"])(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),ZT(t,e?o.x:o.y)}))}s(),r&&(Object(m["each"])(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=DM(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),Object(m["each"])(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}Object(m["isObject"])(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i0?"top":"bottom",i="center"):hr(o-XT)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),KT={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],u=[o[1],0],l=s[0]>u[0];a&&(z(s,s,a),z(u,u,a));var h=Object(m["extend"])({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new nm({shape:{x1:s[0],y1:s[1],x2:u[0],y2:u[1]},style:h,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});Vm(c.shape,c.style.lineWidth),c.anid="line",n.add(c);var f=e.get(["axisLine","symbol"]);if(null!=f){var d=e.get(["axisLine","symbolSize"]);Object(m["isString"])(f)&&(f=[f,f]),(Object(m["isString"])(d)||Object(m["isNumber"])(d))&&(d=[d,d]);var p=Ty(e.get(["axisLine","symbolOffset"])||0,d),g=d[0],v=d[1];Object(m["each"])([{rotate:t.rotation+Math.PI/2,offset:p[0],r:0},{rotate:t.rotation-Math.PI/2,offset:p[1],r:Math.sqrt((s[0]-u[0])*(s[0]-u[0])+(s[1]-u[1])*(s[1]-u[1]))}],(function(e,i){if("none"!==f[i]&&null!=f[i]){var r=Iy(f[i],-g/2,-v/2,g,v,h.stroke,!0),o=e.r+e.offset,a=l?u:s;r.attr({rotation:e.rotate,x:a[0]+o*Math.cos(t.rotation),y:a[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=rC(n,i,e,t),o=aC(n,i,e,t);if(QT(e,o,r),oC(n,i,e,t.tickDirection),e.get(["axisLabel","hideOverlap"])){var a=tO(Object(m["map"])(o,(function(t){return{label:t,priority:t.z2,defaultAttr:{ignore:t.ignore}}})));rO(a)}},axisName:function(t,e,n,i){var r=Object(m["retrieve"])(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),u=t.nameDirection,l=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),f=c[0]>c[1]?-1:1,d=["start"===s?c[0]-f*h:"end"===s?c[1]+f*h:(c[0]+c[1])/2,nC(s)?t.labelOffset+u*h:0],p=e.get("nameRotate");null!=p&&(p=p*XT/180),nC(s)?o=$T.innerTextLayout(t.rotation,null!=p?p:t.rotation,u):(o=JT(t.rotation,s,p||0,c),a=t.axisNameAvailableWidth,null!=a&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=l.getFont(),v=e.get("nameTruncate",!0)||{},y=v.ellipsis,b=Object(m["retrieve"])(t.nameTruncateMaxWidth,v.maxWidth,a),w=new Hs({x:d[0],y:d[1],rotation:o.rotation,silent:$T.isLabelSilent(e),style:_l(l,{text:r,font:g,overflow:"truncate",width:b,ellipsis:y,fill:l.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:l.get("align")||o.textAlign,verticalAlign:l.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(iv({el:w,componentModel:e,itemName:r}),w.__fullText=r,w.anid="name",e.get("triggerEvent")){var _=$T.makeAxisEventDataBase(e);_.targetType="axisName",_.name=r,Gs(w).eventData=_}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function JT(t,e,n,i){var r,o,a=lr(n-t),s=i[0]>i[1],u="start"===e&&!s||"start"!==e&&s;return hr(a-XT/2)?(o=u?"bottom":"top",r="center"):hr(a-1.5*XT)?(o=u?"top":"bottom",r="center"):(o="middle",r=a<1.5*XT&&a>XT/2?u?"left":"right":u?"right":"left"),{rotation:a,textAlign:r,textVerticalAlign:o}}function QT(t,e,n){if(!jM(t.axis)){var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);e=e||[],n=n||[];var o=e[0],a=e[1],s=e[e.length-1],u=e[e.length-2],l=n[0],h=n[1],c=n[n.length-1],f=n[n.length-2];!1===i?(tC(o),tC(l)):eC(o,a)&&(i?(tC(a),tC(h)):(tC(o),tC(l))),!1===r?(tC(s),tC(c)):eC(u,s)&&(r?(tC(u),tC(f)):(tC(s),tC(c)))}}function tC(t){t&&(t.ignore=!0)}function eC(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=Mt([]);return It(r,r,-t.rotation),n.applyTransform(Ot([],r,t.getLocalTransform())),i.applyTransform(Ot([],r,e.getLocalTransform())),n.intersect(i)}}function nC(t){return"middle"===t||"center"===t}function iC(t,e,n,i,r){for(var o=[],a=[],s=[],u=0;u=0||t===e}function pC(t){var e=gC(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=vC(n);null==o&&(r.status=s?"show":"hide");var u=i.getExtent().slice();u[0]>u[1]&&u.reverse(),(null==a||a>u[1])&&(a=u[1]),a0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var f=a;null!=c.color&&(f=m["defaults"]({color:c.color},a));var d=m["merge"](m["clone"](c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,showName:s,nameLocation:"end",nameGap:l,nameTextStyle:f,triggerEvent:h},!1);if(m["isString"](u)){var p=d.name;d.name=u.replace("{value}",null!=p?p:"")}else m["isFunction"](u)&&(d.name=u(d.name,d));var g=new Wl(d,null,this.ecModel);return m["mixin"](g,BM.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:m["merge"]({lineStyle:{color:"#bbb"}},GC.axisLine),axisLabel:UC(GC.axisLabel,!1),axisTick:UC(GC.axisTick,!1),splitLine:UC(GC.splitLine,!0),splitArea:UC(GC.splitArea,!0),indicator:[]},e}(vc),qC=WC,ZC=["axisLine","axisTickLabel","axisName"],YC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes(),i=m["map"](n,(function(t){var n=t.model.get("showName")?t.name:"",i=new sC(t.model,{axisName:n,position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return i}));m["each"](i,(function(t){m["each"](ZC,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),u=r.get("show"),l=o.get("show"),h=a.get("color"),c=s.get("color"),f=m["isArray"](h)?h:[h],d=m["isArray"](c)?c:[c],p=[],g=[];if("circle"===i)for(var v=n[0].getTicksCoords(),y=e.cx,b=e.cy,w=0;w3?1.4:r>1?1.2:1.1,u=i>0?s:1/s;uE(this,"zoom","zoomOnMouseWheel",t,{scale:u,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i),h=(i>0?1:-1)*(l>3?.4:l>1?.15:.05);uE(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:h,originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){if(!oE(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;uE(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})}},e}(q);function uE(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(mt(i.event),lE(t,e,n,i,r))}function lE(t,e,n,i,r){r.isAvailableBehavior=Object(m["bind"])(hE,null,n,i),t.trigger(e,r)}function hE(t,e,n){var i=n[t];return!t||i&&(!Object(m["isString"])(i)||e.event[i+"Key"])}var cE=sE;function fE(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function dE(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,u=o.max||1/0;a=Math.max(Math.min(u,a),s)}var l=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(l-1),r.y-=(i-r.y)*(l-1),r.scaleX*=l,r.scaleY*=l,r.dirty()}var pE,gE={axisPointer:1,tooltip:1,brush:1};function mE(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!gE.hasOwnProperty(i.mainType)&&r&&r.model!==n}function vE(t){if(Object(m["isString"])(t)){var e=new DOMParser;t=e.parseFromString(t,"text/xml")}var n=t;9===n.nodeType&&(n=n.firstChild);while("svg"!==n.nodeName.toLowerCase()||1!==n.nodeType)n=n.nextSibling;return n}var yE={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},bE=Object(m["keys"])(yE),wE={"alignment-baseline":"textBaseline","stop-color":"stopColor"},_E=Object(m["keys"])(wE),xE=function(){function t(){this._defs={},this._root=null}return t.prototype.parse=function(t,e){e=e||{};var n=vE(t);this._defsUsePending=[];var i=new Ni;this._root=i;var r=[],o=n.getAttribute("viewBox")||"",a=parseFloat(n.getAttribute("width")||e.width),s=parseFloat(n.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(s)&&(s=null),kE(n,i,null,!0,!1);var u,l,h=n.firstChild;while(h)this._parseNode(h,i,r,null,!1,!1),h=h.nextSibling;if(DE(this._defs,this._defsUsePending),this._defsUsePending=[],o){var c=RE(o);c.length>=4&&(u={x:parseFloat(c[0]||0),y:parseFloat(c[1]||0),width:parseFloat(c[2]),height:parseFloat(c[3])})}if(u&&null!=a&&null!=s&&(l=VE(u,{x:0,y:0,width:a,height:s}),!e.ignoreViewBox)){var f=i;i=new Ni,i.add(f),f.scaleX=f.scaleY=l.scale,f.x=l.x,f.y=l.y}return e.ignoreRootClip||null==a||null==s||i.setClipPath(new Ss({shape:{x:0,y:0,width:a,height:s}})),{root:i,width:a,height:s,viewBoxRect:u,viewBoxTransform:l,named:r}},t.prototype._parseNode=function(t,e,n,i,r,o){var a,s=t.nodeName.toLowerCase(),u=i;if("defs"===s&&(r=!0),"text"===s&&(o=!0),"defs"===s||"switch"===s)a=e;else{if(!r){var l=pE[s];if(l&&Object(m["hasOwn"])(pE,s)){a=l.call(this,t,e);var h=t.getAttribute("name");if(h){var c={name:h,namedFrom:null,svgNodeTagLower:s,el:a};n.push(c),"g"===s&&(u=c)}else i&&n.push({name:i.name,namedFrom:i,svgNodeTagLower:s,el:a});e.add(a)}}var f=ME[s];if(f&&Object(m["hasOwn"])(ME,s)){var d=f.call(this,t),p=t.getAttribute("id");p&&(this._defs[p]=d)}}if(a&&a.isGroup){var g=t.firstChild;while(g)1===g.nodeType?this._parseNode(g,a,n,u,r,o):3===g.nodeType&&o&&this._parseText(g,a),g=g.nextSibling}},t.prototype._parseText=function(t,e){var n=new hs({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});AE(e,n),kE(t,n,this._defsUsePending,!1,!1),TE(n,e);var i=n.style,r=i.fontSize;r&&r<9&&(i.fontSize=9,n.scaleX*=r/9,n.scaleY*=r/9);var o=(i.fontSize||i.fontFamily)&&[i.fontStyle,i.fontWeight,(i.fontSize||12)+"px",i.fontFamily||"sans-serif"].join(" ");i.font=o;var a=n.getBoundingRect();return this._textX+=a.width,e.add(n),n},t.internalField=function(){pE={g:function(t,e){var n=new Ni;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n},rect:function(t,e){var n=new Ss;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,e){var n=new wg;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,e){var n=new nm;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,e){var n=new Mg;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=IE(i));var r=new Xg({shape:{points:n||[]},silent:!0});return AE(e,r),kE(t,r,this._defsUsePending,!1,!1),r},polyline:function(t,e){var n,i=t.getAttribute("points");i&&(n=IE(i));var r=new Jg({shape:{points:n||[]},silent:!0});return AE(e,r),kE(t,r,this._defsUsePending,!1,!1),r},image:function(t,e){var n=new gs;return AE(e,n),kE(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Ni;return AE(e,a),kE(t,a,this._defsUsePending,!1,!0),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",a=new Ni;return AE(e,a),kE(t,a,this._defsUsePending,!1,!0),this._textX+=parseFloat(r),this._textY+=parseFloat(o),a},path:function(t,e){var n=t.getAttribute("d")||"",i=pg(n);return AE(e,i),kE(t,i,this._defsUsePending,!1,!1),i.silent=!0,i}}}(),t}(),ME={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new mm(e,n,i,r);return SE(t,o),OE(t,o),o},radialgradient:function(t){var e=parseInt(t.getAttribute("cx")||"0",10),n=parseInt(t.getAttribute("cy")||"0",10),i=parseInt(t.getAttribute("r")||"0",10),r=new ym(e,n,i);return SE(t,r),OE(t,r),r}};function SE(t,e){var n=t.getAttribute("gradientUnits");"userSpaceOnUse"===n&&(e.global=!0)}function OE(t,e){var n=t.firstChild;while(n){if(1===n.nodeType&&"stop"===n.nodeName.toLocaleLowerCase()){var i=n.getAttribute("offset"),r=void 0;r=i&&i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o={};zE(n,o,o);var a=o.stopColor||n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:a})}n=n.nextSibling}}function AE(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),Object(m["defaults"])(e.__inheritedStyle,t.__inheritedStyle))}function IE(t){for(var e=RE(t),n=[],i=0;i0;o-=2){var a=i[o],s=i[o-1],u=RE(a);switch(r=r||xt(),s){case"translate":At(r,r,[parseFloat(u[0]),parseFloat(u[1]||"0")]);break;case"scale":kt(r,r,[parseFloat(u[0]),parseFloat(u[1]||u[0])]);break;case"rotate":It(r,r,-parseFloat(u[0])*PE);break;case"skewX":var l=Math.tan(parseFloat(u[0])*PE);Ot(r,[1,0,l,1,0,0],r);break;case"skewY":var h=Math.tan(parseFloat(u[0])*PE);Ot(r,[1,h,0,1,0,0],r);break;case"matrix":r[0]=parseFloat(u[0]),r[1]=parseFloat(u[1]),r[2]=parseFloat(u[2]),r[3]=parseFloat(u[3]),r[4]=parseFloat(u[4]),r[5]=parseFloat(u[5]);break}}e.setLocalTransform(r)}}var BE=/([^\s:;]+)\s*:\s*([^:;]+)/g;function zE(t,e,n){var i=t.getAttribute("style");if(i){var r;BE.lastIndex=0;while(null!=(r=BE.exec(i))){var o=r[1],a=Object(m["hasOwn"])(yE,o)?yE[o]:null;a&&(e[a]=r[2]);var s=Object(m["hasOwn"])(wE,o)?wE[o]:null;s&&(n[s]=r[2])}}}function FE(t,e,n){for(var i=0;i0,g={api:n,geo:s,mapOrGeoModel:t,data:a,isVisualEncodedByVisualMap:p,isGeo:o,transformInfoRaw:c};"geoJSON"===s.resourceType?this._buildGeoJSON(g):"geoSVG"===s.resourceType&&this._buildSVG(g),this._updateController(t,e,n),this._updateMapSelectHandler(t,u,n,i)},t.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=m["createHashMap"](),n=m["createHashMap"](),i=this._regionsGroup,r=t.transformInfoRaw,o=t.mapOrGeoModel,a=t.data,s=t.geo.projection,u=s&&s.stream;function l(t,e){return e&&(t=e(t)),t&&[t[0]*r.scaleX+r.x,t[1]*r.scaleY+r.y]}function h(t){for(var e=[],n=!u&&s&&s.project,i=0;i=0)&&(f=r);var d=a?{normal:{align:"center",verticalAlign:"middle"}}:null;bl(e,wl(i),{labelFetcher:f,labelDataIndex:c,defaultText:n},d);var p=e.getTextContent();if(p&&(dD(p).ignore=p.ignore,e.textConfig&&a)){var g=e.getBoundingRect().clone();e.textConfig.layoutRect=g,e.textConfig.position=[(a[0]-g.x)/g.width*100+"%",(a[1]-g.y)/g.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function bD(t,e,n,i,r,o){t.data?t.data.setItemGraphicEl(o,e):Gs(e).eventData={componentType:"geo",componentIndex:r.componentIndex,geoIndex:r.componentIndex,name:n,region:i&&i.option||{}}}function wD(t,e,n,i,r){t.data||iv({el:e,componentModel:r,itemName:n,itemTooltipOption:i.get("tooltip")})}function _D(t,e,n,i,r){e.highDownSilentOnTouch=!!r.get("selectedMode");var o=i.getModel("emphasis"),a=o.get("focus");return Zu(e,a,o.get("blurScope"),o.get("disabled")),t.isGeo&&tl(e,r,n),a}function xD(t,e,n){var i,r=[];function o(){i=[]}function a(){i.length&&(r.push(i),i=[])}var s=e({polygonStart:o,polygonEnd:a,lineStart:o,lineEnd:a,point:function(t,e){isFinite(t)&&isFinite(e)&&i.push([t,e])},sphere:function(){}});return!n&&s.polygonStart(),m["each"](t,(function(t){s.lineStart();for(var e=0;e-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(Wp),ID=AD;function kD(t,e){var n={};return m["each"](t,(function(t){t.each(t.mapDimension("value"),(function(e,i){var r="ec-"+t.getName(i);n[r]=n[r]||[],isNaN(e)||n[r].push(e)}))})),t[0].map(t[0].mapDimension("value"),(function(i,r){for(var o,a="ec-"+t[0].getName(r),s=0,u=1/0,l=-1/0,h=n[a].length,c=0;c1?(d.width=f,d.height=f/b):(d.height=f,d.width=f*b),d.y=c[1]-d.height/2,d.x=c[0]-d.width/2;else{var _=t.getBoxLayoutParams();_.aspect=b,d=sc(_,{width:v,height:y})}this.setViewRect(d.x,d.y,d.width,d.height),this.setCenter(t.get("center"),e),this.setZoom(t.get("zoom"))}function VD(t,e){m["each"](e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}var HD=function(){function t(){this.dimensions=PD}return t.prototype.create=function(t,e){var n=[];function i(t){return{nameProperty:t.get("nameProperty"),aspectScale:t.get("aspectScale"),projection:t.get("projection")}}t.eachComponent("geo",(function(t,r){var o=t.get("map"),a=new zD(o+r,o,m["extend"]({nameMap:t.get("nameMap")},i(t)));a.zoomLimit=t.get("scaleLimit"),n.push(a),t.coordinateSystem=a,a.model=t,a.resize=FD,a.resize(t,e)})),t.eachSeries((function(t){var e=t.get("coordinateSystem");if("geo"===e){var i=t.get("geoIndex")||0;t.coordinateSystem=n[i]}}));var r={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();r[e]=r[e]||[],r[e].push(t)}})),m["each"](r,(function(t,r){var o=m["map"](t,(function(t){return t.get("nameMap")})),a=new zD(r,r,m["extend"]({nameMap:m["mergeAll"](o)},i(t[0])));a.zoomLimit=m["retrieve"].apply(null,m["map"](t,(function(t){return t.get("scaleLimit")}))),n.push(a),a.resize=FD,a.resize(t[0],e),m["each"](t,(function(t){t.coordinateSystem=a,VD(a,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n,i){for(var r=(t||[]).slice(),o=m["createHashMap"](),a=0;a=0;a--){var s=i[a];s.hierNode={defaultAncestor:null,ancestor:s,prelim:0,modifier:0,change:0,shift:0,i:a,thread:null},r.push(s)}}function eL(t,e){var n=t.isExpand?t.children:[],i=t.parentNode.children,r=t.hierNode.i?i[t.hierNode.i-1]:null;if(n.length){aL(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=sL(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function nL(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function iL(t){return arguments.length?t:fL}function rL(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function oL(t,e){return sc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function aL(t){var e=t.children,n=e.length,i=0,r=0;while(--n>=0){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}function sL(t,e,n,i){if(e){var r=t,o=t,a=o.parentNode.children[0],s=e,u=r.hierNode.modifier,l=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;while(s=uL(s),o=lL(o),s&&o){r=uL(r),a=lL(a),r.hierNode.ancestor=t;var f=s.hierNode.prelim+c-o.hierNode.prelim-l+i(s,o);f>0&&(cL(hL(s,t,n),t,f),l+=f,u+=f),c+=s.hierNode.modifier,l+=o.hierNode.modifier,u+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!uL(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-u),o&&!lL(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=l-h,n=t)}return n}function uL(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function lL(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function hL(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function cL(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function fL(t,e){return t.parentNode===e.parentNode?1:2}var dL=function(){function t(){this.parentPoint=[],this.childPoints=[]}return t}(),pL=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new dL},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,u="TB"===s||"BT"===s?0:1,l=1-u,h=Qi(e.forkPosition,1),c=[];c[u]=r[u],c[l]=r[l]+(a[l]-r[l])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[u]=o[u],t.lineTo(c[0],c[1]),c[u]=a[u],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var f=1;fb.x,x||(_-=Math.PI));var S=x?"left":"right",O=s.getModel("label"),A=O.get("rotate"),I=A*(Math.PI/180),k=v.getTextContent();k&&(v.setTextConfig({position:O.get("position")||S,rotation:null==A?-_:I,origin:"center"}),k.setStyle("verticalAlign","middle"))}var T=s.get(["emphasis","focus"]),C="relative"===T?m["concatArray"](a.getAncestorsIndices(),a.getDescendantIndices()):"ancestor"===T?a.getAncestorsIndices():"descendant"===T?a.getDescendantIndices():null;C&&(Gs(n).focus=C),yL(r,a,h,n,p,d,g,i),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var i=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);i&&i.hoverState===$s||bu(n.__edge,e)}})}function yL(t,e,n,i,r,o,a,s){var u=e.getModel(),l=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),f=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),p=u.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===l)e.parentNode&&e.parentNode!==n&&(g||(g=i.__edge=new sm({shape:xL(h,c,f,r,r)})),ul(g,{shape:xL(h,c,f,o,a)},t));else if("polyline"===l)if("orthogonal"===h){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var v=e.children,y=[],b=0;be&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0)){var e=this.hostTree,n=e.data.getItemModel(this.dataIndex);return n.getModel(t)}},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,e=0;e=0){var i=n.getData().tree.root,r=t.targetNode;if(m["isString"](r)&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function FL(t){var e=[];while(t)t=t.parentNode,t&&e.push(t);return e.reverse()}function VL(t,e){var n=FL(t);return m["indexOf"](n,e)>=0}function HL(t,e){var n=[];while(t){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var GL=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return p(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new Wl(n,this,this.ecModel),r=BL.createTree(e,this,o);function o(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n&&n.children.length&&n.isExpand||(t.parentModel=i),t}))}var a=0;r.eachNode("preorder",(function(t){t.depth>a&&(a=t.depth)}));var s=t.expandAndCollapse,u=s&&t.initialTreeDepth>=0?t.initialTreeDepth:a;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=u})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;while(o&&o!==r)s=o.parentNode.name+"."+s,o=o.parentNode;return gp("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=HL(i,this),n.collapsed=!i.isExpand,n},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(Wp),UL=GL;function WL(t,e,n){var i,r=[t],o=[];while(i=r.pop())if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;s=0;o--)i.push(r[o])}}function ZL(t,e){t.eachSeriesByType("tree",(function(t){YL(t,e)}))}function YL(t,e){var n=oL(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=iL((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=iL());var s=t.getData().tree.root,u=s.children[0];if(u){tL(s),WL(u,eL,a),s.hierNode.modifier=-u.hierNode.prelim,qL(u,nL);var l=u,h=u,c=u;qL(u,(function(t){var e=t.getLayout().x;eh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var f=l===h?1:a(l,h)/2,d=f-l.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===i)p=r/(h.getLayout().x+f+d),g=o/(c.depth-1||1),qL(u,(function(t){m=(t.getLayout().x+d)*p,v=(t.depth-1)*g;var e=rL(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)}));else{var y=t.getOrient();"RL"===y||"LR"===y?(g=o/(h.getLayout().x+f+d),p=r/(c.depth-1||1),qL(u,(function(t){v=(t.getLayout().x+d)*g,m="LR"===y?(t.depth-1)*p:r-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)}))):"TB"!==y&&"BT"!==y||(p=r/(h.getLayout().x+f+d),g=o/(c.depth-1||1),qL(u,(function(t){m=(t.getLayout().x+d)*p,v="TB"===y?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)})))}}}function XL(t){t.eachSeriesByType("tree",(function(t){var e=t.getData(),n=e.tree;n.eachNode((function(t){var n=t.getModel(),i=n.getModel("itemStyle").getItemStyle(),r=e.ensureUniqueItemVisual(t.dataIndex,"style");Object(m["extend"])(r,i)}))}))}function $L(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,i=e.getData().tree,r=i.getNodeByDataIndex(n);r.isExpand=!r.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e,n){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var i=e.coordinateSystem,r=YD(i,t,void 0,n);e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom)}))}))}function KL(t){t.registerChartView(ML),t.registerSeriesModel(UL),t.registerLayout(ZL),t.registerVisual(XL),$L(t)}var JL=["treemapZoomToNode","treemapRender","treemapMove"];function QL(t){for(var e=0;e1)n=n.parentNode;var r=Wc(t.ecModel,n.name||n.dataIndex+"",i);e.setVisual("decal",r)}))}var eR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return p(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};nR(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new Wl({itemStyle:r},this,e);i=t.levels=iR(i,e);var a=m["map"](i||[],(function(t){return new Wl(t,o,e)}),this),s=BL.createTree(n,this,u);function u(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=n?a[n.depth]:null;return t.parentModel=i||o,t}))}return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return gp("nameValue",{name:o,value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=HL(i,this),n.treePathInfo=n.treeAncestors,n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},m["extend"](this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=m["createHashMap"](),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){tR(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(Wp);function nR(t){var e=0;m["each"](t.children,(function(t){nR(t);var n=t.value;m["isArray"](n)&&(n=n[0]),e+=n}));var n=t.value;m["isArray"](n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),m["isArray"](t.value)?t.value[0]=n:t.value=n}function iR(t,e){var n=Ar(e.get("color")),i=Ar(e.get(["aria","decal","decals"]));if(n){var r,o;t=t||[],m["each"](t,(function(t){var e=new Wl(t),n=e.get("color"),i=e.get("decal");(e.get(["itemStyle","color"])||n&&"none"!==n)&&(r=!0),(e.get(["itemStyle","decal"])||i&&"none"!==i)&&(o=!0)}));var a=t[0]||(t[0]={});return r||(a.color=n.slice()),!o&&i&&(a.decal=i.slice()),t}}var rR=eR,oR=8,aR=8,sR=5,uR=function(){function t(t){this.group=new Ni,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=r.getModel("emphasis"),u=a.getModel("textStyle"),l=s.getModel(["itemStyle","textStyle"]),h={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,h,u),this._renderContent(t,h,a,s,u,l,i),uc(o,h.pos,h.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=Fr(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+2*oR,e.emptyItemWidth);e.totalWidth+=a+aR,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r,o,a){for(var s=0,u=e.emptyItemWidth,l=t.get(["breadcrumb","height"]),h=ac(e.pos,e.box),c=e.totalWidth,f=e.renderList,d=i.getModel("itemStyle").getItemStyle(),p=f.length-1;p>=0;p--){var g=f[p],v=g.node,y=g.width,b=g.text;c>h.width&&(c-=y-u,y=u,b=null);var w=new Xg({shape:{points:lR(s,0,y,l,p===f.length-1,0===p)},style:Object(m["defaults"])(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new Hs({style:_l(r,{text:b})}),textConfig:{position:"inside"},z2:1e4*tu,onclick:Object(m["curry"])(a,v)});w.disableLabelAnimation=!0,w.getTextContent().ensureState("emphasis").style=_l(o,{text:b}),w.ensureState("emphasis").style=d,Zu(w,i.get("focus"),i.get("blurScope"),i.get("disabled")),this.group.add(w),hR(w,t,v),s+=y+aR}},t.prototype.remove=function(){this.group.removeAll()},t}();function lR(t,e,n,i,r,o){var a=[[r?t:t-sR,e],[t+n,e],[t+n,e+i],[r?t:t-sR,e+i]];return!o&&a.splice(2,0,[t+n+sR,e+i/2]),!r&&a.push([t,e+i/2]),a}function hR(t,e,n){Gs(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&HL(n,e)}}var cR=uR,fR=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){e--,e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;imR||Math.abs(t.dy)>mR)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new Ht(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo;e-=a.x,n-=a.y;var s=xt();At(s,s,[-e,-n]),kt(s,s,[t.scale,t.scale]),At(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&tc(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2),n||(n={node:t.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new cR(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(VL(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=AR(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n,i=this.seriesModel.getViewRoot();return i.eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(pv);function AR(){return{nodeGroup:[],background:[],content:[]}}function IR(t,e,n,i,r,o,a,s,u,l){if(a){var h=a.getLayout(),c=t.getData(),f=a.getModel();if(c.setItemGraphicEl(a.dataIndex,null),h&&h.isInView){var d=h.width,p=h.height,g=h.borderWidth,v=h.invisible,y=a.getRawIndex(),b=s&&s.getRawIndex(),w=a.viewChildren,_=h.upperHeight,x=w&&w.length,M=f.getModel("itemStyle"),S=f.getModel(["emphasis","itemStyle"]),O=f.getModel(["blur","itemStyle"]),A=f.getModel(["select","itemStyle"]),I=M.get("borderRadius")||0,k=V("nodeGroup",pR);if(k){if(u.add(k),k.x=h.x||0,k.y=h.y||0,k.markRedraw(),SR(k).nodeWidth=d,SR(k).nodeHeight=p,h.isAboveViewRoot)return k;var T=V("background",gR,l,wR);T&&P(k,T,x&&h.upperLabelHeight);var C=f.getModel("emphasis"),E=C.get("focus"),D=C.get("blurScope"),L=C.get("disabled"),R="ancestor"===E?a.getAncestorsIndices():"descendant"===E?a.getDescendantIndices():E;if(x)Qu(k)&&Ju(k,!1),T&&(Ju(T,!L),c.setItemGraphicEl(a.dataIndex,T),Yu(T,R,D));else{var j=V("content",gR,l,_R);j&&N(k,j),T.disableMorphing=!0,T&&Qu(T)&&Ju(T,!1),Ju(k,!L),c.setItemGraphicEl(a.dataIndex,k),Yu(k,R,D)}return k}}}function P(e,n,i){var r=Gs(n);if(r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:d,height:p,r:I}),v)B(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,u=MR(M);u.fill=s;var l=xR(S);l.fill=S.get("borderColor");var h=xR(O);h.fill=O.get("borderColor");var c=xR(A);if(c.fill=A.get("borderColor"),i){var f=d-2*g;z(n,s,o.opacity,{x:g,y:0,width:f,height:_})}else n.removeTextContent();n.setStyle(u),n.ensureState("emphasis").style=l,n.ensureState("blur").style=h,n.ensureState("select").style=c,Ou(n)}e.add(n)}function N(e,n){var i=Gs(n);i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex;var r=Math.max(d-2*g,0),o=Math.max(p-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:r,height:o,r:I}),v)B(n);else{n.invisible=!1;var s=a.getVisual("style"),u=s.fill,l=MR(M);l.fill=u,l.decal=s.decal;var h=xR(S),c=xR(O),f=xR(A);z(n,u,s.opacity,null),n.setStyle(l),n.ensureState("emphasis").style=h,n.ensureState("blur").style=c,n.ensureState("select").style=f,Ou(n)}e.add(n)}function B(t){!t.invisible&&o.push(t)}function z(e,n,i,r){var o=f.getModel(r?yR:vR),s=Fr(f.get("name"),null),u=o.getShallow("show");bl(e,wl(f,r?yR:vR),{defaultText:u?s:null,inheritColor:n,defaultOpacity:i,labelFetcher:t,labelDataIndex:a.dataIndex});var l=e.getTextContent();if(l){var c=l.style,d=Object(m["normalizeCssArray"])(c.padding||0);r&&(e.setTextConfig({layoutRect:r}),l.disableLabelLayout=!0),l.beforeUpdate=function(){var t=Math.max((r?r.width:e.shape.width)-d[1]-d[3],0),n=Math.max((r?r.height:e.shape.height)-d[0]-d[2],0);c.width===t&&c.height===n||l.setStyle({width:t,height:n})},c.truncateMinChar=2,c.lineOverflow="truncate",F(c,r,h);var p=l.getState("emphasis");F(p?p.style:null,r,h)}}function F(e,n,i){var r=e?e.text:null;if(!n&&i.isLeafRoot&&null!=r){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+r:r}}function V(t,i,o,a){var s=null!=b&&n[t][b],u=r[t];return s?(n[t][b]=null,H(u,s)):v||(s=new i,s instanceof ta&&(s.z2=kR(o,a)),G(u,s)),e[t][y]=s}function H(t,e){var n=t[y]={};e instanceof pR?(n.oldX=e.x,n.oldY=e.y):n.oldShape=Object(m["extend"])({},e.shape)}function G(t,e){var n=t[y]={},o=a.parentNode,s=e instanceof Ni;if(o&&(!i||"drillDown"===i.direction)){var u=0,l=0,h=r.background[o.getRawIndex()];!i&&h&&h.oldShape&&(u=h.oldShape.width,l=h.oldShape.height),s?(n.oldX=0,n.oldY=l):n.oldShape={x:u,y:l,width:0,height:0}}n.fadein=!s}}function kR(t,e){return t*bR+e}var TR=OR,CR=m["each"],ER=m["isObject"],DR=-1,LR=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=m["clone"](e);this.type=i,this.mappingMethod=n,this._normalizeData=WR[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(PR(r),RR(r)):"category"===n?r.categories?jR(r):PR(r,!0):(m["assert"]("linear"!==n||r.dataExtent),PR(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return m["bind"](this._normalizeData,this)},t.listVisualTypes=function(){return m["keys"](t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){m["isObject"](t)?m["each"](t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=m["isArray"](e)?[]:m["isObject"](e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&CR(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(m["isArray"](t))t=t.slice();else{if(!ER(t))return[];var e=[];CR(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;o=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}function PR(t,e){var n=t.visual,i=[];m["isObject"](n)?CR(n,(function(t){i.push(t)})):null!=n&&i.push(n);var r={color:1,symbol:1};e||1!==i.length||r.hasOwnProperty(t.type)||(i[1]=i[0]),UR(t,i)}function NR(t){return{applyVisual:function(e,n,i){var r=this.mapValueToVisual(e);i("color",t(n("color"),r))},_normalizedToVisual:HR([0,1])}}function BR(t){var e=this.option.visual;return e[Math.round(Ji(t,[0,1],[0,e.length-1],!0))]||{}}function zR(t){return function(e,n,i){i(t,this.mapValueToVisual(e))}}function FR(t){var e=this.option.visual;return e[this.option.loop&&t!==DR?t%e.length:t]}function VR(){return this.option.visual[0]}function HR(t){return{linear:function(e){return Ji(e,t,this.option.visual,!0)},category:FR,piecewise:function(e,n){var i=GR.call(this,n);return null==i&&(i=Ji(e,t,this.option.visual,!0)),i},fixed:VR}}function GR(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var i=LR.findPieceIndex(t,n),r=n[i];if(r&&r.visual)return r.visual[this.type]}}function UR(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=m["map"](e,(function(t){var e=Je["parse"](t);return e||[0,0,0,1]}))),e}var WR={linear:function(t){return Ji(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=LR.findPieceIndex(t,e,!0);if(null!=n)return Ji(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?DR:e},fixed:m["noop"]};function qR(t,e,n){return t?e<=n:e=n.length||t===n[t.depth]){var o=rj(r,l,t,e,p,i);KR(t,o,n,i)}}))}else s=QR(l),h.fill=s}}function JR(t,e,n){var i=Object(m["extend"])({},e),r=n.designatedVisualItemStyle;return Object(m["each"])(["color","colorAlpha","colorSaturation"],(function(n){r[n]=e[n];var o=t.get(n);r[n]=null,null!=o&&(i[n]=o)})),i}function QR(t){var e=ej(t,"color");if(e){var n=ej(t,"colorAlpha"),i=ej(t,"colorSaturation");return i&&(e=Object(Je["modifyHSL"])(e,null,null,i)),n&&(e=Object(Je["modifyAlpha"])(e,n)),e}}function tj(t,e){return null!=e?Object(Je["modifyHSL"])(e,null,null,t):null}function ej(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function nj(t,e,n,i,r,o){if(o&&o.length){var a=ij(e,"color")||null!=r.color&&"none"!==r.color&&(ij(e,"colorAlpha")||ij(e,"colorSaturation"));if(a){var s=e.get("visualMin"),u=e.get("visualMax"),l=n.dataExtent.slice();null!=s&&sl[1]&&(l[1]=u);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:l,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var f=new ZR(c);return XR(f).drColorMappingBy=h,f}}}function ij(t,e){var n=t.get(e);return Object(m["isArray"])(n)&&n.length?{name:e,range:n}:null}function rj(t,e,n,i,r,o){var a=Object(m["extend"])({},e);if(r){var s=r.type,u="color"===s&&XR(r).drColorMappingBy,l="index"===u?i:"id"===u?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(l)}return a}var oj=Math.max,aj=Math.min,sj=m["retrieve"],uj=m["each"],lj=["itemStyle","borderWidth"],hj=["itemStyle","gapWidth"],cj=["upperLabel","show"],fj=["upperLabel","height"],dj={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=sc(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),u=a.size||[],l=Qi(sj(s.width,u[0]),r),h=Qi(sj(s.height,u[1]),o),c=i&&i.type,f=["treemapZoomToNode","treemapRootToNode"],d=zL(i,f,t),p="treemapRender"===c||"treemapMove"===c?i.rootRect:null,g=t.getViewRoot(),v=FL(g);if("treemapMove"!==c){var y="treemapZoomToNode"===c?_j(t,d,g,l,h):p?[p.width,p.height]:[l,h],b=a.sort;b&&"asc"!==b&&"desc"!==b&&(b="desc");var w={squareRatio:a.squareRatio,sort:b,leafDepth:a.leafDepth};g.hostTree.clearLayouts();var _={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};g.setLayout(_),pj(g,w,!1,0),_=g.getLayout(),uj(v,(function(t,e){var n=(v[e+1]||g).getValue();t.setLayout(m["extend"]({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var x=t.getData().tree.root;x.setLayout(xj(s,p,d),!0),t.setLayoutInfo(s),Mj(x,new Ht(-s.x,-s.y,r,o),v,g,0)}};function pj(t,e,n,i){var r,o;if(!t.isRemoved()){var a=t.getLayout();r=a.width,o=a.height;var s=t.getModel(),u=s.get(lj),l=s.get(hj)/2,h=Sj(s),c=Math.max(u,h),f=u-l,d=c-l;t.setLayout({borderWidth:u,upperHeight:c,upperLabelHeight:h},!0),r=oj(r-2*f,0),o=oj(o-f-d,0);var p=r*o,g=gj(t,s,p,e,n,i);if(g.length){var m={x:f,y:d,width:r,height:o},v=aj(r,o),y=1/0,b=[];b.area=0;for(var w=0,_=g.length;w<_;){var x=g[w];b.push(x),b.area+=x.getLayout().area;var M=bj(b,v,e.squareRatio);M<=y?(w++,y=M):(b.area-=b.pop().getLayout().area,wj(b,v,m,l,!1),v=aj(m.width,m.height),b.length=b.area=0,y=1/0)}if(b.length&&wj(b,v,m,l,!0),!n){var S=s.get("childrenVisibleMin");null!=S&&p=0;u--){var l=r["asc"===i?a-u-1:u].getValue();l/n*ea[1]&&(a[1]=e)}))):a=[NaN,NaN],{sum:i,dataExtent:a}}function bj(t,e,n){for(var i=0,r=1/0,o=0,a=void 0,s=t.length;oi&&(i=a));var u=t.area*t.area,l=e*e*n;return u?oj(l*i/u,u/(l*r)):1/0}function wj(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],u=["width","height"],l=n[s[o]],h=e?t.area/e:0;(r||h>n[u[a]])&&(h=n[u[a]]);for(var c=0,f=t.length;cur&&(l=ur),a=o}li&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a0&&(y[0]=-y[0],y[1]=-y[1]);var w=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var _=-Math.atan2(v[1],v[0]);l[0].8?"left":h[0]<-.8?"right":"center",f=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*p+u[0],i.y=-h[1]*g+u[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",f=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=p*w+u[0],i.y=u[1]+x,c=v[0]<0?"right":"left",i.originX=-p*w,i.originY=-x;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=b[0],i.y=b[1]+x,c="center",i.originY=-x;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-p*w+l[0],i.y=l[1]+x,c=v[0]>=0?"right":"left",i.originX=p*w,i.originY=-x;break}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||f,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Ni),gP=pP,mP=function(){function t(t){this.group=new Ni,this._LineCtor=t||gP}return t.prototype.updateData=function(t){var e=this;this._progressiveEls=null;var n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=yP(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=yP(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||vP(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[];for(var i=t.start;i0}function yP(t){var e=t.hostModel,n=e.getModel("emphasis");return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:n.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:n.get("disabled"),blurScope:n.get("blurScope"),focus:n.get("focus"),labelStatesModels:wl(e)}}function bP(t){return isNaN(t[0])||isNaN(t[1])}function wP(t){return t&&!bP(t[0])&&!bP(t[1])}var _P=mP,xP=[],MP=[],SP=[],OP=Ve,AP=P,IP=Math.abs;function kP(t,e,n){for(var i,r=t[0],o=t[1],a=t[2],s=1/0,u=n*n,l=.1,h=.1;h<=.9;h+=.1){xP[0]=OP(r[0],o[0],a[0],h),xP[1]=OP(r[1],o[1],a[1],h);var c=IP(AP(xP,e)-u);c=0?i+=l:i-=l:p>=0?i-=l:i+=l}return i}function TP(t,e){var n=[],i=We,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var u=t.getLayout(),l=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");u.__original||(u.__original=[b(u[0]),b(u[1])],u[2]&&u.__original.push(b(u[2])));var c=u.__original;if(null!=u[2]){if(y(r[0],c[0]),y(r[1],c[2]),y(r[2],c[1]),l&&"none"!==l){var f=Wj(t.node1),d=kP(r,c[0],f*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){f=Wj(t.node2),d=kP(r,c[1],f*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}y(u[0],r[0]),y(u[1],r[2]),y(u[2],r[1])}else{if(y(o[0],c[0]),y(o[1],c[1]),M(a,o[1],o[0]),D(a,a),l&&"none"!==l){f=Wj(t.node1);x(o[0],o[0],a,f*e)}if(h&&"none"!==h){f=Wj(t.node2);x(o[1],o[1],a,-f*e)}y(u[0],o[0]),y(u[1],o[1])}}))}function CP(t){return"view"===t.type}var EP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(t,e){var n=new pI,i=new _P,r=this.group;this._controller=new cE(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(CP(r)){var u={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(u):ul(s,u,t)}TP(t.getGraph(),Uj(t));var l=t.getData();o.updateData(l);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,f=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,f);var d=t.get("layout");l.graph.eachNode((function(e){var n=e.dataIndex,r=e.getGraphicEl(),o=e.getModel();if(r){r.off("drag").off("dragend");var a=o.get("draggable");a&&r.on("drag",(function(o){switch(d){case"force":c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,f),c.setFixed(n),l.setItemLayout(n,[r.x,r.y]);break;case"circular":l.setItemLayout(n,[r.x,r.y]),e.setLayout({fixed:!0},!0),Yj(t,"symbolSize",e,[o.offsetX,o.offsetY]),i.updateLayout(t);break;case"none":default:l.setItemLayout(n,[r.x,r.y]),Hj(t.getGraph(),t),i.updateLayout(t);break}})).on("dragend",(function(){c&&c.setUnfixed(n)})),r.setDraggable(a,!!o.get("cursor"));var s=o.get(["emphasis","focus"]);"adjacency"===s&&(Gs(r).focus=e.getAdjacentDataIndices())}})),l.graph.eachEdge((function(t){var e=t.getGraphicEl(),n=t.getModel().get(["emphasis","focus"]);e&&"adjacency"===n&&(Gs(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var p="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),g=l.getLayout("cx"),m=l.getLayout("cy");l.graph.eachNode((function(t){$j(t,p,g,m)})),this._firstRender=!1},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,e){var n=this;(function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))})()},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!mE(e,n,t)})),CP(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){fE(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){dE(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),TP(t.getGraph(),Uj(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=Uj(t);e.eachItemGraphicEl((function(t,e){t&&t.setSymbolScale(n)}))},e.prototype.updateLayout=function(t){TP(t.getGraph(),Uj(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(pv),DP=EP;function LP(t){return"_EC_"+t}var RP=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[LP(t)]){var i=new jP(t,e);return i.hostGraph=this,this.nodes.push(i),n[LP(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[LP(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if(m["isNumber"](t)&&(t=this.nodes[t]),m["isNumber"](e)&&(e=this.nodes[e]),t instanceof jP||(t=i[LP(t)]),e instanceof jP||(e=i[LP(e)]),t&&e){var o=t.id+"-"+e.id,a=new PP(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof jP&&(t=t.id),e instanceof jP&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof jP||(e=this._nodesMap[LP(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}m["mixin"](jP,NP("hostGraph","data")),m["mixin"](PP,NP("hostGraph","edgeData"));var BP=RP;function zP(t,e,n,i,r){for(var o=new BP(i),a=0;a "+f)),l++)}var d,p=n.get("coordinateSystem");if("cartesian2d"===p||"polar"===p)d=dx(t,n);else{var g=gf.get(p),v=g&&g.dimensions||[];m["indexOf"](v,"value")<0&&v.concat(["value"]);var y=$_(t,{coordDimensions:v,encodeDefine:n.getEncode()}).dimensions;d=new Y_(y,n),d.initData(t)}var b=new Y_(["value"],n);return b.initData(u,s),r&&r(d,b),RL({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:b},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}var FP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return p(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new iT(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),Ir(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n=t.edges||t.links||[],i=t.data||t.nodes||[],r=this;if(i&&n){Bj(this);var o=zP(i,n,this,!0,a);return m["each"](o.edges,(function(t){zj(t.node1,t.node2,this,t.dataIndex)}),this),o.data}function a(t,e){t.wrapMethod("getItemModel",(function(t){var e=r._categoriesModels,n=t.getShallow("category"),i=e[n];return i&&(i.parentModel=t.parentModel,t.parentModel=i),t}));var n=Wl.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=o,i}function o(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=o,t.getModel=i,t}))}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),u=[];return null!=a&&u.push(a),null!=s&&u.push(s),gp("nameValue",{name:u.join(" > "),value:r.value,noValue:null==r.value})}var l=Ep({series:this,dataIndex:t,multipleSeries:e});return l},e.prototype._updateCategoriesData=function(){var t=m["map"](this.option.categories||[],(function(t){return null!=t.value?t:m["extend"]({value:0},t)})),e=new Y_(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Wp),VP=FP,HP={type:"graphRoam",event:"graphRoam",update:"none"};function GP(t){t.registerChartView(DP),t.registerSeriesModel(VP),t.registerProcessor(Aj),t.registerVisual(Ij),t.registerVisual(Tj),t.registerLayout(Gj),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,Kj),t.registerLayout(tP),t.registerCoordinateSystem("graphView",{dimensions:RD.dimensions,create:nP}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},m["noop"]),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},m["noop"]),t.registerAction(HP,(function(t,e,n){e.eachComponent({mainType:"series",query:t},(function(e){var i=e.coordinateSystem,r=YD(i,t,void 0,n);e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom)}))}))}var UP=function(){function t(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return t}(),WP=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return p(e,t),e.prototype.getDefaultShape=function(){return new UP},e.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),u=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,u),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,u)},e}(ss),qP=WP;function ZP(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r),a=Qi(n[0],e.getWidth()),s=Qi(n[1],e.getHeight()),u=Qi(t.get("radius"),o/2);return{cx:a,cy:s,r:u}}function YP(t,e){var n=null==t?"":t+"";return e&&(Object(m["isString"])(e)?n=e.replace("{value}",n):Object(m["isFunction"])(e)&&(n=e(t))),n}var XP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=ZP(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,i,r){var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,u=-t.get("endAngle")/180*Math.PI,l=t.getModel("axisLine"),h=l.get("roundCap"),c=h?uk:Vg,f=l.get("show"),d=l.getModel("lineStyle"),p=d.get("width"),g=[s,u];La(g,!a),s=g[0],u=g[1];for(var v=u-s,y=s,b=[],w=0;f&&w=t&&(0===e?0:i[e-1][0])Math.PI/2&&(z+=Math.PI)):"tangential"===B?z=-O-Math.PI/2:Object(m["isNumber"])(B)&&(z=B*Math.PI/180),0===z?c.add(new Hs({style:_l(w,{text:R,x:P,y:N,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:l<-.4?"left":l>.4?"right":"center"},{inheritColor:j}),silent:!0})):c.add(new Hs({style:_l(w,{text:R,x:P,y:N,verticalAlign:"middle",align:"center"},{inheritColor:j}),silent:!0,originX:P,originY:N,rotation:z}))}if(b.get("show")&&E!==_){D=b.get("distance");D=D?D+u:u;for(var F=0;F<=x;F++){l=Math.cos(O),h=Math.sin(O);var V=new nm({shape:{x1:l*(p-D)+f,y1:h*(p-D)+d,x2:l*(p-S-D)+f,y2:h*(p-S-D)+d},silent:!0,style:T});"auto"===T.stroke&&V.setStyle({stroke:i((E+F/x)/_)}),c.add(V),O+=I}O-=I}else O+=A}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,u){var l=this.group,h=this._data,c=this._progressEls,f=[],d=t.get(["pointer","show"]),p=t.getModel("progress"),g=p.get("show"),v=t.getData(),y=v.mapDimension("value"),b=+t.get("min"),w=+t.get("max"),_=[b,w],x=[o,a];function M(e,n){var i,o=v.getItemModel(e),a=o.getModel("pointer"),s=Qi(a.get("width"),r.r),u=Qi(a.get("length"),r.r),l=t.get(["pointer","icon"]),h=a.get("offsetCenter"),c=Qi(h[0],r.r),f=Qi(h[1],r.r),d=a.get("keepAspect");return i=l?Iy(l,c-s/2,f-u,s,u,null,d):new qP({shape:{angle:-Math.PI/2,width:s,r:u,x:c,y:f}}),i.rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=p.get("roundCap"),i=n?uk:Vg,a=p.get("overlap"),l=a?p.get("width"):u/v.count(),h=a?r.r-l:r.r-(t+1)*l,c=a?r.r:r.r-t*l,f=new i({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:h,r:c}});return a&&(f.z2=w-v.get(y,t)%w),f}(g||d)&&(v.diff(h).add((function(e){var n=v.get(y,e);if(d){var i=M(e,o);ll(i,{rotation:-((isNaN(+n)?x[0]:Ji(n,_,x,!0))+Math.PI/2)},t),l.add(i),v.setItemGraphicEl(e,i)}if(g){var r=S(e,o),a=p.get("clip");ll(r,{shape:{endAngle:Ji(n,_,x,a)}},t),l.add(r),Us(t.seriesIndex,v.dataType,e,r),f[e]=r}})).update((function(e,n){var i=v.get(y,e);if(d){var r=h.getItemGraphicEl(n),a=r?r.rotation:o,s=M(e,a);s.rotation=a,ul(s,{rotation:-((isNaN(+i)?x[0]:Ji(i,_,x,!0))+Math.PI/2)},t),l.add(s),v.setItemGraphicEl(e,s)}if(g){var u=c[n],m=u?u.shape.endAngle:o,b=S(e,m),w=p.get("clip");ul(b,{shape:{endAngle:Ji(i,_,x,w)}},t),l.add(b),Us(t.seriesIndex,v.dataType,e,b),f[e]=b}})).execute(),v.each((function(t){var e=v.getItemModel(t),n=e.getModel("emphasis"),r=n.get("focus"),o=n.get("blurScope"),a=n.get("disabled");if(d){var s=v.getItemGraphicEl(t),u=v.getItemVisual(t,"style"),l=u.fill;if(s instanceof gs){var h=s.style;s.useStyle(Object(m["extend"])({image:h.image,x:h.x,y:h.y,width:h.width,height:h.height},u))}else s.useStyle(u),"pointer"!==s.type&&s.setColor(l);s.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===s.style.fill&&s.setStyle("fill",i(Ji(v.get(y,t),_,[0,1],!0))),s.z2EmphasisLift=0,Ku(s,e),Zu(s,r,o,a)}if(g){var c=f[t];c.useStyle(v.getItemVisual(t,"style")),c.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),c.z2EmphasisLift=0,Ku(c,e),Zu(c,r,o,a)}})),this._progressEls=f)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor"),i=n.get("show");if(i){var r=n.get("size"),o=n.get("icon"),a=n.get("offsetCenter"),s=n.get("keepAspect"),u=Iy(o,e.cx-r/2+Qi(a[0],e.r),e.cy-r/2+Qi(a[1],e.r),r,r,null,s);u.z2=n.get("showAbove")?1:0,u.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(u)}},e.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),u=+t.get("min"),l=+t.get("max"),h=new Ni,c=[],f=[],d=t.isAnimationEnabled(),p=t.get(["pointer","showAbove"]);a.diff(this._data).add((function(t){c[t]=new Hs({silent:!0}),f[t]=new Hs({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],f[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),g=new Ni,m=i(Ji(o,[u,l],[0,1],!0)),v=n.getModel("title");if(v.get("show")){var y=v.get("offsetCenter"),b=r.cx+Qi(y[0],r.r),w=r.cy+Qi(y[1],r.r),_=c[e];_.attr({z2:p?0:2,style:_l(v,{x:b,y:w,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:m})}),g.add(_)}var x=n.getModel("detail");if(x.get("show")){var M=x.get("offsetCenter"),S=r.cx+Qi(M[0],r.r),O=r.cy+Qi(M[1],r.r),A=Qi(x.get("width"),r.r),I=Qi(x.get("height"),r.r),k=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:m,T=(_=f[e],x.get("formatter"));_.attr({z2:p?0:2,style:_l(x,{x:S,y:O,text:YP(o,T),width:isNaN(A)?null:A,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:k})}),El(_,{normal:x},o,(function(t){return YP(t,T)})),d&&Dl(_,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return YP(a?a.interpolatedValue:o,T)}}),g.add(_)}h.add(g)})),this.group.add(h),this._titleEls=c,this._detailEls=f},e.type="gauge",e}(pv),$P=XP,KP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n}return p(e,t),e.prototype.getInitialData=function(t,e){return eT(this,["value"])},e.type="series.gauge",e.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(Wp),JP=KP;function QP(t){t.registerChartView($P),t.registerSeriesModel(JP)}var tN=["itemStyle","opacity"],eN=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new Jg,a=new Hs;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return p(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),u=o.get(tN);u=null==u?1:u,n||pl(i),i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,ll(i,{style:{opacity:u}},r,e)):ul(i,{style:{opacity:u},shape:{points:a.points}},r,e),Ku(i,o),this._updateLabel(t,e),Zu(this,s.get("focus"),s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e),u=s.label,l=t.getItemVisual(e,"style"),h=l.fill;bl(r,wl(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:u.textAlign,verticalAlign:u.verticalAlign}}),n.setTextConfig({local:!0,inside:!!u.inside,insideStroke:h,outsideFill:h});var c=u.linePoints;i.setShape({points:c}),n.textGuideLineConfig={anchor:c?new Dt(c[0][0],c[0][1]):null},ul(r,{style:{x:u.x,y:u.y}},o,e),r.attr({rotation:u.rotation,originX:u.x,originY:u.y,z2:10}),JS(n,QS(a),{stroke:h})},e}(Xg),nN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return p(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new eN(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){var n=r.getItemGraphicEl(e);dl(n,t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(pv),iN=nN,rN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new iT(m["bind"](this.getData,this),m["bind"](this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return eT(this,{coordDimensions:["value"],encodeDefaulter:m["curry"](Rc,this)})},e.prototype._defaultLabelLine=function(t){Ir(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Wp),oN=rN;function aN(t,e){return sc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function sN(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();aCN)return;var r=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==r.behavior&&this._dispatchExpand({axisExpandWindow:r.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&LN(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function LN(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var RN=EN,jN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&m["merge"](e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){m["each"](["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[],n=m["filter"](this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this);m["each"](n,(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(vc),PN=jN,NN=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return p(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(OS),BN=NN;function zN(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=VN(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=VN(s,[0,a]),r=o=VN(s,[r,o]),i=0}e[0]=VN(e[0],n),e[1]=VN(e[1],n);var u=FN(e,i);e[i]+=t;var l,h=r||0,c=n.slice();return u.sign<0?c[0]+=h:c[1]-=h,e[i]=VN(e[i],c),l=FN(e,i),null!=r&&(l.sign!==u.sign||l.spano&&(e[1-i]=e[i]+l.sign*o),e}function FN(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function VN(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var HN=m["each"],GN=Math.min,UN=Math.max,WN=Math.floor,qN=Math.ceil,ZN=tr,YN=Math.PI,XN=function(){function t(t,e,n){this.type="parallel",this._axesMap=m["createHashMap"](),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;HN(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new BN(t,kM(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();HN(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),IM(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=sc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],u=[0,s],l=this.dimensions.length,h=$N(e.get("axisExpandWidth"),u),c=$N(e.get("axisExpandCount")||0,[0,l]),f=e.get("axisExpandable")&&l>3&&l>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");if(d)t=$N(d[1]-d[0],u),d[1]=d[0]+t;else{t=$N(h*(c-1),u);var p=e.get("axisExpandCenter")||WN(l/2);d=[h*p-t/2],d[1]=d[0]+t}var g=(s-t)/(l-c);g<3&&(g=0);var m=[WN(ZN(d[0]/h,1))+1,qN(ZN(d[1]/h,1))-1],v=g/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:f,axisExpandWidth:h,axisCollapseWidth:g,axisExpandWindow:d,axisCount:l,winInnerIndices:m,axisExpandWindow0Pos:v}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),HN(n,(function(e,n){var o=(i.axisExpandable?JN:KN)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:YN/2,vertical:0},u=[a[r].x+t.x,a[r].y+t.y],l=s[r],h=xt();It(h,h,l),At(h,h,u),this._axesLayout[e]={position:u,rotation:l,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];m["each"](o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var u=this.hasAxisBrushed(),l=n;lr*(1-h[0])?(u="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),a*=e.axisExpandWidth/l,a?zN(a,i,o,"all"):u="none";else{var f=i[1]-i[0],d=o[1]*s/f;i=[UN(0,d-f/2)],i[1]=GN(o[1],i[0]+f),i[0]=i[1]-f}return{axisExpandWindow:i,behavior:u}},t}();function $N(t,e){return GN(UN(t,e[0]),e[1])}function KN(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function JN(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,u=e.winInnerIndices,l=s,h=!1;return t=0;n--)er(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;ihB}function TB(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function CB(t,e,n,i){var r=new Ni;return r.add(new Ss({name:"main",style:RB(n),silent:!0,draggable:!0,cursor:"move",drift:Object(m["curry"])(zB,t,e,r,["n","s","w","e"]),ondragend:Object(m["curry"])(IB,e,{isEnd:!0})})),Object(m["each"])(i,(function(n){r.add(new Ss({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Object(m["curry"])(zB,t,e,r,n),ondragend:Object(m["curry"])(IB,e,{isEnd:!0})}))})),r}function EB(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=sB(r,cB),a=n[0][0],s=n[1][0],u=a-r/2,l=s-r/2,h=n[0][1],c=n[1][1],f=h-o+r/2,d=c-o+r/2,p=h-a,g=c-s,m=p+r,v=g+r;LB(t,e,"main",a,s,p,g),i.transformable&&(LB(t,e,"w",u,l,o,v),LB(t,e,"e",f,l,o,v),LB(t,e,"n",u,l,m,o),LB(t,e,"s",u,d,m,o),LB(t,e,"nw",u,l,o,o),LB(t,e,"ne",f,l,o,o),LB(t,e,"sw",u,d,o,o),LB(t,e,"se",f,d,o,o))}function DB(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(RB(n)),r.attr({silent:!i,cursor:i?"move":"default"}),Object(m["each"])([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?NB(t,n[0]):BB(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?pB[o]+"-resize":null})}))}function LB(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(GB(HB(t,e,[[i,r],[i+o,r+a]])))}function RB(t){return Object(m["defaults"])({strokeNoScale:!0},t.brushStyle)}function jB(t,e,n,i){var r=[aB(t,n),aB(e,i)],o=[sB(t,n),sB(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function PB(t){return Um(t.group)}function NB(t,e){var n={w:"left",e:"right",n:"top",s:"bottom"},i={left:"w",right:"e",top:"n",bottom:"s"},r=qm(n[e],PB(t));return i[r]}function BB(t,e){var n=[NB(t,e[0]),NB(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}function zB(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),u=VB(e,r,o);Object(m["each"])(i,(function(t){var e=dB[t];s[e[0]][e[1]]+=u[e[0]]})),a.range=t.fromRectRange(jB(s[0][0],s[1][0],s[0][1],s[1][1])),xB(e,n),IB(e,{isEnd:!1})}function FB(t,e,n,i){var r=e.__brushOption.range,o=VB(t,n,i);Object(m["each"])(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),xB(t,e),IB(t,{isEnd:!1})}function VB(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function HB(t,e,n){var i=OB(t,e);return i&&i!==oB?i.clipPath(n,t._transform):Object(m["clone"])(n)}function GB(t){var e=aB(t[0][0],t[1][0]),n=aB(t[0][1],t[1][1]),i=sB(t[0][0],t[1][0]),r=sB(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}function UB(t,e,n){if(t._brushType&&!KB(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=SB(t,e,n);if(!t._dragging)for(var a=0;ai.getWidth()||n<0||n>i.getHeight()}var JB={lineX:QB(0),lineY:QB(1),rect:{createCover:function(t,e){function n(t){return t}return CB({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=TB(t);return jB(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){EB(t,e,n,i)},updateCommon:DB,contain:qB},polygon:{createCover:function(t,e){var n=new Ni;return n.add(new Jg({name:"main",style:RB(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Xg({name:"main",draggable:!0,drift:Object(m["curry"])(FB,t,e),ondragend:Object(m["curry"])(IB,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:HB(t,e,n)})},updateCommon:DB,contain:qB}};function QB(t){return{createCover:function(e,n){return CB({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=TB(e),i=aB(n[0][t],n[1][t]),r=sB(n[0][t],n[1][t]);return[i,r]},updateCoverShape:function(e,n,i,r){var o,a=OB(e,n);if(a!==oB&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var u=[i,o];t&&u.reverse(),EB(e,n,u,r)},updateCommon:DB,contain:qB}}var tz=vB;function ez(t){return t=rz(t),function(e){return $m(e,t)}}function nz(t,e){return t=rz(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function iz(t,e,n){var i=rz(t);return function(t,r){return i.contain(r[0],r[1])&&!mE(t,e,n)}}function rz(t){return Ht.create(t)}var oz=["axisLine","axisTickLabel","axisName"],az=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new tz(n.getZr())).on("brush",m["bind"](this._onBrush,this))},e.prototype.render=function(t,e,n,i){if(!sz(t,e,i)){this.axisModel=t,this.api=n,this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Ni,this.group.add(this._axisGroup),t.get("show")){var o=lz(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),u=s.width,l=t.axis.dim,h=a.getAxisLayout(l),c=m["extend"]({strokeContainThreshold:u},h),f=new sC(t,c);m["each"](oz,f.add,f),this._axisGroup.add(f.getGroup()),this._refreshBrushController(c,s,t,o,u,n),Xm(r,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,e,n,i,r,o){var a=n.axis.getExtent(),s=a[1]-a[0],u=Math.min(30,.1*Math.abs(s)),l=Ht.create({x:a[0],y:-r/2,width:s,height:r});l.x-=u,l.width+=2*u,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:ez(l),isTargetByCursor:iz(l,o,i),getLinearBrushOtherExtent:nz(l,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(uz(n))},e.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,i=n.axis,r=m["map"](e,(function(t){return[i.coordToData(t.range[0],!0),i.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:r})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}(Zp);function sz(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}function uz(t){var e=t.axis;return m["map"](t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}function lz(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}var hz=az,cz={type:"axisAreaSelect",event:"axisAreaSelected"};function fz(t){t.registerAction(cz,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}var dz={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function pz(t){t.registerComponentView(RN),t.registerComponentModel(PN),t.registerCoordinateSystem("parallel",nB),t.registerPreprocessor(IN),t.registerComponentModel(rB),t.registerComponentView(hz),kT(t,"parallel",rB,dz),fz(t)}function gz(t){p_(pz),t.registerChartView(bN),t.registerSeriesModel(MN),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,AN)}var mz=function(){function t(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return t}(),vz=function(t){function e(e){return t.call(this,e)||this}return p(e,t),e.prototype.getDefaultShape=function(){return new mz},e.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},e.prototype.highlight=function(){ku(this)},e.prototype.downplay=function(){Tu(this)},e}(ss),yz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._focusAdjacencyDisabled=!1,n}return p(e,t),e.prototype.render=function(t,e,n){var i=this,r=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,u=a.height,l=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,r.eachEdge((function(e){var n=new vz,i=Gs(n);i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var r,a,l,f,d,p,g,v,y=e.getModel(),b=y.getModel("lineStyle"),w=b.get("curveness"),_=e.node1.getLayout(),x=e.node1.getModel(),M=x.get("localX"),S=x.get("localY"),O=e.node2.getLayout(),A=e.node2.getModel(),I=A.get("localX"),k=A.get("localY"),T=e.getLayout();switch(n.shape.extent=Math.max(1,T.dy),n.shape.orient=c,"vertical"===c?(r=(null!=M?M*s:_.x)+T.sy,a=(null!=S?S*u:_.y)+_.dy,l=(null!=I?I*s:O.x)+T.ty,f=null!=k?k*u:O.y,d=r,p=a*(1-w)+f*w,g=l,v=a*w+f*(1-w)):(r=(null!=M?M*s:_.x)+_.dx,a=(null!=S?S*u:_.y)+T.sy,l=null!=I?I*s:O.x,f=(null!=k?k*u:O.y)+T.ty,d=r*(1-w)+l*w,p=a,g=r*w+l*(1-w),v=f),n.setShape({x1:r,y1:a,x2:l,y2:f,cpx1:d,cpy1:p,cpx2:g,cpy2:v}),n.useStyle(b.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var C=e.node1.getVisual("color"),E=e.node2.getVisual("color");Object(m["isString"])(C)&&Object(m["isString"])(E)&&(n.style.fill=new mm(0,0,+("horizontal"===c),+("vertical"===c),[{color:C,offset:0},{color:E,offset:1}]))}bl(n,wl(y,"edgeLabel"),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:""+y.get("value")}),n.setTextConfig({position:"inside"});var D=y.getModel("emphasis");Ku(n,y,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),h.setItemGraphicEl(e.dataIndex,n);var L=D.get("focus");Zu(n,"adjacency"===L?e.getAdjacentDataIndices():L,D.get("blurScope"),D.get("disabled")),Gs(n).dataType="edge"})),r.eachNode((function(e){var n=e.getLayout(),i=e.getModel(),r=i.get("localX"),a=i.get("localY"),h=i.getModel("emphasis"),c=new Ss({shape:{x:null!=r?r*s:n.x,y:null!=a?a*u:n.y,width:n.dx,height:n.dy},style:i.getModel("itemStyle").getItemStyle(),z2:10});bl(c,wl(i),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),c.disableLabelAnimation=!0,c.setStyle("fill",e.getVisual("color")),c.setStyle("decal",e.getVisual("style").decal),Ku(c,i),o.add(c),l.setItemGraphicEl(e.dataIndex,c),Gs(c).dataType="node";var f=h.get("focus");Zu(c,"adjacency"===f?e.getAdjacentDataIndices():f,h.get("blurScope"),h.get("disabled"))})),l.eachItemGraphicEl((function(e,r){var o=l.getItemModel(r);o.get("draggable")&&(e.drift=function(e,o){i._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:l.getRawIndex(r),localX:this.shape.x/s,localY:this.shape.y/u})},e.ondragend=function(){i._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(bz(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(pv);function bz(t,e,n){var i=new Ss({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return ll(i,{shape:{width:t.width+20}},e,n),i}var wz=yz,_z=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.getInitialData=function(t,e){var n=t.edges||t.links,i=t.data||t.nodes,r=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a=0&&(o[r[a].depth]=new Wl(r[a],this,e));if(i&&n){var s=zP(i,n,this,!0,u);return s.data}function u(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e),r=i.node1.getLayout();if(r){var o=r.depth,a=n.levelModels[o];a&&(t.parentModel=a)}return t}))}},e.prototype.setNodePosition=function(t,e){var n=this.option.data||this.option.nodes,i=n[t];i.localX=e[0],i.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value,s=o.source+" -- "+o.target;return gp("nameValue",{name:s,value:a,noValue:i(a)})}var u=this.getGraph().getNodeByIndex(t),l=u.getLayout().value,h=this.getDataParams(t,n).data.name;return gp("nameValue",{name:null!=h?h+"":null,value:l,noValue:i(l)})},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e),o=r.getLayout().value;i.value=o}return i},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(Wp),xz=_z;function Mz(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=Sz(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),u=s.nodes,l=s.edges;Az(u);var h=m["filter"](u,(function(t){return 0===t.getLayout().value})),c=0!==h.length?0:t.get("layoutIterations"),f=t.get("orient"),d=t.get("nodeAlign");Oz(u,l,n,i,o,a,c,f,d)}))}function Sz(t,e){return sc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Oz(t,e,n,i,r,o,a,s,u){Iz(t,e,n,r,o,s,u),Dz(t,e,o,r,i,a,s),Wz(t,s)}function Az(t){m["each"](t,(function(t){var e=Gz(t.outEdges,Hz),n=Gz(t.inEdges,Hz),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}function Iz(t,e,n,i,r,o,a){for(var s=[],u=[],l=[],h=[],c=0,f=0;f=0;v&&m.depth>d&&(d=m.depth),g.setLayout({depth:v?m.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var y=0;yc-1?d:c-1;a&&"left"!==a&&Tz(t,a,o,M);var S="vertical"===o?(r-n)/M:(i-n)/M;Ez(t,S,o)}function kz(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function Tz(t,e,n,i){if("right"===e){var r=[],o=t,a=0;while(o.length){for(var s=0;s0;o--)u*=.99,Pz(s,u,a),jz(s,r,n,i,a),Uz(s,u,a),jz(s,r,n,i,a)}function Lz(t,e){var n=[],i="vertical"===e?"y":"x",r=ro(t,(function(t){return t.getLayout()[i]}));return r.keys.sort((function(t,e){return t-e})),m["each"](r.keys,(function(t){n.push(r.buckets.get(t))})),n}function Rz(t,e,n,i,r,o){var a=1/0;m["each"](t,(function(t){var e=t.length,s=0;m["each"](t,(function(t){s+=t.getLayout().value}));var u="vertical"===o?(i-(e-1)*r)/s:(n-(e-1)*r)/s;u0&&(a=s.getLayout()[o]+u,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),l=s.getLayout()[o]+s.getLayout()[c]+e;var d="vertical"===r?i:n;if(u=l-e-d,u>0){a=s.getLayout()[o]-u,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),l=a;for(f=h-2;f>=0;--f)s=t[f],u=s.getLayout()[o]+s.getLayout()[c]+e-l,u>0&&(a=s.getLayout()[o]-u,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),l=s.getLayout()[o]}}))}function Pz(t,e,n){m["each"](t.slice().reverse(),(function(t){m["each"](t,(function(t){if(t.outEdges.length){var i=Gz(t.outEdges,Nz,n)/Gz(t.outEdges,Hz);if(isNaN(i)){var r=t.outEdges.length;i=r?Gz(t.outEdges,Bz,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-Vz(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-Vz(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function Nz(t,e){return Vz(t.node2,e)*t.getValue()}function Bz(t,e){return Vz(t.node2,e)}function zz(t,e){return Vz(t.node1,e)*t.getValue()}function Fz(t,e){return Vz(t.node1,e)}function Vz(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function Hz(t){return t.getValue()}function Gz(t,e,n){var i=0,r=t.length,o=-1;while(++oo&&(o=e)})),m["each"](n,(function(e){var n=new ZR({type:"color",mappingMethod:"linear",dataExtent:[r,o],visual:t.get("color")}),i=n.mapValueToVisual(e.getLayout().value),a=e.getModel().get(["itemStyle","color"]);null!=a?(e.setVisual("color",a),e.setVisual("style",{fill:a})):(e.setVisual("color",i),e.setVisual("style",{fill:i}))}))}i.length&&m["each"](i,(function(t){var e=t.getModel().get("lineStyle");t.setVisual("style",e)}))}))}function Zz(t){t.registerChartView(wz),t.registerSeriesModel(xz),t.registerLayout(Mz),t.registerVisual(qz),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))}var Yz=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var u=["x","y"],l="horizontal"===t.layout?0:1,h=this._baseAxisDim=u[l],c=u[1-l],f=[r,o],d=f[l].get("type"),p=f[1-l].get("type"),g=t.data;if(g&&i){var v=[];m["each"](g,(function(t,e){var n;m["isArray"](t)?(n=t.slice(),t.unshift(e)):m["isArray"](t.value)?(n=m["extend"]({},t),n.value=n.value.slice(),t.value.unshift(e)):n=t,v.push(n)})),t.data=v}var y=this.defaultValueDimensions,b=[{name:h,type:x_(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:x_(p),dimsDef:y.slice()}];return eT(this,{coordDimensions:b,dimensionsCount:y.length+1,encodeDefaulter:m["curry"](Lc,b,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),Xz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return p(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(Wp);Object(m["mixin"])(Xz,Yz,!0);var $z=Xz,Kz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=i.getItemLayout(t),n=tF(e,i,t,a,!0);i.setItemGraphicEl(t,n),r.add(n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?(pl(n),eF(s,n,i,t)):n=tF(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(pv),Jz=function(){function t(){}return t}(),Qz=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return p(e,t),e.prototype.getDefaultShape=function(){return new Jz},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();ig){var _=[y,w];i.push(_)}}}return{boxData:n,outliers:i}}var hF={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if(e.sourceFormat!==Mc){var n="";0,Qc(n)}var i=lF(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};function cF(t){t.registerSeriesModel($z),t.registerChartView(iF),t.registerLayout(oF),t.registerTransform(hF)}var fF=["color","borderColor"],dF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype.eachRendered=function(t){ov(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&vF(s,a))return;var u=mF(a,n,!0);ll(u,{shape:{points:a.ends}},t,n),yF(u,e,n,r),i.add(u),e.setItemGraphicEl(n,u)}})).update((function(a,u){var l=n.getItemGraphicEl(u);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&vF(s,h)?i.remove(l):(l?(ul(l,{shape:{points:h.ends}},t,a),pl(l)):l=mF(h,a),yF(l,e,a,r),i.add(l),e.setItemGraphicEl(a,l))}else i.remove(l)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),xF(t,this.group);var e=t.get("clip",!0)?CI(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){var n,i=e.getData(),r=i.getLayout("isSimpleBox");while(null!=(n=t.next())){var o=i.getItemLayout(n),a=mF(o,n);yF(a,i,n,r),a.incremental=!0,this.group.add(a),this._progressiveEls.push(a)}},e.prototype._incrementalRenderLarge=function(t,e){xF(e,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(pv),pF=function(){function t(){}return t}(),gF=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return p(e,t),e.prototype.getDefaultShape=function(){return new pF},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(ss);function mF(t,e,n){var i=t.ends;return new gF({shape:{points:n?bF(i,t):i},z2:100})}function vF(t,e){for(var n=!0,i=0;i0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]);0===t&&(r=n.get(["itemStyle","borderColorDoji"]));var o=n.getModel("itemStyle").getItemStyle(fF);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var SF=dF,OF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return p(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(Wp);Object(m["mixin"])(OF,Yz,!0);var AF=OF;function IF(t){t&&m["isArray"](t.series)&&m["each"](t.series,(function(t){m["isObject"](t)&&"k"===t.type&&(t.type="candlestick")}))}var kF=["itemStyle","borderColor"],TF=["itemStyle","borderColor0"],CF=["itemStyle","borderColorDoji"],EF=["itemStyle","color"],DF=["itemStyle","color0"],LF={seriesType:"candlestick",plan:Yp(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?EF:DF)}function i(t,e){return e.get(0===t?CF:t>0?kF:TF)}if(!e.isSeriesFiltered(t)){var r=t.pipelineContext.large;return!r&&{progress:function(t,e){var r;while(null!=(r=t.next())){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill;var u=e.ensureUniqueItemVisual(r,"style");Object(m["extend"])(u,s)}}}}}},RF=LF,jF={seriesType:"candlestick",plan:Yp(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=NF(t,n),r=0,o=1,a=["x","y"],s=n.getDimensionIndex(n.mapDimension(a[r])),u=Object(m["map"])(n.mapDimensionsAll(a[o]),n.getDimensionIndex,n),l=u[0],h=u[1],c=u[2],f=u[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(s<0||u.length<4))return{progress:t.pipelineContext.large?p:d};function d(t,n){var a,u=n.getStore();while(null!=(a=t.next())){var d=u.get(s,a),p=u.get(l,a),g=u.get(h,a),m=u.get(c,a),v=u.get(f,a),y=Math.min(p,g),b=Math.max(p,g),w=I(y,d),_=I(b,d),x=I(m,d),M=I(v,d),S=[];k(S,_,0),k(S,w,1),S.push(C(M),C(_),C(x),C(w));var O=n.getItemModel(a),A=!!O.get(["itemStyle","borderColorDoji"]);n.setItemLayout(a,{sign:PF(u,a,p,g,h,A),initBaseline:p>g?_[o]:w[o],ends:S,brushRect:T(m,v,d)})}function I(t,n){var i=[];return i[r]=n,i[o]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function k(t,e,n){var o=e.slice(),a=e.slice();o[r]=Gm(o[r]+i/2,1,!1),a[r]=Gm(a[r]-i/2,1,!0),n?t.push(o,a):t.push(a,o)}function T(t,e,n){var a=I(t,n),s=I(e,n);return a[r]-=i/2,s[r]-=i/2,{x:a[0],y:a[1],width:o?i:s[0]-a[0],height:o?s[1]-a[1]:i}}function C(t){return t[r]=Gm(t[r],1),t}}function p(n,i){var a,u,d=Px(4*n.count),p=0,g=[],m=[],v=i.getStore(),y=!!t.get(["itemStyle","borderColorDoji"]);while(null!=(u=n.next())){var b=v.get(s,u),w=v.get(l,u),_=v.get(h,u),x=v.get(c,u),M=v.get(f,u);isNaN(b)||isNaN(x)||isNaN(M)?(d[p++]=NaN,p+=3):(d[p++]=PF(v,u,w,_,h,y),g[r]=b,g[o]=x,a=e.dataToPoint(g,null,m),d[p++]=a?a[0]:NaN,d[p++]=a?a[1]:NaN,g[o]=M,a=e.dataToPoint(g,null,m),d[p++]=a?a[1]:NaN)}i.setLayout("largePoints",d)}}};function PF(t,e,n,i,r,o){var a;return a=n>i?-1:n0?t.get(r,e-1)<=i?1:-1:1,a}function NF(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Qi(Object(m["retrieve2"])(t.get("barMaxWidth"),r),r),a=Qi(Object(m["retrieve2"])(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Qi(s,r):Math.max(Math.min(r/2,o),a)}var BF=jF;function zF(t){t.registerChartView(SF),t.registerSeriesModel(AF),t.registerPreprocessor(IF),t.registerVisual(RF),t.registerLayout(BF)}function FF(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var VF=function(t){function e(e,n){var i=t.call(this)||this,r=new lI(e,n),o=new Ni;return i.add(r),i.add(o),i.updateData(e,n),i}return p(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=t.rippleNumber,r=this.childAt(1),o=0;o0&&(o=this._getLineLength(i)/u*1e3),o!==this._period||a!==this._loop||s!==this._roundTrip){i.stopAnimation();var h=void 0;h=m["isFunction"](l)?l(n):l,i.__t>0&&(h=-o*i.__t),this._animateSymbol(i,o,h,a,s)}this._period=o,this._loop=a,this._roundTrip=s}},e.prototype._animateSymbol=function(t,e,n,i,r){if(e>0){t.__t=0;var o=this,a=t.animate("",i).when(r?2*e:e,{__t:r?2:1}).delay(n).during((function(){o._updateSymbolPosition(t)}));i||a.done((function(){o.remove(t)})),a.start()}},e.prototype._getLineLength=function(t){return R(t.__p1,t.__cp1)+R(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t<1?t.__t:2-t.__t,o=[t.x,t.y],a=o.slice(),s=Ve,u=He;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var l=t.__t<1?u(e[0],i[0],n[0],r):u(n[0],i[0],e[0],1-r),h=t.__t<1?u(e[1],i[1],n[1],r):u(n[1],i[1],e[1],1-r);t.rotation=-Math.atan2(h,l)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT=0;o--)if(i[o]<=e)break;o=Math.min(o,r-2)}else{for(o=a;oe)break;o=Math.min(o-1,r-2)}var u=(e-i[o])/(i[o+1]-i[o]),l=n[o],h=n[o+1];t.x=l[0]*(1-u)+u*h[0],t.y=l[1]*(1-u)+u*h[1];var c=t.__t<1?h[0]-l[0]:l[0]-h[0],f=t.__t<1?h[1]-l[1]:l[1]-h[1];t.rotation=-Math.atan2(f,c)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=e,t.ignore=!1}},e}(XF),QF=JF,tV=function(){function t(){this.polyline=!1,this.curveness=0,this.segs=[]}return t}(),eV=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return p(e,t),e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new tV},e.prototype.buildPath=function(t,e){var n,i=e.segs,r=e.curveness;if(e.polyline)for(n=this._off;n0){t.moveTo(i[n++],i[n++]);for(var a=1;a0){var c=(s+l)/2-(u-h)*r,f=(u+h)/2-(l-s)*r;t.quadraticCurveTo(c,f,l,h)}else t.lineTo(l,h)}this.incremental&&(this._off=n,this.notClear=!0)},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s0)for(var l=i[s++],h=i[s++],c=1;c0){var p=(l+f)/2-(h-d)*r,g=(h+d)/2-(f-l)*r;if(Ba(l,h,p,g,f,d,o,t,e))return a}else if(Pa(l,h,f,d,o,t,e))return a;a++}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();if(t=n[0],e=n[1],i.contain(t,e)){var r=this.hoverDataIdx=this.findDataIndex(t,e);return r>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.segs,i=1/0,r=1/0,o=-1/0,a=-1/0,s=0;s0&&(o.dataIndex=n+t.__startIndex)}))},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),iV=nV,rV={seriesType:"lines",plan:Yp(),reset:function(t){var e=t.coordinateSystem;if(e){var n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,u=r.end-r.start;if(n){for(var l=0,h=r.start;h0&&(u||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)})),r.updateData(i);var l=t.get("clip",!0)&&CI(t.coordinateSystem,!1,t);l?this.group.setClipPath(l):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData(),r=this._updateLineDraw(i,t);r.incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=oV.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext,a=o.large;return n&&i===this._hasEffet&&r===this._isPolyline&&a===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=a?new iV:new _P(r?i?QF:KF:i?XF:gP),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=a),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr(),n="svg"===e.painter.getType();n||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.type="lines",e}(pv),sV=aV,uV="undefined"===typeof Uint32Array?Array:Uint32Array,lV="undefined"===typeof Float64Array?Array:Float64Array;function hV(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=Object(m["map"])(e,(function(t){var e=[t[0].coord,t[1].coord],n={coords:e};return t[0].name&&(n.fromName=t[0].name),t[1].name&&(n.toName=t[1].name),Object(m["mergeAll"])([n,t[0],t[1]])})))}var cV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return p(e,t),e.prototype.init=function(e){e.data=e.data||[],hV(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(hV(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=Object(m["concatArray"])(this._flatCoords,e.flatCoords),this._flatCoordsOffset=Object(m["concatArray"])(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),e=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&e>0?e+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(Wp),fV=cV;function dV(t){return t instanceof Array||(t=[t,t]),t}var pV={seriesType:"lines",reset:function(t){var e=dV(t.get("symbol")),n=dV(t.get("symbolSize")),i=t.getData();function r(t,e){var n=t.getItemModel(e),i=dV(n.getShallow("symbol",!0)),r=dV(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?r:null}}},gV=pV;function mV(t){t.registerChartView(sV),t.registerSeriesModel(fV),t.registerLayout(oV),t.registerVisual(gV)}var vV=256,yV=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=fi["d"].createCanvas();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),u=this._getGradient(r,"outOfRange"),l=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),f=t.length;h.width=e,h.height=n;for(var d=0;d0){var I=o(y)?s:u;y>0&&(y=y*O+M),w[_++]=I[A],w[_++]=I[A+1],w[_++]=I[A+2],w[_++]=I[A+3]*y*256}else _+=4}return c.putImageData(b,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=fi["d"].createCanvas()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}(),bV=yV;function wV(t,e,n){var i=t[1]-t[0];e=m["map"](e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}));var r=e.length,o=0;return function(t){var i;for(i=o;i=0;i--){a=e[i].interval;if(a[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i=e[0]&&t<=e[1]}}function xV(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var MV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this._progressiveEls=null,this.group.removeAll();var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):xV(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(xV(r)?this.render(e,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){ov(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,u,l=t.coordinateSystem,h=EI(l,"cartesian2d");if(h){var c=l.getAxis("x"),f=l.getAxis("y");0,o=c.getBandWidth()+.5,a=f.getBandWidth()+.5,s=c.scale.getExtent(),u=f.scale.getExtent()}for(var d=this.group,p=t.getData(),g=t.getModel(["emphasis","itemStyle"]).getItemStyle(),m=t.getModel(["blur","itemStyle"]).getItemStyle(),v=t.getModel(["select","itemStyle"]).getItemStyle(),y=t.get(["itemStyle","borderRadius"]),b=wl(t),w=t.getModel("emphasis"),_=w.get("focus"),x=w.get("blurScope"),M=w.get("disabled"),S=h?[p.mapDimension("x"),p.mapDimension("y"),p.mapDimension("value")]:[p.mapDimension("time"),p.mapDimension("value")],O=n;Os[1]||Tu[1])continue;var C=l.dataToPoint([k,T]);A=new Ss({shape:{x:C[0]-o/2,y:C[1]-a/2,width:o,height:a},style:I})}else{if(isNaN(p.get(S[1],O)))continue;A=new Ss({z2:1,shape:l.dataToRect([p.get(S[0],O)]).contentShape,style:I})}if(p.hasItemOption){var E=p.getItemModel(O),D=E.getModel("emphasis");g=D.getModel("itemStyle").getItemStyle(),m=E.getModel(["blur","itemStyle"]).getItemStyle(),v=E.getModel(["select","itemStyle"]).getItemStyle(),y=E.get(["itemStyle","borderRadius"]),_=D.get("focus"),x=D.get("blurScope"),M=D.get("disabled"),b=wl(E)}A.shape.r=y;var L=t.getRawValue(O),R="-";L&&null!=L[2]&&(R=L[2]+""),bl(A,b,{labelFetcher:t,labelDataIndex:O,defaultOpacity:I.opacity,defaultText:R}),A.ensureState("emphasis").style=g,A.ensureState("blur").style=m,A.ensureState("select").style=v,Zu(A,_,x,M),A.incremental=r,r&&(A.states.emphasis.hoverLayer=!0),d.add(A),p.setItemGraphicEl(O,A),this._progressiveEls&&this._progressiveEls.push(A)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new bV;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var u=t.getViewRect().clone(),l=t.getRoamTransform();u.applyTransform(l);var h=Math.max(u.x,0),c=Math.max(u.y,0),f=Math.min(u.width+u.x,i.getWidth()),d=Math.min(u.height+u.y,i.getHeight()),p=f-h,g=d-c,m=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(m,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),y=n.getExtent(),b="visualMap.continuous"===n.type?_V(y,n.option.range):wV(y,n.getPieceList(),n.option.selected);s.update(v,p,g,r.color.getNormalizer(),{inRange:r.color.getColorMapper(),outOfRange:o.color.getColorMapper()},b);var w=new gs({style:{width:p,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(w)},e.type="heatmap",e}(pv),SV=MV,OV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.getInitialData=function(t,e){return dx(null,this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=gf.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(Wp),AV=OV;function IV(t){t.registerChartView(SV),t.registerSeriesModel(AV)}var kV=["itemStyle","borderWidth"],TV=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],CV=new wg,EV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=this.group,r=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis(),u=s.isHorizontal(),l=a.master.getRect(),h={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[l.x,l.x+l.width],[l.y,l.y+l.height]],isHorizontal:u,valueDim:TV[+u],categoryDim:TV[1-+u]};return r.diff(o).add((function(t){if(r.hasValue(t)){var e=GV(r,t),n=DV(r,t,e,h),o=qV(r,h,n);r.setItemGraphicEl(t,o),i.add(o),JV(o,h,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var a=GV(r,t),s=DV(r,t,a,h),u=XV(r,s);n&&u!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(t,null),n=null),n?ZV(n,h,s):n=qV(r,h,s,!0),r.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,i.add(n),JV(n,h,s)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&YV(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=r,this.group},e.prototype.remove=function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl((function(e){YV(i,Gs(e).dataIndex,t,e)})):n.removeAll()},e.type="pictorialBar",e}(pv);function DV(t,e,n,i){var r=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",u=n.get("symbolRotate"),l=(u||0)*Math.PI/180||0,h=n.get("symbolPatternSize")||2,c=n.isAnimationEnabled(),f={dataIndex:e,layout:r,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:h,rotation:l,animationModel:c?n:null,hoverScale:c&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};LV(n,o,r,i,f),jV(t,e,r,o,a,f.boundingLength,f.pxSign,h,i,f),PV(n,f.symbolScale,l,i,f);var d=f.symbolSize,p=Ty(n.get("symbolOffset"),d);return NV(n,d,r,o,a,p,s,f.valueLineWidth,f.boundingLength,f.repeatCutLength,i,f),f}function LV(t,e,n,i,r){var o,a=i.valueDim,s=t.get("symbolBoundingData"),u=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),l=u.toGlobalCoord(u.dataToCoord(0)),h=1-+(n[a.wh]<=0);if(m["isArray"](s)){var c=[RV(u,s[0])-l,RV(u,s[1])-l];c[1]0?1:-1}function RV(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function jV(t,e,n,i,r,o,a,s,u,l){var h,c=u.valueDim,f=u.categoryDim,d=Math.abs(n[f.wh]),p=t.getItemVisual(e,"symbolSize");h=m["isArray"](p)?p.slice():null==p?["100%","100%"]:[p,p],h[f.index]=Qi(h[f.index],d),h[c.index]=Qi(h[c.index],i?d:Math.abs(o)),l.symbolSize=h;var g=l.symbolScale=[h[0]/s,h[1]/s];g[c.index]*=(u.isHorizontal?-1:1)*a}function PV(t,e,n,i,r){var o=t.get(kV)||0;o&&(CV.attr({scaleX:e[0],scaleY:e[1],rotation:n}),CV.updateTransform(),o/=CV.getLineScale(),o*=e[i.valueDim.index]),r.valueLineWidth=o||0}function NV(t,e,n,i,r,o,a,s,u,l,h,c){var f=h.categoryDim,d=h.valueDim,p=c.pxSign,g=Math.max(e[d.index]+s,0),v=g;if(i){var y=Math.abs(u),b=m["retrieve"](t.get("symbolMargin"),"15%")+"",w=!1;b.lastIndexOf("!")===b.length-1&&(w=!0,b=b.slice(0,b.length-1));var _=Qi(b,e[d.index]),x=Math.max(g+2*_,0),M=w?0:2*_,S=br(i),O=S?i:QV((y+M)/x),A=y-O*g;_=A/2/(w?O:Math.max(O-1,1)),x=g+2*_,M=w?0:2*_,S||"fixed"===i||(O=l?QV((Math.abs(l)+M)/x):0),v=O*x-M,c.repeatTimes=O,c.symbolMargin=_}var I=p*(v/2),k=c.pathPosition=[];k[f.index]=n[f.wh]/2,k[d.index]="start"===a?I:"end"===a?u-I:u/2,o&&(k[0]+=o[0],k[1]+=o[1]);var T=c.bundlePosition=[];T[f.index]=n[f.xy],T[d.index]=n[d.xy];var C=c.barRectShape=m["extend"]({},n);C[d.wh]=p*Math.max(Math.abs(n[d.wh]),Math.abs(k[d.index]+I)),C[f.wh]=n[f.wh];var E=c.clipShape={};E[f.xy]=-n[f.xy],E[f.wh]=h.ecSize[f.wh],E[d.xy]=0,E[d.wh]=n[d.wh]}function BV(t){var e=t.symbolPatternSize,n=Iy(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function zV(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,u=e.valueDim,l=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for($V(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=l,h0:i<0)&&(r=l-1-t),e[u.index]=c*(r-l/2+.5)+s[u.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function FV(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?KV(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=BV(n),r.add(o),KV(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function VV(t,e,n){var i=m["extend"]({},e.barRectShape),r=t.__pictorialBarRect;r?KV(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new Ss({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),r.disableMorphing=!0,t.add(r))}function HV(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=m["extend"]({},n.clipShape),s=e.valueDim,u=n.animationModel,l=n.dataIndex;if(r)ul(r,{shape:o},u,l);else{o[s.wh]=0,r=new Ss({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var h={};h[s.wh]=n.clipShape[s.wh],a[i?"updateProps":"initProps"](r,{shape:h},u,l)}}}function GV(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=UV,n.isAnimationEnabled=WV,n}function UV(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function WV(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function qV(t,e,n,i){var r=new Ni,o=new Ni;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?zV(r,e,n):FV(r,e,n),VV(r,n,i),HV(r,e,n,i),r.__pictorialShapeStr=XV(t,n),r.__pictorialSymbolMeta=n,r}function ZV(t,e,n){var i=n.animationModel,r=n.dataIndex,o=t.__pictorialBundle;ul(o,{x:n.bundlePosition[0],y:n.bundlePosition[1]},i,r),n.symbolRepeat?zV(t,e,n,!0):FV(t,e,n,!0),VV(t,n,!0),HV(t,e,n,!0)}function YV(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];$V(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),m["each"](o,(function(t){cl(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function XV(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function $V(t,e,n){m["each"](t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function KV(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&a[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function JV(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),u=r.getModel(["select","itemStyle"]).getItemStyle(),l=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),f=o.get("scale");$V(t,(function(t){if(t instanceof gs){var e=t.style;t.useStyle(m["extend"]({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,f&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=u,l&&(t.cursor=l),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)],p=t.__pictorialBarRect;bl(p,wl(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:oI(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Zu(t,h,c,o.get("disabled"))}function QV(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var tH=EV,eH=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return p(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=$l(ik.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(ik),nH=eH;function iH(t){t.registerChartView(tH),t.registerSeriesModel(nH),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,Object(m["curry"])(qx,"pictorialBar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Zx("pictorialBar"))}var rH=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return p(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),u=s.rect,l=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=u.y+l[0];var c=new y_(this._layersSeries||[],a,h,h),f=[];function d(e,n,s){var u=r._layers;if("remove"!==e){for(var l,h,c=[],d=[],p=a[n].indices,g=0;go&&(o=s),i.push(s)}for(var l=0;lo&&(o=c)}return{y0:r,max:o}}function dH(t){t.registerChartView(aH),t.registerSeriesModel(lH),t.registerLayout(hH),t.registerProcessor(Wk("themeRiver"))}var pH=2,gH=4,mH=function(t){function e(e,n,i,r){var o=t.call(this)||this;o.z2=pH,o.textConfig={inside:!0},Gs(o).seriesIndex=n.seriesIndex;var a=new Hs({z2:gH,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,i,r),o}return p(e,t),e.prototype.updateData=function(t,e,n,i,r){this.node=e,e.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var o=this;Gs(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),u=e.getLayout(),l=m["extend"]({},u);l.label=null;var h=e.getVisual("style");h.lineJoin="bevel";var c=e.getVisual("decal");c&&(h.decal=mb(c,r));var f=dk(a.getModel("itemStyle"),l,!0);m["extend"](l,f),m["each"](Js,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var i=dk(n,l);i&&(e.shape=i)})),t?(o.setShape(l),o.shape.r=u.r0,ll(o,{shape:{r:u.r}},n,e.dataIndex)):(ul(o,{shape:l},n),pl(o)),o.useStyle(h),this._updateLabel(n);var d=a.getShallow("cursor");d&&o.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var p=s.get("focus"),g="ancestor"===p?e.getAncestorsIndices():"descendant"===p?e.getDescendantIndices():p;Zu(this,g,s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),i=n.getModel("label"),r=this.node.getLayout(),o=r.endAngle-r.startAngle,a=(r.startAngle+r.endAngle)/2,s=Math.cos(a),u=Math.sin(a),l=this,h=l.getTextContent(),c=this.node.dataIndex,f=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(null!=f&&Math.abs(o)Math.PI/2?"right":"left"):S&&"center"!==S?"left"===S?(b=r.r0+M,a>Math.PI/2&&(S="right")):"right"===S&&(b=r.r-M,a>Math.PI/2&&(S="left")):(b=o===2*Math.PI&&0===r.r0?0:(r.r+r.r0)/2,S="center"),g.style.align=S,g.style.verticalAlign=p(f,"verticalAlign")||"middle",g.x=b*s+r.cx,g.y=b*u+r.cy;var O=p(f,"rotate"),A=0;"radial"===O?(A=Fa(-a),A>Math.PI/2&&A<1.5*Math.PI&&(A+=Math.PI)):"tangential"===O?(A=Math.PI/2-a,A>Math.PI/2?A-=Math.PI:A<-Math.PI/2&&(A+=Math.PI)):m["isNumber"](O)&&(A=O*Math.PI/180),g.rotation=A})),h.dirtyStyle()},e}(Vg),vH=mH,yH="sunburstRootToNode",bH="sunburstHighlight",wH="sunburstUnhighlight";function _H(t){t.registerAction({type:yH,update:"updateView"},(function(t,e){function n(e,n){var i=zL(t,[yH],e);if(i){var r=e.getViewRoot();r&&(t.direction=VL(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}e.eachComponent({mainType:"series",subType:"sunburst",query:t},n)})),t.registerAction({type:bH,update:"none"},(function(t,e,n){function i(e){var n=zL(t,[bH],e);n&&(t.dataIndex=n.node.dataIndex)}t=Object(m["extend"])({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},i),n.dispatchAction(Object(m["extend"])(t,{type:"highlight"}))})),t.registerAction({type:wH,update:"updateView"},(function(t,e,n){t=Object(m["extend"])({},t),n.dispatchAction(Object(m["extend"])(t,{type:"downplay"}))}))}var xH=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),u=this.group,l=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];function f(t,e){function n(t){return t.getId()}function i(n,i){var r=null==n?null:t[n],o=null==i?null:e[i];d(r,o)}0===t.length&&0===e.length||new y_(e,t,n,n).add(i).update(i).remove(m["curry"](i,null)).execute()}function d(i,r){if(l||!i||i.getValue()||(i=null),i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):p(r);else if(i){var s=new vH(i,t,e,n);u.add(s),o.setItemGraphicEl(i.dataIndex,s)}}function p(t){t&&t.piece&&(u.remove(t.piece),t.piece=null)}function g(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new vH(i,t,e,n),u.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(u.remove(r.virtualPiece),r.virtualPiece=null)}f(h,c),g(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1,i=t.seriesModel.getViewRoot();i.eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a){var s=o.get("target",!0)||"_blank";tc(a,s)}}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:yH,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData(),i=n.getItemLayout(0);if(i){var r=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(r*r+o*o);return a<=i.r&&a>=i.r0}},e.type="sunburst",e}(pv),MH=xH,SH=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return p(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};OH(n);var i=this._levelModels=m["map"](t.levels||[],(function(t){return new Wl(t,this,e)}),this),r=BL.createTree(n,this,o);function o(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=HL(i,this),n},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){tR(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(Wp);function OH(t){var e=0;m["each"](t.children,(function(t){OH(t);var n=t.value;m["isArray"](n)&&(n=n[0]),e+=n}));var n=t.value;m["isArray"](n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),m["isArray"](t.value)?t.value[0]=n:t.value=n}var AH=SH,IH=Math.PI/180;function kH(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");m["isArray"](i)||(i=[0,i]),m["isArray"](e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Qi(e[0],r),u=Qi(e[1],o),l=Qi(i[0],a/2),h=Qi(i[1],a/2),c=-t.get("startAngle")*IH,f=t.get("minAngle")*IH,d=t.getData().tree.root,p=t.getViewRoot(),g=p.depth,v=t.get("sort");null!=v&&TH(p,v);var y=0;m["each"](p.children,(function(t){!isNaN(t.getValue())&&y++}));var b=p.getValue(),w=Math.PI/(b||y)*2,_=p.depth>0,x=p.height-(_?-1:1),M=(h-l)/(x||1),S=t.get("clockwise"),O=t.get("stillShowZeroSum"),A=S?1:-1,I=function(e,n){if(e){var i=n;if(e!==d){var r=e.getValue(),o=0===b&&O?w:r*w;o1)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&Object(m["isString"])(o)&&(o=Object(Je["lift"])(o,(t.depth-1)/(i-1)*.5)),o}t.eachSeriesByType("sunburst",(function(t){var e=t.getData(),i=e.tree;i.eachNode((function(r){var o=r.getModel(),a=o.getModel("itemStyle").getItemStyle();a.fill||(a.fill=n(r,t,i.root.height));var s=e.ensureUniqueItemVisual(r.dataIndex,"style");Object(m["extend"])(s,a)}))}))}function DH(t){t.registerChartView(MH),t.registerSeriesModel(AH),t.registerLayout(Object(m["curry"])(kH,"sunburst")),t.registerProcessor(Object(m["curry"])(Wk,"sunburst")),t.registerVisual(EH),_H(t)}var LH={color:"fill",borderColor:"stroke"},RH={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},jH=Yr(),PH=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return dx(null,this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=jH(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(Wp),NH=PH;function BH(t,e){return e=e||[0,0],m["map"](["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function zH(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:m["bind"](BH,t)}}}function FH(t,e){return e=e||[0,0],m["map"]([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function VH(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:m["bind"](FH,t)}}}function HH(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function GH(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:Object(m["bind"])(HH,t)}}}function UH(t,e){return e=e||[0,0],m["map"](["Radius","Angle"],(function(n,i){var r="get"+n+"Axis",o=this[r](),a=e[i],s=t[i]/2,u="category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-s)-o.dataToCoord(a+s));return"Angle"===n&&(u=u*Math.PI/180),u}),this)}function WH(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),i=e.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:m["bind"](UH,t)}}}function qH(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}function ZH(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||Object(m["hasOwn"])(t,"text")))}function YH(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},Object(m["hasOwn"])(a,"text")&&(o.text=a.text),Object(m["hasOwn"])(a,"rich")&&(o.rich=a.rich),Object(m["hasOwn"])(a,"textFill")&&(o.fill=a.textFill),Object(m["hasOwn"])(a,"textStroke")&&(o.stroke=a.textStroke),Object(m["hasOwn"])(a,"fontFamily")&&(o.fontFamily=a.fontFamily),Object(m["hasOwn"])(a,"fontSize")&&(o.fontSize=a.fontSize),Object(m["hasOwn"])(a,"fontStyle")&&(o.fontStyle=a.fontStyle),Object(m["hasOwn"])(a,"fontWeight")&&(o.fontWeight=a.fontWeight),r={type:"text",style:o,silent:!0},i={};var s=Object(m["hasOwn"])(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),Object(m["hasOwn"])(a,"textPosition")&&(i.position=a.textPosition),Object(m["hasOwn"])(a,"textOffset")&&(i.offset=a.textOffset),Object(m["hasOwn"])(a,"textRotation")&&(i.rotation=a.textRotation),Object(m["hasOwn"])(a,"textDistance")&&(i.distance=a.textDistance)}return XH(o,t),Object(m["each"])(o.rich,(function(t){XH(t,t)})),{textConfig:i,textContent:r}}function XH(t,e){e&&(e.font=e.textFont||e.font,Object(m["hasOwn"])(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),Object(m["hasOwn"])(e,"textAlign")&&(t.align=e.textAlign),Object(m["hasOwn"])(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),Object(m["hasOwn"])(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),Object(m["hasOwn"])(e,"textWidth")&&(t.width=e.textWidth),Object(m["hasOwn"])(e,"textHeight")&&(t.height=e.textHeight),Object(m["hasOwn"])(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),Object(m["hasOwn"])(e,"textPadding")&&(t.padding=e.textPadding),Object(m["hasOwn"])(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),Object(m["hasOwn"])(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),Object(m["hasOwn"])(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),Object(m["hasOwn"])(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),Object(m["hasOwn"])(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),Object(m["hasOwn"])(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),Object(m["hasOwn"])(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function $H(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";KH(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=t.fill||n.outsideFill||"#000"),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,Object(m["each"])(e.rich,(function(t){KH(t,t)})),i}function KH(t,e){e&&(Object(m["hasOwn"])(e,"fill")&&(t.textFill=e.fill),Object(m["hasOwn"])(e,"stroke")&&(t.textStroke=e.fill),Object(m["hasOwn"])(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),Object(m["hasOwn"])(e,"font")&&(t.font=e.font),Object(m["hasOwn"])(e,"fontStyle")&&(t.fontStyle=e.fontStyle),Object(m["hasOwn"])(e,"fontWeight")&&(t.fontWeight=e.fontWeight),Object(m["hasOwn"])(e,"fontSize")&&(t.fontSize=e.fontSize),Object(m["hasOwn"])(e,"fontFamily")&&(t.fontFamily=e.fontFamily),Object(m["hasOwn"])(e,"align")&&(t.textAlign=e.align),Object(m["hasOwn"])(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),Object(m["hasOwn"])(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),Object(m["hasOwn"])(e,"width")&&(t.textWidth=e.width),Object(m["hasOwn"])(e,"height")&&(t.textHeight=e.height),Object(m["hasOwn"])(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),Object(m["hasOwn"])(e,"padding")&&(t.textPadding=e.padding),Object(m["hasOwn"])(e,"borderColor")&&(t.textBorderColor=e.borderColor),Object(m["hasOwn"])(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),Object(m["hasOwn"])(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),Object(m["hasOwn"])(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),Object(m["hasOwn"])(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),Object(m["hasOwn"])(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),Object(m["hasOwn"])(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),Object(m["hasOwn"])(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),Object(m["hasOwn"])(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),Object(m["hasOwn"])(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),Object(m["hasOwn"])(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var JH={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},QH=Object(m["keys"])(JH),tG=(Object(m["reduce"])(ui,(function(t,e){return t[e]=1,t}),{}),ui.join(", "),["","style","shape","extra"]),eG=Yr();function nG(t,e,n,i,r){var o=t+"Animation",a=al(t,i,r)||{},s=eG(e).userDuring;return a.duration>0&&(a.during=s?Object(m["bind"])(fG,{el:e,userDuring:s}):null,a.setToFinal=!0,a.scope=t),Object(m["extend"])(a,n[o]),a}function iG(t,e,n,i){i=i||{};var r=i.dataIndex,o=i.isInit,a=i.clearStyle,s=n.isAnimationEnabled(),u=eG(t),l=e.style;u.userDuring=e.during;var h={},c={};if(mG(t,e,c),pG("shape",e,c),pG("extra",e,c),!o&&s&&(gG(t,e,h),dG("shape",t,e,h),dG("extra",t,e,h),vG(t,e,l,h)),c.style=l,sG(t,c,a),lG(t,e),s)if(o){var f={};Object(m["each"])(tG,(function(t){var n=t?e[t]:e;n&&n.enterFrom&&(t&&(f[t]=f[t]||{}),Object(m["extend"])(t?f[t]:f,n.enterFrom))}));var d=nG("enter",t,e,n,r);d.duration>0&&t.animateFrom(f,d)}else uG(t,e,r||0,n,h);rG(t,e),l?t.dirty():t.markRedraw()}function rG(t,e){for(var n=eG(t).leaveToProps,i=0;i0&&t.animateFrom(r,o)}}function lG(t,e){Object(m["hasOwn"])(e,"silent")&&(t.silent=e.silent),Object(m["hasOwn"])(e,"ignore")&&(t.ignore=e.ignore),t instanceof ta&&Object(m["hasOwn"])(e,"invisible")&&(t.invisible=e.invisible),t instanceof ss&&Object(m["hasOwn"])(e,"autoBatch")&&(t.autoBatch=e.autoBatch)}var hG={},cG={setTransform:function(t,e){return hG.el[t]=e,this},getTransform:function(t){return hG.el[t]},setShape:function(t,e){var n=hG.el,i=n.shape||(n.shape={});return i[t]=e,n.dirtyShape&&n.dirtyShape(),this},getShape:function(t){var e=hG.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=hG.el,i=n.style;return i&&(i[t]=e,n.dirtyStyle&&n.dirtyStyle()),this},getStyle:function(t){var e=hG.el.style;if(e)return e[t]},setExtra:function(t,e){var n=hG.el.extra||(hG.el.extra={});return n[t]=e,this},getExtra:function(t){var e=hG.el.extra;if(e)return e[t]}};function fG(){var t=this,e=t.el;if(e){var n=eG(e).userDuring,i=t.userDuring;n===i?(hG.el=e,i(cG)):t.el=t.userDuring=null}}function dG(t,e,n,i){var r=n[t];if(r){var o,a=e[t];if(a){var s=n.transition,u=r.transition;if(u)if(!o&&(o=i[t]={}),aG(u))Object(m["extend"])(o,a);else for(var l=Ar(u),h=0;h=0){!o&&(o=i[t]={});var d=Object(m["keys"])(a);for(h=0;h=0)){var f=t.getAnimationStyleProps(),d=f?f.style:null;if(d){!r&&(r=i.style={});var p=Object(m["keys"])(n);for(l=0;l=0?e.getStore().get(r,n):void 0}var o=e.get(i.name,n),a=i&&i.ordinalMeta;return a?a.categories[o]:o}function M(n,i){null==i&&(i=s);var r=e.getItemVisual(i,"style"),o=r&&r.fill,a=r&&r.opacity,u=b(i,SG).getItemStyle();null!=o&&(u.fill=o),null!=a&&(u.opacity=a);var l={inheritColor:Object(m["isString"])(o)?o:"#000"},h=w(i,SG),c=_l(h,null,l,!1,!0);c.text=h.getShallow("show")?Object(m["retrieve2"])(t.getFormattedLabel(i,SG),oI(e,i)):null;var f=xl(h,l,!1);return A(n,u),u=$H(u,c,f),n&&O(u,n),u.legacy=!0,u}function S(n,i){null==i&&(i=s);var r=b(i,MG).getItemStyle(),o=w(i,MG),a=_l(o,null,null,!0,!0);a.text=o.getShallow("show")?Object(m["retrieve3"])(t.getFormattedLabel(i,MG),t.getFormattedLabel(i,SG),oI(e,i)):null;var u=xl(o,null,!0);return A(n,r),r=$H(r,a,u),n&&O(r,n),r.legacy=!0,r}function O(t,e){for(var n in e)Object(m["hasOwn"])(e,n)&&(t[n]=e[n])}function A(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}function I(t,n){if(null==n&&(n=s),Object(m["hasOwn"])(LH,t)){var i=e.getItemVisual(n,"style");return i?i[LH[t]]:null}if(Object(m["hasOwn"])(RH,t))return e.getItemVisual(n,t)}function k(t){if("cartesian2d"===o.type){var e=o.getBaseAxis();return Fx(Object(m["defaults"])({axis:e},t))}}function T(){return n.getCurrentSeriesIndices()}function C(t){return Tl(t,n)}}function WG(t){var e={};return Object(m["each"])(t.dimensions,(function(n){var i=t.getDimensionInfo(n);if(!i.isExtraCoord){var r=i.coordDim,o=e[r]=e[r]||[];o[i.coordDimIndex]=t.getDimensionIndex(n)}})),e}function qG(t,e,n,i,r,o,a){if(i){var s=ZG(t,e,n,i,r,o);return s&&a.setItemGraphicEl(n,s),s&&Zu(s,i.focus,i.blurScope,i.emphasisDisabled),s}o.remove(e)}function ZG(t,e,n,i,r,o){var a=-1,s=e;e&&YG(e,i,r)&&(a=Object(m["indexOf"])(o.childrenRef(),e),e=null);var u=!e,l=e;l?l.clearStates():(l=zG(i),s&&PG(s,l)),!1===i.morph?l.disableMorphing=!0:l.disableMorphing&&(l.disableMorphing=!1),DG.normal.cfg=DG.normal.conOpt=DG.emphasis.cfg=DG.emphasis.conOpt=DG.blur.cfg=DG.blur.conOpt=DG.select.cfg=DG.select.conOpt=null,DG.isLegacy=!1,$G(l,n,i,r,u,DG),XG(l,n,i,r,u),FG(t,l,n,i,DG,r,u),Object(m["hasOwn"])(i,"info")&&(jH(l).info=i.info);for(var h=0;h=0?o.replaceAt(l,a):o.add(l),l}function YG(t,e,n){var i=jH(t),r=e.type,o=e.shape,a=e.style;return n.isUniversalTransitionEnabled()||null!=r&&r!==i.customGraphicType||"path"===r&&sU(o)&&aU(o)!==i.customPathData||"image"===r&&Object(m["hasOwn"])(a,"image")&&a.image!==i.customImagePath}function XG(t,e,n,i,r){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&YG(a,o,i)&&(a=null),a||(a=zG(o),t.setClipPath(a)),FG(null,a,e,o,null,i,r)}}function $G(t,e,n,i,r,o){if(!t.isGroup){KG(n,null,o),KG(n,MG,o);var a=o.normal.conOpt,s=o.emphasis.conOpt,u=o.blur.conOpt,l=o.select.conOpt;if(null!=a||null!=s||null!=l||null!=u){var h=t.getTextContent();if(!1===a)h&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},h?h.clearStates():(h=zG(a),t.setTextContent(h)),FG(null,h,e,a,null,i,r);for(var c=a&&a.style,f=0;f=h;d--){var p=e.childAt(d);eU(e,p,r)}}}function eU(t,e,n){e&&oG(e,jH(t).option,n)}function nU(t){new y_(t.oldChildren,t.newChildren,iU,iU,t).add(rU).update(rU).remove(oU).execute()}function iU(t,e){var n=t&&t.name;return null!=n?n:EG+e}function rU(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;ZG(n.api,r,n.dataIndex,i,n.seriesModel,n.group)}function oU(t){var e=this.context,n=e.oldChildren[t];n&&oG(n,jH(n).option,e.seriesModel)}function aU(t){return t&&(t.pathData||t.d)}function sU(t){return t&&(Object(m["hasOwn"])(t,"pathData")||Object(m["hasOwn"])(t,"d"))}function uU(t){t.registerChartView(BG),t.registerSeriesModel(NH)}var lU=Yr(),hU=m["clone"],cU=m["bind"],fU=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var u={};this.makeElOption(u,r,t,e,n);var l=u.graphicKey;l!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=l;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=m["curry"](dU,e,h);this.updatePointerEl(a,u,c),this.updateLabelEl(a,u,c,e)}else a=this._group=new Ni,this.createPointerEl(a,u,t,e),this.createLabelEl(a,u,t,e),n.getZr().add(a);vU(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=gC(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=lU(t).pointerEl=new a[r.type](hU(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=lU(t).labelEl=new Hs(hU(e.label));t.add(r),gU(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=lU(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=lU(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),gU(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Jm(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){mt(t.event)},onmousedown:cU(this._onHandleDragMove,this,0,0),drift:cU(this._onHandleDragMove,this),ondragend:cU(this._onHandleDragEnd,this)}),i.add(r)),vU(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");m["isArray"](s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,bv(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){dU(this._axisPointerModel,!e&&this._moveAnimation,this._handle,mU(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(mU(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(mU(i)),lU(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var e=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),wv(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}},t}();function dU(t,e,n,i){pU(lU(n).lastProp,i)||(lU(n).lastProp=i,e?ul(n,i,t):(n.stopAnimation(),n.attr(i)))}function pU(t,e){if(m["isObject"](t)&&m["isObject"](e)){var n=!0;return m["each"](e,(function(e,i){n=n&&pU(t[i],e)})),!!n}return t===e}function gU(t,e){t[e.get(["label","show"])?"show":"hide"]()}function mU(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function vU(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}var yU=fU;function bU(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle(),e.fill=null):"shadow"===n&&(e=i.getAreaStyle(),e.stroke=null),e}function wU(t,e,n,i,r){var o=n.get("value"),a=xU(o,e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),s=n.getModel("label"),u=Uh(s.get("padding")||0),l=s.getFont(),h=mi(a,l),c=r.position,f=h.width+u[1]+u[3],d=h.height+u[0]+u[2],p=r.align;"right"===p&&(c[0]-=f),"center"===p&&(c[0]-=f/2);var g=r.verticalAlign;"bottom"===g&&(c[1]-=d),"middle"===g&&(c[1]-=d/2),_U(c,f,d,i);var m=s.get("backgroundColor");m&&"auto"!==m||(m=e.get(["axisLine","lineStyle","color"])),t.label={x:c[0],y:c[1],style:_l(s,{text:a,font:l,fill:s.getTextColor(),padding:u,backgroundColor:m}),z2:10}}function _U(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function xU(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:EM(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};m["each"](i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),m["isString"](a)?o=a.replace("{value}",o):m["isFunction"](a)&&(o=a(s))}return o}function MU(t,e,n){var i=xt();return It(i,i,n.rotation),At(i,i,n.position),Wm([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function SU(t,e,n,i,r,o){var a=sC.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),wU(e,i,r,o,{position:MU(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function OU(t,e,n){return n=n||0,{x1:t[n],y1:t[1-n],x2:e[n],y2:e[1-n]}}function AU(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}function IU(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var kU=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),u=TU(a,o).getOtherAxis(o).getGlobalExtent(),l=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=bU(i),c=CU[s](o,l,u);c.style=h,t.graphicKey=c.type,t.pointer=c}var f=BT(a.model,n);SU(e,t,f,n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=BT(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=MU(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=TU(o,r).getOtherAxis(r).getGlobalExtent(),u="x"===r.dim?0:1,l=[t.x,t.y];l[u]+=e[u],l[u]=Math.min(a[1],l[u]),l[u]=Math.max(a[0],l[u]);var h=(s[1]+s[0])/2,c=[h,h];c[u]=l[u];var f=[{verticalAlign:"middle"},{align:"center"}];return{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:f[u]}},e}(yU);function TU(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var CU={line:function(t,e,n){var i=OU([e,n[0]],[e,n[1]],EU(t));return{type:"Line",subPixelOptimize:!0,shape:i}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:AU([e-i/2,n[0]],[i,r],EU(t))}}};function EU(t){return"x"===t.dim?0:1}var DU=kU,LU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(vc),RU=LU,jU=Yr(),PU=m["each"];function NU(t,e,n){if(!g["a"].node){var i=e.getZr();jU(i).records||(jU(i).records={}),BU(i,e);var r=jU(i).records[t]||(jU(i).records[t]={});r.handler=n}}function BU(t,e){function n(n,i){t.on(n,(function(n){var r=HU(e);PU(jU(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),zU(r.pendings,e)}))}jU(t).initialized||(jU(t).initialized=!0,n("click",m["curry"](VU,"click")),n("mousemove",m["curry"](VU,"mousemove")),n("globalout",FU))}function zU(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function FU(t,e,n){t.handler("leave",null,n)}function VU(t,e,n,i){e.handler(t,n,i)}function HU(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}function GU(t,e){if(!g["a"].node){var n=e.getZr(),i=(jU(n).records||{})[t];i&&(jU(n).records[t]=null)}}var UU=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";NU("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){GU("axisPointer",e)},e.prototype.dispose=function(t,e){GU("axisPointer",e)},e.type="axisPointer",e}(Zp),WU=UU;function qU(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Zr(o,t);if(null==a||a<0||m["isArray"](a))return{point:[]};var s=o.getItemGraphicEl(a),u=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(u&&u.dataToPoint)if(t.isStacked){var l=u.getBaseAxis(),h=u.getOtherAxis(l),c=h.dim,f=l.dim,d="x"===c||"radius"===c?1:0,p=o.mapDimension(f),g=[];g[d]=o.get(p,a),g[1-d]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=u.dataToPoint(g)||[]}else i=u.dataToPoint(o.getValues(m["map"](u.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var v=s.getBoundingRect().clone();v.applyTransform(s.transform),i=[v.x+v.width/2,v.y+v.height/2]}return{point:i,el:s}}var ZU=Yr();function YU(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||Object(m["bind"])(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){rW(r)&&(r=qU({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var u=rW(r),l=o.axesInfo,h=s.axesInfo,c="leave"===i||rW(r),f={},d={},p={list:[],map:{}},g={showPointer:Object(m["curry"])(KU,d),showTooltip:Object(m["curry"])(JU,p)};Object(m["each"])(s.coordSysMap,(function(t,e){var n=u||t.containPoint(r);Object(m["each"])(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=nW(l,t);if(!c&&n&&(!l||o)){var a=o&&o.value;null!=a||u||(a=i.pointToData(r)),null!=a&&XU(t,a,g,!1,f)}}))}));var v={};return Object(m["each"])(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&Object(m["each"])(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,iW(e),iW(t)))),v[t.key]=o}}))})),Object(m["each"])(v,(function(t,e){XU(h[e],t,g,!0,f)})),QU(d,h,f),tW(p,r,t,a),eW(h,a,n),f}}function XU(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=$U(e,t),s=a.payloadBatch,u=a.snapToValue;s[0]&&null==r.seriesIndex&&Object(m["extend"])(r,s[0]),!i&&t.snap&&o.containData(u)&&null!=u&&(e=u),n.showPointer(t,e,s),n.showTooltip(t,a,u)}else n.showPointer(t,e)}function $U(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return Object(m["each"])(e.seriesModels,(function(e,u){var l,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var f=e.getAxisTooltipData(c,t,n);h=f.dataIndices,l=f.nestestValue}else{if(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null),!h.length)return;l=e.getData().get(c[0],h[0])}if(null!=l&&isFinite(l)){var d=t-l,p=Math.abs(d);p<=a&&((p=0&&s<0)&&(a=p,s=d,r=l,o.length=0),Object(m["each"])(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}function KU(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function JU(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var u=e.coordSys.model,l=yC(u),h=t.map[l];h||(h=t.map[l]={coordSysId:u.id,coordSysIndex:u.componentIndex,coordSysType:u.type,coordSysMainType:u.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function QU(t,e,n){var i=n.axesInfo=[];Object(m["each"])(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}function tW(t,e,n,i){if(!rW(e)&&t.list.length){var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}else i({type:"hideTip"})}function eW(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=ZU(i)[r]||{},a=ZU(i)[r]={};Object(m["each"])(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&Object(m["each"])(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],u=[];Object(m["each"])(o,(function(t,e){!a[e]&&u.push(t)})),Object(m["each"])(a,(function(t,e){!o[e]&&s.push(t)})),u.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:u}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function nW(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}function iW(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function rW(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function oW(t){_C.registerAxisPointerClass("CartesianAxisPointer",DU),t.registerComponentModel(RU),t.registerComponentView(WU),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!Object(m["isArray"])(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=uC(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},YU)}function aW(t){p_(LC),p_(oW)}var sW=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o),u=s.getExtent(),l=o.dataToCoord(e),h=i.get("type");if(h&&"none"!==h){var c=bU(i),f=lW[h](o,a,l,u);f.style=c,t.graphicKey=f.type,t.pointer=f}var d=i.get(["label","margin"]),p=uW(e,n,i,a,d);wU(t,n,i,r,p)},e}(yU);function uW(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var u,l,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var f=xt();It(f,f,s),At(f,f,[i.cx,i.cy]),u=Wm([a,-r],f);var d=e.getModel("axisLabel").get("rotate")||0,p=sC.innerTextLayout(s,d*Math.PI/180,-1);l=p.textAlign,h=p.textVerticalAlign}else{var g=c[1];u=i.coordToPoint([g+r,a]);var m=i.cx,v=i.cy;l=Math.abs(u[0]-m)/g<.3?"center":u[0]>m?"left":"right",h=Math.abs(u[1]-v)/g<.3?"middle":u[1]>v?"top":"bottom"}return{position:u,align:l,verticalAlign:h}}var lW={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:OU(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:IU(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:IU(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},hW=sW,cW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.findAxisModel=function(t){var e,n=this.ecModel;return n.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(vc),fW=cW,dW=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Jr).models[0]},e.type="polarAxis",e}(vc);m["mixin"](dW,BM);var pW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="angleAxis",e}(dW),gW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="radiusAxis",e}(dW),mW=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return p(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(OS);mW.prototype.dataToRadius=OS.prototype.dataToCoord,mW.prototype.radiusToData=OS.prototype.coordToData;var vW=mW,yW=Yr(),bW=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return p(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),u=mi(null==o?"":o+"",e.getFont(),"center","top"),l=Math.max(u.height,7),h=l/s;isNaN(h)&&(h=1/0);var c=Math.max(0,Math.floor(h)),f=yW(t.model),d=f.lastAutoInterval,p=f.lastTickCount;return null!=d&&null!=p&&Math.abs(d-c)<=1&&Math.abs(p-r)<=1&&d>c?c=d:(f.lastTickCount=r,f.lastAutoInterval=c),c},e}(OS);bW.prototype.dataToAngle=OS.prototype.dataToCoord,bW.prototype.angleToData=OS.prototype.coordToData;var wW=bW,_W=["radius","angle"],xW=function(){function t(t){this.dimensions=_W,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new vW,this._angleAxis=new wW,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){var e="_"+t+"Axis";return this[e]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;var u=Math.atan2(-n,e)/Math.PI*180,l=ua)u+=360*l;return[s,u]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI,i=Math.cos(n)*e+this.cx,r=-Math.sin(n)*e+this.cy;return[i,r]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis(),n=e.getExtent().slice();n[0]>n[1]&&n.reverse();var i=t.getExtent(),r=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:n[0],r:n[1],startAngle:-i[0]*r,endAngle:-i[1]*r,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i-1e-4,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){var i=MW(e);return i===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=MW(e);return i===this?this.pointToData(n):null},t}();function MW(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var SW=xW;function OW(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Qi(i[0],r),t.cy=Qi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,u=e.get("radius");null==u?u=[0,"100%"]:m["isArray"](u)||(u=[0,u]);var l=[Qi(u[0],s),Qi(u[1],s)];a.inverse?a.setExtent(l[1],l[0]):a.setExtent(l[0],l[1])}function AW(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();m["each"](PM(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),m["each"](PM(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),IM(i.scale,i.model),IM(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function IW(t){return"angleAxis"===t.mainType}function kW(t,e){if(t.type=e.get("type"),t.scale=kM(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),IW(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var TW={dimensions:_W,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new SW(i+"");r.update=AW;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),u=t.findAxisModel("angleAxis");kW(o,s),kW(a,u),OW(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Jr).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},CW=TW,EW=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function DW(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function LW(t){var e=t.getRadiusAxis();return e.inverse?0:1}function RW(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var jW=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return p(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=m["map"](n.getViewLabels(),(function(t){t=m["clone"](t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));RW(s),RW(o),m["each"](EW,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||PW[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(_C),PW={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),u=LW(n),l=u?0:1;a=0===o[l]?new wg({shape:{cx:n.cx,cy:n.cy,r:o[u]},style:s.getLineStyle(),z2:1,silent:!0}):new Ug({shape:{cx:n.cx,cy:n.cy,r:o[u],r0:o[l]},style:s.getLineStyle(),z2:1,silent:!0}),a.style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),u=o[LW(n)],l=m["map"](i,(function(t){return new nm({shape:DW(n,[u,u+s],t.coord)})}));t.add(zm(l,{style:m["defaults"](a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),u=(a.get("inside")?-1:1)*s.get("length"),l=o[LW(n)],h=[],c=0;cp?"left":"right",y=Math.abs(d[1]-g)/f<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var b=s[c];m["isObject"](b)&&b.textStyle&&(a=new Wl(b.textStyle,u,u.ecModel))}var w=new Hs({silent:sC.isLabelSilent(e),style:_l(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:v,verticalAlign:y})});if(t.add(w),h){var _=sC.makeAxisEventDataBase(e);_.targetType="axisLabel",_.value=i.rawLabel,Gs(w).eventData=_}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine"),s=a.getModel("lineStyle"),u=s.get("color"),l=0;u=u instanceof Array?u:[u];for(var h=[],c=0;c=0?"p":"n",A=w;y&&(i[s][S]||(i[s][S]={p:w,n:w}),A=i[s][S][O]);var I=void 0,k=void 0,T=void 0,C=void 0;if("radius"===c.dim){var E=c.dataToCoord(M)-w,D=o.dataToCoord(S);Math.abs(E)=C})}}}))}function ZW(t){var e={};m["each"](t,(function(t,n){var i=t.getData(),r=t.coordinateSystem,o=r.getBaseAxis(),a=WW(r,o),s=o.getExtent(),u="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/i.count(),l=e[a]||{bandWidth:u,remainedWidth:u,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=l.stacks;e[a]=l;var c=UW(t);h[c]||l.autoWidthCount++,h[c]=h[c]||{width:0,maxWidth:0};var f=Qi(t.get("barWidth"),u),d=Qi(t.get("barMaxWidth"),u),p=t.get("barGap"),g=t.get("barCategoryGap");f&&!h[c].width&&(f=Math.min(l.remainedWidth,f),h[c].width=f,l.remainedWidth-=f),d&&(h[c].maxWidth=d),null!=p&&(l.gap=p),null!=g&&(l.categoryGap=g)}));var n={};return m["each"](e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=Qi(t.categoryGap,r),a=Qi(t.gap,1),s=t.remainedWidth,u=t.autoWidthCount,l=(s-o)/(u+(u-1)*a);l=Math.max(l,0),m["each"](i,(function(t,e){var n=t.maxWidth;n&&n=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){var i=cq(e);return i===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=cq(e);return i===this?this.pointToData(n):null},t}();function cq(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var fq=hq;function dq(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new fq(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Jr).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n}var pq={create:dq,dimensions:lq},gq=pq,mq=["x","y"],vq=["width","height"],yq=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=_q(a,1-wq(o)),u=a.dataToPoint(e)[0],l=i.get("type");if(l&&"none"!==l){var h=bU(i),c=bq[l](o,u,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var f=QW(n);SU(e,t,f,n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=QW(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=MU(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=wq(r),s=_q(o,a),u=[t.x,t.y];u[a]+=e[a],u[a]=Math.min(s[1],u[a]),u[a]=Math.max(s[0],u[a]);var l=_q(o,1-a),h=(l[1]+l[0])/2,c=[h,h];return c[a]=u[a],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(yU),bq={line:function(t,e,n){var i=OU([e,n[0]],[e,n[1]],wq(t));return{type:"Line",subPixelOptimize:!0,shape:i}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:AU([e-i/2,n[0]],[i,r],wq(t))}}};function wq(t){return t.isHorizontal()?0:1}function _q(t,e){var n=t.getRect();return[n[mq[e]],n[mq[e]]+n[vq[e]]]}var xq=yq,Mq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="single",e}(Zp);function Sq(t){p_(oW),_C.registerAxisPointerClass("SingleAxisPointer",xq),t.registerComponentView(Mq),t.registerComponentView(rq),t.registerComponentModel(aq),kT(t,"single",aq,aq.defaultOption),t.registerCoordinateSystem("single",gq)}var Oq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(e,n,i){var r=fc(e);t.prototype.init.apply(this,arguments),Aq(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),Aq(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(vc);function Aq(t,e){var n,i=t.cellSize;n=m["isArray"](i)?i:t.cellSize=[i,i],1===n.length&&(n[1]=n[0]);var r=m["map"]([0,1],(function(t){return lc(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));cc(t,e,{type:"box",ignoreSize:r})}var Iq=Oq,kq=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient(),s=e.getLocaleModel();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,s,a,i),this._renderWeekText(t,s,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var u=i.dataToRect([s],!1).tl,l=new Ss({shape:{x:u[0],y:u[1],width:o,height:a},cursor:"default",style:r});n.add(l)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),u=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var l=e.start,h=0;l.time<=e.end.time;h++){f(l.formatedDate),0===h&&(l=o.getDateInfo(e.start.y+"-"+e.start.m));var c=l.date;c.setMonth(c.getMonth()+1),l=o.getDateInfo(c)}function f(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var u=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(u[0]),r._blpoints.push(u[u.length-1]),s&&r._drawSplitline(u,a,i)}f(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,u,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,u,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new Jg({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),u=i.dataToRect([s.time],!1);o[2*s.day]=u.tl,o[2*s.day+1]=u["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return Object(m["isString"])(t)&&t?Xh(t,e):Object(m["isFunction"])(t)?t(e):e.nameMap},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var u=0;return"left"!==i&&"right"!==i||(u=Math.PI/2),{rotation:u,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],u=(s[0][0]+s[1][0])/2,l=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[u,s[h][1]],bottom:[u,s[1-h][1]],left:[s[1-h][0],l],right:[s[h][0],l]},f=e.start.y;+e.end.y>+e.start.y&&(f=f+"-"+e.end.y);var d=r.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:f},g=this._formatterLabel(d,p),m=new Hs({z2:30,style:_l(r,{text:g})});m.attr(this._yearTextPositionControl(m,c[a],n,a,o)),i.add(m)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],u=t[1];return"horizontal"===n?(u+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:u,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n,i){var r=t.getModel("monthLabel");if(r.get("show")){var o=r.get("nameMap"),a=r.get("margin"),s=r.get("position"),u=r.get("align"),l=[this._tlpoints,this._blpoints];o&&!Object(m["isString"])(o)||(o&&(e=sh(o)||e),o=e.get(["time","monthAbbr"])||[]);var h="start"===s?0:1,c="horizontal"===n?0:1;a="start"===s?-a:a;for(var f="center"===u,d=0;d=i.start.time&&n.timea.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/Cq)-Math.floor(n[0].time/Cq)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a){var u=r.getTime()-n[1].time>0?1:-1;while((s=r.getDate())!==a&&(r.getTime()-n[1].time)*u>0)i-=u,r.setDate(s-u)}var l=Math.floor((i+n[0].day+6)/7),h=e?1-l:l-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:l,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&ei.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function Dq(t){var e=t.calendarModel,n=t.seriesModel,i=e?e.coordinateSystem:n?n.coordinateSystem:null;return i}var Lq=Eq;function Rq(t){t.registerComponentModel(Iq),t.registerComponentView(Tq),t.registerCoordinateSystem("calendar",Lq)}function jq(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}function Pq(t,e){var n;return m["each"](e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}function Nq(t,e,n){var i=m["extend"]({},n),r=t[e],o=n.$action||"merge";"merge"===o?r?(m["merge"](r,i,!0),cc(r,i,{ignoreSize:!0}),dc(n,r),Fq(n,r),Fq(n,r,"shape"),Fq(n,r,"style"),Fq(n,r,"extra"),n.clipPath=r.clipPath):t[e]=i:"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}var Bq=["transition","enterFrom","leaveTo"],zq=Bq.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function Fq(t,e,n){if(n&&(!t[n]&&e[n]&&(t[n]={}),t=t[n],e=e[n]),t&&e)for(var i=n?Bq:zq,r=0;r=0;u--){l=n[u],h=Fr(l.id,null),c=null!=h?r.get(h):null;if(c){f=c.parent,g=Uq(f);var v=f===i?{width:o,height:a}:{width:g.width,height:g.height},y={},b=uc(c,l,v,null,{hv:l.hv,boundingMode:l.bounding},y);if(!Uq(c).isNew&&b){for(var w=l.transition,_={},x=0;x=0)?_[M]=S:c[M]=S}ul(c,_,t,0)}else c.attr(y)}}},e.prototype._clear=function(){var t=this,e=this._elMap;e.each((function(n){Yq(n,Uq(n).option,e,t._lastGraphicModel)})),this._elMap=m["createHashMap"]()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(Zp);function qq(t){var e=m["hasOwn"](Gq,t)?Gq[t]:jm(t);var n=new e({});return Uq(n).type=t,n}function Zq(t,e,n,i){var r=qq(n);return e.add(r),i.set(t,r),Uq(r).id=t,Uq(r).isNew=!0,r}function Yq(t,e,n,i){var r=t&&t.parent;r&&("group"===t.type&&t.traverse((function(t){Yq(t,e,n,i)})),oG(t,e,i),n.removeKey(Uq(t).id))}function Xq(t,e,n,i){t.isGroup||m["each"]([["cursor",ta.prototype.cursor],["zlevel",i||0],["z",n||0],["z2",0]],(function(n){var i=n[0];m["hasOwn"](e,i)?t[i]=m["retrieve2"](e[i],n[1]):null==t[i]&&(t[i]=n[1])})),m["each"](m["keys"](e),(function(n){if(0===n.indexOf("on")){var i=e[n];t[n]=m["isFunction"](i)?i:null}})),m["hasOwn"](e,"draggable")&&(t.draggable=e.draggable),null!=e.name&&(t.name=e.name),null!=e.id&&(t.id=e.id)}function $q(t){return t=m["extend"]({},t),m["each"](["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(nc),(function(e){delete t[e]})),t}function Kq(t,e,n){var i=Gs(t).eventData;t.silent||t.ignore||i||(i=Gs(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name}),i&&(i.info=n.info)}function Jq(t){t.registerComponentModel(Hq),t.registerComponentView(Wq),t.registerPreprocessor((function(t){var e=t.graphic;Object(m["isArray"])(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])}))}var Qq=["x","y","radius","angle","single"],tZ=["cartesian2d","polar","singleAxis"];function eZ(t){var e=t.get("coordinateSystem");return Object(m["indexOf"])(tZ,e)>=0}function nZ(t){return t+"Axis"}function iZ(t,e){var n,i=Object(m["createHashMap"])(),r=[],o=Object(m["createHashMap"])();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&u(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),l(t)}function u(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}function l(t){t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function rZ(t){var e=t.ecModel,n={infoList:[],infoMap:Object(m["createHashMap"])()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(nZ(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var oZ=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),aZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return p(e,t),e.prototype.init=function(t,e,n){var i=sZ(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=sZ(t);Object(m["merge"])(this.option,t,!0),Object(m["merge"])(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;Object(m["each"])([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=Object(m["createHashMap"])(),n=this._fillSpecifiedTargetAxis(e);n?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return Object(m["each"])(Qq,(function(n){var i=this.getReferringComponents(nZ(n),Qr);if(i.specified){e=!0;var r=new oZ;Object(m["each"])(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x",o=n.findComponents({mainType:r+"Axis"});a(o,r)}if(i){o=n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}});a(o,"single")}function a(e,n){var r=e[0];if(r){var o=new oZ;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Jr).models[0];a&&Object(m["each"])(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Jr).models[0]&&o.add(t.componentIndex)}))}}}i&&Object(m["each"])(Qq,(function(e){if(i){var r=n.findComponents({mainType:nZ(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new oZ;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");Object(m["each"])([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(nZ(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){Object(m["each"])(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(nZ(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;Object(m["each"])([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;Object(m["each"])(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;io[1];if(h&&!c&&!f)return!0;h&&(r=!0),c&&(e=!0),f&&(n=!0)}return r&&e&&n}))}else gZ(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return a(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}}));gZ(i,(function(t){e.setApproximateExtent(o,t)}))}}))}function a(t){return t>=o[0]&&t<=o[1]}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;gZ(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Ji(n[0]+o,n,[0,100],!0):null!=r&&(o=Ji(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=rr(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();function yZ(t,e,n){var i=[1/0,-1/0];gZ(n,(function(t){NM(i,t.getData(),e)}));var r=t.getAxisModel(),o=MM(r.axis.scale,r,i).calculate();return[o.min,o.max]}var bZ=vZ,wZ={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(nZ(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new bZ(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=Object(m["createHashMap"])();return Object(m["each"])(n,(function(t){Object(m["each"])(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}},_Z=wZ;function xZ(t){t.registerAction("dataZoom",(function(t,e){var n=iZ(e,t);Object(m["each"])(n,(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}var MZ=!1;function SZ(t){MZ||(MZ=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,_Z),xZ(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function OZ(t){t.registerComponentModel(hZ),t.registerComponentView(pZ),SZ(t)}var AZ=function(){function t(){}return t}(),IZ={};function kZ(t,e){IZ[t]=e}function TZ(t){return IZ[t]}var CZ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;m["each"](this.option.feature,(function(t,n){var i=TZ(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),m["merge"](t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(vc),EZ=CZ;function DZ(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=sc(i,o,r);oc(e.get("orient"),t,e.get("itemGap"),a.width,a.height),uc(t,i,o,r)}function LZ(t,e){var n=Uh(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Ss({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1}),t}var RZ=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a="vertical"===t.get("orient"),s=t.get("feature")||{},u=this._features||(this._features={}),l=[];m["each"](s,(function(t,e){l.push(e)})),new y_(this._featureNames||[],l).add(h).update(h).remove(m["curry"](h,null)).execute(),this._featureNames=l,DZ(r,t,n),r.add(LZ(r.getBoundingRect(),t)),a||r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),u=s&&s.ensureState("emphasis");if(u&&!m["isFunction"](u)&&e){var l=u.style||(u.style={}),h=mi(e,Hs.makeFont(l)),c=t.x+r.x,f=t.y+r.y+o,d=!1;f+h.height>n.getHeight()&&(a.position="top",d=!0);var p=d?-5-h.height:o+10;c+h.width/2>n.getWidth()?(a.position=["100%",p],l.align="right"):c-h.width/2<0&&(a.position=[0,p],l.align="left")}}))}function h(r,o){var a,h=l[r],f=l[o],d=s[h],p=new Wl(d,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===h&&(d.title=i.newTitle),h&&!f){if(jZ(h))a={onclick:p.option.onclick,featureName:h};else{var g=TZ(h);if(!g)return;a=new g}u[h]=a}else if(a=u[f],!a)return;a.uid=Zl("toolbox-feature"),a.model=p,a.ecModel=e,a.api=n;var m=a instanceof AZ;h||!f?!p.get("show")||m&&a.unusable?m&&a.remove&&a.remove(e,n):(c(p,a,h),p.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?ku:Tu)(i[t])},a instanceof AZ&&a.render&&a.render(p,e,n,i)):m&&a.dispose&&a.dispose(e,n)}function c(i,s,u){var l,h,c=i.getModel("iconStyle"),f=i.getModel(["emphasis","iconStyle"]),d=s instanceof AZ&&s.getIcons?s.getIcons():i.get("icon"),p=i.get("title")||{};m["isString"](d)?(l={},l[u]=d):l=d,m["isString"](p)?(h={},h[u]=p):h=p;var g=i.iconPaths={};m["each"](l,(function(u,l){var d=Jm(u,{},{x:-o/2,y:-o/2,width:o,height:o});d.setStyle(c.getItemStyle());var p=d.ensureState("emphasis");p.style=f.getItemStyle();var v=new Hs({style:{text:h[l],align:f.get("textAlign"),borderRadius:f.get("textBorderRadius"),padding:f.get("textPadding"),fill:null},ignore:!0});d.setTextContent(v),iv({el:d,componentModel:t,itemName:l,formatterParamsExtra:{title:h[l]}}),d.__title=h[l],d.on("mouseover",(function(){var e=f.getItemStyle(),i=a?null==t.get("right")&&"right"!==t.get("left")?"right":"left":null==t.get("bottom")&&"bottom"!==t.get("top")?"bottom":"top";v.setStyle({fill:f.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:f.get("textBackgroundColor")}),d.setTextConfig({position:f.get("textPosition")||i}),v.ignore=!t.get("showTitle"),n.enterEmphasis(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&n.leaveEmphasis(this),v.hide()})),("emphasis"===i.get(["iconStatus",l])?ku:Tu)(d),r.add(d),d.on("click",m["bind"](s.onclick,s,e,n,l)),g[l]=d}))}},e.prototype.updateView=function(t,e,n,i){m["each"](this._features,(function(t){t instanceof AZ&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){m["each"](this._features,(function(n){n instanceof AZ&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){m["each"](this._features,(function(n){n instanceof AZ&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(Zp);function jZ(t){return 0===t.indexOf("my")}var PZ=RZ,NZ=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",a=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),s=g["a"].browser;if(Object(m["isFunction"])(MouseEvent)&&(s.newEdge||!s.ie&&!s.edge)){var u=document.createElement("a");u.download=i+"."+o,u.target="_blank",u.href=a;var l=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});u.dispatchEvent(l)}else if(window.navigator.msSaveOrOpenBlob||r){var h=a.split(","),c=h[0].indexOf("base64")>-1,f=r?decodeURIComponent(h[1]):h[1];c&&(f=window.atob(f));var d=i+"."+o;if(window.navigator.msSaveOrOpenBlob){var p=f.length,v=new Uint8Array(p);while(p--)v[p]=f.charCodeAt(p);var y=new Blob([v]);window.navigator.msSaveOrOpenBlob(y,d)}else{var b=document.createElement("iframe");document.body.appendChild(b);var w=b.contentWindow,_=w.document;_.open("image/svg+xml","replace"),_.write(f),_.close(),w.focus(),_.execCommand("SaveAs",!0,d),document.body.removeChild(b)}}else{var x=n.get("lang"),M='',S=window.open();S.document.write(M),S.document.title=i}},e.getDefaultOption=function(t){var e={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return e},e}(AZ),BZ=NZ,zZ="__ec_magicType_stack__",FZ=[["line","bar"],["stack"]],VZ=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return m["each"](t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){var e={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return e},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(HZ[n]){var o,a={series:[]},s=function(t){var e=t.subType,r=t.id,o=HZ[n](e,r,t,i);o&&(m["defaults"](o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var u=s.getAxesByScale("ordinal")[0];if(u){var l=u.dim,h=l+"Axis",c=t.getReferringComponents(h,Jr).models[0],f=c.componentIndex;a[h]=a[h]||[];for(var d=0;d<=f;d++)a[h][f]=a[h][f]||{};a[h][f].boundaryGap="bar"===n}}};m["each"](FZ,(function(t){m["indexOf"](t,n)>=0&&m["each"](t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},s);var u=n;"stack"===n&&(o=m["merge"]({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),"emphasis"!==i.get(["iconStatus",n])&&(u="tiled")),e.dispatchAction({type:"changeMagicType",currentType:u,newOption:a,newTitle:o,featureName:"magicType"})}},e}(AZ),HZ={line:function(t,e,n,i){if("bar"===t)return m["merge"]({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return m["merge"]({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===zZ;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),m["merge"]({id:e,stack:r?"":zZ},i.get(["option","stack"])||{},!0)}};Qw({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var GZ=VZ,UZ=new Array(60).join("-"),WZ="\t";function qZ(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}function ZZ(t){var e=[];return m["each"](t,(function(t,n){var i=t.categoryAxis,r=t.valueAxis,o=r.dim,a=[" "].concat(m["map"](t.series,(function(t){return t.name}))),s=[i.model.getCategories()];m["each"](t.series,(function(t){var e=t.getRawData();s.push(t.getRawData().mapArray(e.mapDimension(o),(function(t){return t})))}));for(var u=[a.join(WZ)],l=0;l=0)return!0}var JZ=new RegExp("["+WZ+"]+","g");function QZ(t){for(var e=t.split(/\n+/g),n=$Z(e.shift()).split(JZ),i=[],r=m["map"](n,(function(t){return{name:t,data:[]}})),o=0;o=0;r--){var o=n[r];if(o[i])break}if(r<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(a){var s=a.getPercentRange();n[0][i]={dataZoomId:i,start:s[0],end:s[1]}}}})),n.push(e)}function uY(t){var e=cY(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return oY(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n],t){i[n]=t;break}})),i}function lY(t){aY(t).snapshots=null}function hY(t){return cY(t).length}function cY(t){var e=aY(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var fY=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.onclick=function(t,e){lY(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){var e={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocaleModel().get(["toolbox","restore","title"])};return e},e}(AZ);Qw({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var dY=fY,pY=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],gY=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=vY(e,t);Object(m["each"])(yY,(function(t,e){(!n||!n.include||Object(m["indexOf"])(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=_Y[t.brushType](0,n,e);t.__rangeOffset={offset:MY[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){Object(m["each"])(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&Object(m["each"])(i.coordSyses,(function(i){var r=_Y[t.brushType](1,i,t.range,!0);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){Object(m["each"])(t,(function(t){var n=this.findTargetInfo(t,e);if(t.range=t.range||[],n&&!0!==n){t.panelId=n.panelId;var i=_Y[t.brushType](0,n.coordSys,t.coordRange),r=t.__rangeOffset;t.range=r?MY[t.brushType](i.values,r.offset,OY(i.xyMinMax,r.xyMinMax)):i.values}}),this)},t.prototype.makePanelOpts=function(t,e){return Object(m["map"])(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:ez(i),isTargetByCursor:iz(i,t,n.coordSysModel),getLinearBrushOtherExtent:nz(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&Object(m["indexOf"])(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=vY(e,t),r=0;rt[1]&&t.reverse(),t}function vY(t,e){return $r(t,e,{includeMainTypes:pY})}var yY={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=Object(m["createHashMap"])(),a={},s={};(n||i||r)&&(Object(m["each"])(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),Object(m["each"])(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),Object(m["each"])(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];Object(m["each"])(r.getCartesians(),(function(t,e){(Object(m["indexOf"])(n,t.getAxis("x").model)>=0||Object(m["indexOf"])(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:wY.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){Object(m["each"])(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:wY.geo})}))}},bY=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],wY={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Um(t)),e}},_Y={lineX:Object(m["curry"])(xY,0),lineY:Object(m["curry"])(xY,1),rect:function(t,e,n,i){var r=t?e.pointToData([n[0][0],n[1][0]],i):e.dataToPoint([n[0][0],n[1][0]],i),o=t?e.pointToData([n[0][1],n[1][1]],i):e.dataToPoint([n[0][1],n[1][1]],i),a=[mY([r[0],o[0]]),mY([r[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,n,i){var r=[[1/0,-1/0],[1/0,-1/0]],o=Object(m["map"])(n,(function(n){var o=t?e.pointToData(n,i):e.dataToPoint(n,i);return r[0][0]=Math.min(r[0][0],o[0]),r[1][0]=Math.min(r[1][0],o[1]),r[0][1]=Math.max(r[0][1],o[0]),r[1][1]=Math.max(r[1][1],o[1]),o}));return{values:o,xyMinMax:r}}};function xY(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=mY(Object(m["map"])([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t]),!0):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var MY={lineX:Object(m["curry"])(SY,0),lineY:Object(m["curry"])(SY,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return Object(m["map"])(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function SY(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function OY(t,e){var n=AY(t),i=AY(e),r=[n[0]/i[0],n[1]/i[1]];return isNaN(r[0])&&(r[0]=1),isNaN(r[1])&&(r[1]=1),r}function AY(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var IY=gY,kY=m["each"],TY=Gr("toolbox-dataZoom_"),CY=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.render=function(t,e,n,i){this._brushController||(this._brushController=new tz(n.getZr()),this._brushController.on("brush",m["bind"](this._onBrush,this)).mount()),RY(t,e,this,i,n),LY(t,e)},e.prototype.onclick=function(t,e,n){EY[n].call(this)},e.prototype.remove=function(t,e){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,e){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this._brushController.updateCovers([]);var r=new IY(DY(this.model),i,{include:["grid"]});r.matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(o("x",n,e[0]),o("y",n,e[1])):o({lineX:"x",lineY:"y"}[i],n,e)}})),sY(i,n),this._dispatchZoomAction(n)}function o(t,e,r){var o=e.getAxis(t),s=o.model,u=a(t,s,i),l=u.findRepresentativeAxisProxy(s).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=zN(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),u&&(n[u.id]={dataZoomId:u.id,startValue:r[0],endValue:r[1]})}function a(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){var r=n.getAxisModel(t,e.componentIndex);r&&(i=n)})),i}},e.prototype._dispatchZoomAction=function(t){var e=[];kY(t,(function(t,n){e.push(m["clone"](t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){var e={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return e},e}(AZ),EY={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(uY(this.ecModel))}};function DY(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}function LY(t,e){t.setIconStatus("back",hY(e)>1?"emphasis":"normal")}function RY(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new IY(DY(t),e,{include:["grid"]}),s=a.makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n._brushController.setPanels(s).enableBrush(!(!o||!s.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}Fc("dataZoom",(function(t){var e=t.getComponent("toolbox",0),n=["feature","dataZoom"];if(e&&null!=e.get(n)){var i=e.getModel(n),r=[],o=DY(i),a=$r(t,o);return kY(a.xAxisModels,(function(t){return s(t,"xAxis","xAxisIndex")})),kY(a.yAxisModels,(function(t){return s(t,"yAxis","yAxisIndex")})),r}function s(t,e,n){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:i.get("filterMode",!0)||"filter",id:TY+e+o};a[n]=o,r.push(a)}}));var jY=CY;function PY(t){t.registerComponentModel(EZ),t.registerComponentView(PZ),kZ("saveAsImage",BZ),kZ("magicType",GZ),kZ("dataView",rY),kZ("dataZoom",jY),kZ("restore",dY),p_(OZ)}var NY=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(vc),BY=NY;function zY(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function FY(t){if(g["a"].domSupported)for(var e=document.documentElement.style,n=0,i=t.length;n-1?(u+="top:50%",l+="translateY(-50%) rotate("+(o="left"===a?-225:-45)+"deg)"):(u+="left:50%",l+="translateX(-50%) rotate("+(o="top"===a?225:45)+"deg)");var h=o*Math.PI/180,c=s+r,f=c*Math.abs(Math.cos(h))+c*Math.abs(Math.sin(h)),d=Math.round(100*((f-Math.SQRT2*r)/2+Math.SQRT2*r-(f-c)/2))/100;u+=";"+a+":-"+d+"px";var p=e+" solid "+r+"px;",g=["position:absolute;width:"+s+"px;height:"+s+"px;z-index:-1;",u+";"+l+";","border-bottom:"+p,"border-right:"+p,"background-color:"+i+";"];return'
'}function $Y(t,e){var n="cubic-bezier(0.23,1,0.32,1)",i=" "+t/2+"s "+n,r="opacity"+i+",visibility"+i;return e||(i=" "+t+"s "+n,r+=g["a"].transformSupported?","+qY+i:",left"+i+",top"+i),WY+":"+r}function KY(t,e,n){var i=t.toFixed(0)+"px",r=e.toFixed(0)+"px";if(!g["a"].transformSupported)return n?"top:"+r+";left:"+i+";":[["top",r],["left",i]];var o=g["a"].transform3dSupported,a="translate"+(o?"3d":"")+"("+i+","+r+(o?",0":"")+")";return n?"top:0;left:0;"+qY+":"+a+";":[["top",0],["left",0],[VY,a]]}function JY(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),Object(m["each"])(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}function QY(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),a=t.get("shadowBlur"),s=t.get("shadowColor"),u=t.get("shadowOffsetX"),l=t.get("shadowOffsetY"),h=t.getModel("textStyle"),c=Tp(t,"html"),f=u+"px "+l+"px "+a+"px "+s;return i.push("box-shadow:"+f),e&&r&&i.push($Y(r,n)),o&&i.push("background-color:"+o),Object(m["each"])(["width","color","radius"],(function(e){var n="border-"+e,r=Gh(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(JY(h)),null!=c&&i.push("padding:"+Uh(c).join("px ")+"px"),i.join(";")+";"}function tX(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&J(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var eX=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,g["a"].wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;tX(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!a._enterable){var e=r.handler,n=r.painter.getViewportRoot();ft(n,t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){a._inContent=!1,a._enterable&&a._show&&a.hideLater(a._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=UY(e,"position"),i=e.style;"absolute"!==i.position&&"absolute"!==n&&(i.position="relative");var r=t.get("alwaysShowContent");r&&this._moveIfResized(),this._alwaysShowContent=r,this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,r=this._styleCoord;n.innerHTML?i.cssText=ZY+QY(t,!this._firstShow,this._longHide)+KY(r[0],r[1],!0)+"border-color:"+Qh(e)+";"+(t.get("extraCssText")||"")+";pointer-events:"+(this._enterable?"auto":"none"):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){var o=this.el;if(null!=t){var a="";if(Object(m["isString"])(r)&&"item"===n.get("trigger")&&!zY(n)&&(a=XY(n,i,r)),Object(m["isString"])(t))o.innerHTML=t+a;else if(t){o.innerHTML="",Object(m["isArray"])(t)||(t=[t]);for(var s=0;s=0?this._tryShow(n,i):"leave"===t&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api,i=t.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==i&&"click"!==i){var r=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&r.manuallyShowTip(t,e,n,{x:r._lastX,y:r._lastY,dataByCoordSys:r._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!g["a"].node&&n.getDom()){var r=cX(i,n);this._ticket="";var o=i.dataByCoordSys,a=mX(i,e,n);if(a){var s=a.el.getBoundingRect().clone();s.applyTransform(a.el.transform),this._tryShow({offsetX:s.x+s.width/2,offsetY:s.y+s.height/2,target:a.el,position:i.position,positionDefault:"bottom"},r)}else if(i.tooltip&&null!=i.x&&null!=i.y){var u=uX;u.x=i.x,u.y=i.y,u.update(),Gs(u).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:u},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=qU(i,e),h=l.point[0],c=l.point[1];null!=h&&null!=c&&this._tryShow({offsetX:h,offsetY:c,target:l.el,position:i.position,positionDefault:"bottom"},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(cX(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s){var u=s.getData(),l=hX([u.getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel);if("axis"===l.get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}}},e.prototype._tryShow=function(t,e){var n=t.target,i=this._tooltipModel;if(i){this._lastX=t.offsetX,this._lastY=t.offsetY;var r=t.dataByCoordSys;if(r&&r.length)this._showAxisTooltip(r,t);else if(n){var o,a;this._lastDataByCoordSys=null,dy(n,(function(t){return null!=Gs(t).dataIndex?(o=t,!0):null!=Gs(t).tooltipConfig?(a=t,!0):void 0}),!0),o?this._showSeriesItemTooltip(t,o,e):a?this._showComponentItemTooltip(t,a,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=Object(m["bind"])(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=hX([e.tooltipOption],i),a=this._renderMode,s=[],u=gp("section",{blocks:[],noHeader:!0}),l=[],h=new Cp;Object(m["each"])(t,(function(t){Object(m["each"])(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),r=t.value;if(e&&null!=r){var o=xU(r,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),c=gp("section",{header:o,noHeader:!Object(m["trim"])(o),sortBlocks:!0,blocks:[]});u.blocks.push(c),Object(m["each"])(t.seriesDataIndices,(function(u){var f=n.getSeriesByIndex(u.seriesIndex),d=u.dataIndexInside,p=f.getDataParams(d);if(!(p.dataIndex<0)){p.axisDim=t.axisDim,p.axisIndex=t.axisIndex,p.axisType=t.axisType,p.axisId=t.axisId,p.axisValue=EM(e.axis,{value:r}),p.axisValueLabel=o,p.marker=h.makeTooltipMarker("item",Qh(p.color),a);var g=Od(f.formatTooltip(d,!0,null)),v=g.frag;if(v){var y=hX([f],i).get("valueFormatter");c.blocks.push(y?Object(m["extend"])({valueFormatter:y},v):v)}g.text&&l.push(g.text),s.push(p)}}))}}))})),u.blocks.reverse(),l.reverse();var c=e.position,f=o.get("order"),d=_p(u,h,a,f,n.get("useUTC"),o.get("textStyle"));d&&l.unshift(d);var p="richText"===a?"\n\n":"
",g=l.join(p);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t,s)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=this._ecModel,r=Gs(e),o=r.seriesIndex,a=i.getSeriesByIndex(o),s=r.dataModel||a,u=r.dataIndex,l=r.dataType,h=s.getData(l),c=this._renderMode,f=t.positionDefault,d=hX([h.getItemModel(u),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,f?{position:f}:null),p=d.get("trigger");if(null==p||"item"===p){var g=s.getDataParams(u,l),v=new Cp;g.marker=v.makeTooltipMarker("item",Qh(g.color),c);var y=Od(s.formatTooltip(u,!1,l)),b=d.get("order"),w=d.get("valueFormatter"),_=y.frag,x=_?_p(w?Object(m["extend"])({valueFormatter:w},_):_,v,c,b,i.get("useUTC"),d.get("textStyle")):y.text,M="item_"+s.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,x,g,M,t.offsetX,t.offsetY,t.position,t.target,v)})),n({type:"showTip",dataIndexInside:u,dataIndex:h.getRawIndex(u),seriesIndex:o,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=Gs(e),r=i.tooltipConfig,o=r.option||{};if(Object(m["isString"])(o)){var a=o;o={content:a,formatter:a}}var s=[o],u=this._ecModel.getComponent(i.componentMainType,i.componentIndex);u&&s.push(u),s.push({formatter:o.content});var l=t.positionDefault,h=hX(s,this._tooltipModel,l?{position:l}:null),c=h.get("content"),f=Math.random()+"",d=new Cp;this._showOrMove(h,(function(){var n=Object(m["clone"])(h.get("formatterParams")||{});this._showTooltipContent(h,c,n,f,t.offsetX,t.offsetY,t.position,e,d)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,u){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent;l.setEnterable(t.get("enterable"));var h=t.get("formatter");a=a||t.get("position");var c=e,f=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor")),d=f.color;if(h)if(Object(m["isString"])(h)){var p=t.ecModel.get("useUTC"),g=Object(m["isArray"])(n)?n[0]:n,v=g&&g.axisType&&g.axisType.indexOf("time")>=0;c=h,v&&(c=Mh(g.axisValue,c,p)),c=Yh(c,n,!0)}else if(Object(m["isFunction"])(h)){var y=Object(m["bind"])((function(e,i){e===this._ticket&&(l.setContent(i,u,t,d,a),this._updatePosition(t,a,r,o,l,n,s))}),this);this._ticket=i,c=h(n,i,y)}else c=h;l.setContent(c,u,t,d,a),l.show(t,d),this._updatePosition(t,a,r,o,l,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||Object(m["isArray"])(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:Object(m["isArray"])(e)?void 0:{color:i||e.color||e.borderColor}},e.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),u=this._api.getHeight();e=e||t.get("position");var l=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),f=a&&a.getBoundingRect().clone();if(a&&f.applyTransform(a.transform),Object(m["isFunction"])(e)&&(e=e([n,i],o,r.el,f,{viewSize:[s,u],contentSize:l.slice()})),Object(m["isArray"])(e))n=Qi(e[0],s),i=Qi(e[1],u);else if(Object(m["isObject"])(e)){var d=e;d.width=l[0],d.height=l[1];var p=sc(d,{width:s,height:u});n=p.x,i=p.y,h=null,c=null}else if(Object(m["isString"])(e)&&a){var g=pX(e,f,l,t.get("borderWidth"));n=g[0],i=g[1]}else{g=fX(n,i,r,s,u,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=gX(h)?l[0]/2:"right"===h?l[0]:0),c&&(i-=gX(c)?l[1]/2:"bottom"===c?l[1]:0),zY(t)){g=dX(n,i,r,s,u);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t,e){var n=this._lastDataByCoordSys,i=this._cbParamsList,r=!!n&&n.length===t.length;return r&&Object(m["each"])(n,(function(n,o){var a=n.dataByAxis||[],s=t[o]||{},u=s.dataByAxis||[];r=r&&a.length===u.length,r&&Object(m["each"])(a,(function(t,n){var o=u[n]||{},a=t.seriesDataIndices||[],s=o.seriesDataIndices||[];r=r&&t.value===o.value&&t.axisType===o.axisType&&t.axisId===o.axisId&&a.length===s.length,r&&Object(m["each"])(a,(function(t,e){var n=s[e];r=r&&t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})),i&&Object(m["each"])(t.seriesDataIndices,(function(t){var n=t.seriesIndex,o=e[n],a=i[n];o&&a&&a.data!==o.data&&(r=!1)}))}))})),this._lastDataByCoordSys=t,this._cbParamsList=e,!!r},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){!g["a"].node&&e.getDom()&&(wv(this,"_updatePosition"),this._tooltipContent.dispose(),GU("itemTooltip",e))},e.type="tooltip",e}(Zp);function hX(t,e,n){var i,r=e.ecModel;n?(i=new Wl(n,r,r),i=new Wl(e.option,i,r)):i=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof Wl&&(a=a.get("tooltip",!0)),Object(m["isString"])(a)&&(a={formatter:a}),a&&(i=new Wl(a,i,r)))}return i}function cX(t,e){return t.dispatchAction||Object(m["bind"])(e.dispatchAction,e)}function fX(t,e,n,i,r,o,a){var s=n.getSize(),u=s[0],l=s[1];return null!=o&&(t+u+o+2>i?t-=u+o:t+=o),null!=a&&(e+l+a>r?e-=l+a:e+=a),[t,e]}function dX(t,e,n,i,r){var o=n.getSize(),a=o[0],s=o[1];return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function pX(t,e,n,i){var r=n[0],o=n[1],a=Math.ceil(Math.SQRT2*i)+8,s=0,u=0,l=e.width,h=e.height;switch(t){case"inside":s=e.x+l/2-r/2,u=e.y+h/2-o/2;break;case"top":s=e.x+l/2-r/2,u=e.y-o-a;break;case"bottom":s=e.x+l/2-r/2,u=e.y+h+a;break;case"left":s=e.x-r-a,u=e.y+h/2-o/2;break;case"right":s=e.x+l+a,u=e.y+h/2-o/2}return[s,u]}function gX(t){return"center"===t||"middle"===t}function mX(t,e,n){var i=Kr(t).queryOptionMap,r=i.keys()[0];if(r&&"series"!==r){var o=to(e,r,i.get(r),{useDefault:!1,enableAll:!1,enableNone:!1}),a=o.models[0];if(a){var s,u=n.getViewOfComponentModel(a);return u.group.traverse((function(e){var n=Gs(e).tooltipConfig;if(n&&n.name===t.name)return s=e,!0})),s?{componentMainType:r,componentIndex:a.componentIndex,el:s}:void 0}}}var vX=lX;function yX(t){p_(oW),t.registerComponentModel(BY),t.registerComponentView(vX),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},m["noop"]),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},m["noop"])}var bX=["rect","polygon","keep","clear"];function wX(t,e){var n=Ar(t?t.brush:[]);if(n.length){var i=[];m["each"](n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;m["isArray"](r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),_X(s),e&&!s.length&&s.push.apply(s,bX)}}function _X(t){var e={};m["each"](t,(function(t){e[t]=1})),t.length=0,m["each"](e,(function(e,n){t.push(n)}))}var xX=m["each"];function MX(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function SX(t,e,n){var i={};return xX(e,(function(e){var o=i[e]=r();xX(t[e],(function(t,i){if(ZR.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new ZR(r),"opacity"===i&&(r=m["clone"](r),r.type="colorAlpha",o.__hidden.__alphaForOpacity=new ZR(r))}}))})),i;function r(){var t=function(){};t.prototype.__hidden=t.prototype;var e=new t;return e}}function OX(t,e,n){var i;m["each"](n,(function(t){e.hasOwnProperty(t)&&MX(e[t])&&(i=!0)})),i&&m["each"](n,(function(n){e.hasOwnProperty(n)&&MX(e[n])?t[n]=m["clone"](e[n]):delete t[n]}))}function AX(t,e,n,i,r,o){var a,s={};function u(t){return sy(n,a,t)}function l(t,e){ly(n,a,t,e)}function h(t,h){a=null==o?t:h;var c=n.getRawDataItem(a);if(!c||!1!==c.visualMap)for(var f=i.call(r,t),d=e[f],p=s[f],g=0,m=p.length;ge[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&HX(e)}};function HX(t){return new Ht(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var GX=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new tz(e.getZr())).on("brush",m["bind"](this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){jX(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:m["clone"](n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:m["clone"](n),$from:e})},e.type="brush",e}(Zp),UX=GX,WX="#ddd",qX=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return p(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&OX(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:WX},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=m["map"](t,(function(t){return ZX(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=ZX(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(vc);function ZX(t,e){return m["merge"]({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Wl(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var YX=qX,XX=["rect","polygon","lineX","lineY","keep","clear"],$X=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,m["each"](t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return m["each"](t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){var e={show:!0,type:XX.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])};return e},e}(AZ),KX=$X;function JX(t){t.registerComponentView(UX),t.registerComponentModel(YX),t.registerPreprocessor(wX),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,PX),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},m["noop"]),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},m["noop"]),kZ("brush",KX)}var QX=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return p(e,t),e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(vc),t$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=m["retrieve2"](t.get("textBaseline"),t.get("textVerticalAlign")),u=new Hs({style:_l(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),l=u.getBoundingRect(),h=t.get("subtext"),c=new Hs({style:_l(o,{text:h,fill:o.getTextColor(),y:l.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),f=t.get("link"),d=t.get("sublink"),p=t.get("triggerEvent",!0);u.silent=!f&&!p,c.silent=!d&&!p,f&&u.on("click",(function(){tc(f,"_"+t.get("target"))})),d&&c.on("click",(function(){tc(d,"_"+t.get("subtarget"))})),Gs(u).eventData=Gs(c).eventData=p?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(u),h&&i.add(c);var g=i.getBoundingRect(),v=t.getBoxLayoutParams();v.width=g.width,v.height=g.height;var y=sc(v,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||(a=t.get("left")||t.get("right"),"middle"===a&&(a="center"),"right"===a?y.x+=y.width:"center"===a&&(y.x+=y.width/2)),s||(s=t.get("top")||t.get("bottom"),"center"===s&&(s="middle"),"bottom"===s?y.y+=y.height:"middle"===s&&(y.y+=y.height/2),s=s||"top"),i.x=y.x,i.y=y.y,i.markRedraw();var b={align:a,verticalAlign:s};u.setStyle(b),c.setStyle(b),g=i.getBoundingRect();var w=y.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var x=new Ss({shape:{x:g.x-w[3],y:g.y-w[0],width:g.width+w[1]+w[3],height:g.height+w[0]+w[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});i.add(x)}},e.type="title",e}(Zp);function e$(t){t.registerComponentModel(QX),t.registerComponentView(t$)}var n$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return p(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],Object(m["each"])(n,(function(e,n){var i,o=Fr(Tr(e),"");Object(m["isObject"])(e)?(i=Object(m["clone"])(e),i.value=n):i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number",a=this._data=new Y_([{name:"value",type:o}],this);a.initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(vc),i$=n$,r$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="timeline.slider",e.defaultOption=$l(i$.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(i$);Object(m["mixin"])(r$,Sd.prototype);var o$=r$,a$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="timeline",e}(Zp),s$=a$,u$=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return p(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(OS),l$=u$,h$=Math.PI,c$=Yr(),f$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){var e=a.scale.getLabel({value:t});return gp("nameValue",{noName:!0,value:e})},Object(m["each"])(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i=t.get(["label","position"]),r=t.get("orient"),o=p$(t,e);n=null==i||"auto"===i?"horizontal"===r?o.y+o.height/2=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:h$/2},f="vertical"===r?o.height:o.width,d=t.getModel("controlStyle"),p=d.get("show",!0),g=p?d.get("itemSize"):0,v=p?d.get("itemGap"):0,y=g+v,b=t.get(["label","rotate"])||0;b=b*h$/180;var w=d.get("position",!0),_=p&&d.get("showPlayBtn",!0),x=p&&d.get("showPrevBtn",!0),M=p&&d.get("showNextBtn",!0),S=0,O=f;"left"===w||"bottom"===w?(_&&(a=[0,0],S+=y),x&&(s=[S,0],S+=y),M&&(u=[O-g,0],O-=y)):(_&&(a=[O-g,0],O-=y),x&&(s=[0,0],S+=y),M&&(u=[O-g,0],O-=y));var A=[S,O];return t.get("inverse")&&A.reverse(),{viewRect:o,mainLength:f,orient:r,rotation:c[r],labelRotation:b,labelPosOpt:n,labelAlign:t.get(["label","align"])||l[r],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[r],playPosition:a,prevBtnPosition:s,nextBtnPosition:u,axisExtent:A,controlSize:g,controlGap:v}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=xt(),a=r.x,s=r.y+r.height;At(o,o,[-a,-s]),It(o,o,-h$/2),At(o,o,[a,s]),r=r.clone(),r.applyTransform(o)}var u=v(r),l=v(n.getBoundingRect()),h=v(i.getBoundingRect()),c=[n.x,n.y],f=[i.x,i.y];f[0]=c[0]=u[0][0];var d=t.labelPosOpt;if(null==d||Object(m["isString"])(d)){var p="+"===d?0:1;y(c,l,u,1,p),y(f,h,u,1,1-p)}else{p=d>=0?0:1;y(c,l,u,1,p),f[1]=c[1]+d}function g(t){t.originX=u[0][0]-t.x,t.originY=u[1][0]-t.y}function v(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function y(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(f),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=d$(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.calcNiceTicks();var a=new l$("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Ni;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new nm({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:Object(m["extend"])({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new nm({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:Object(m["defaults"])({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],Object(m["each"])(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),u=s.getModel("itemStyle"),l=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:Object(m["bind"])(r._changeTimeline,r,t.value)},f=m$(s,u,e,c);f.ensureState("emphasis").style=l.getItemStyle(),f.ensureState("progress").style=h.getItemStyle(),Wu(f);var d=Gs(f);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(f)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this,o=n.getLabelModel();if(o.get("show")){var a=i.getData(),s=n.getViewLabels();this._tickLabels=[],Object(m["each"])(s,(function(i){var o=i.tickValue,s=a.getItemModel(o),u=s.getModel("label"),l=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),f=new Hs({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:Object(m["bind"])(r._changeTimeline,r,o),silent:!1,style:_l(u,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});f.ensureState("emphasis").style=_l(l),f.ensureState("progress").style=_l(h),e.add(f),Wu(f),c$(f).dataIndex=o,r._tickLabels.push(f)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),u=i.getPlayState(),l=i.get("inverse",!0);function h(t,n,u,l){if(t){var h=wi(Object(m["retrieve2"])(i.get(["controlStyle",n+"BtnSize"]),r),r),c=[0,-h/2,h,h],f=g$(i,n+"Icon",c,{x:t[0],y:t[1],originX:r/2,originY:0,rotation:l?-o:0,rectHover:!0,style:a,onclick:u});f.ensureState("emphasis").style=s,e.add(f),Wu(f)}}h(t.nextBtnPosition,"next",Object(m["bind"])(this._changeTimeline,this,l?"-":"+")),h(t.prevBtnPosition,"prev",Object(m["bind"])(this._changeTimeline,this,l?"+":"-")),h(t.playPosition,u?"stop":"play",Object(m["bind"])(this._handlePlayClick,this,!u),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,u={onCreate:function(t){t.draggable=!0,t.drift=Object(m["bind"])(s._handlePointerDrag,s),t.ondragend=Object(m["bind"])(s._handlePointerDragend,s),v$(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){v$(t,s._progressLine,o,n,i)}};this._currentPointer=m$(a,a,this._mainGroup,{},this._currentPointer,u)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=this._axis,r=er(i.getExtent().slice());n>r[1]&&(n=r[1]),n=0&&(a[o]=+a[o].toFixed(f)),[a,c]}var j$={min:Object(m["curry"])(R$,"min"),max:Object(m["curry"])(R$,"max"),average:Object(m["curry"])(R$,"average"),median:Object(m["curry"])(R$,"median")};function P$(t,e){if(e){var n=t.getData(),i=t.coordinateSystem,r=i&&i.dimensions;if(!L$(e)&&!Object(m["isArray"])(e.coord)&&Object(m["isArray"])(r)){var o=N$(e,n,i,t);if(e=Object(m["clone"])(e),e.type&&j$[e.type]&&o.baseAxis&&o.valueAxis){var a=Object(m["indexOf"])(r,o.baseAxis.dim),s=Object(m["indexOf"])(r,o.valueAxis.dim),u=j$[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=u[0],e.value=u[1]}else e.coord=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis]}if(null!=e.coord&&Object(m["isArray"])(r))for(var l=e.coord,h=0;h<2;h++)j$[l[h]]&&(l[h]=H$(n,n.mapDimension(r[h]),l[h]));else e.coord=[];return e}}function N$(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(B$(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function B$(t,e){var n=t.getData().getDimensionInfo(e);return n&&n.coordDim}function z$(t,e){return!(t&&t.containData&&e.coord&&!D$(e))||t.containData(e.coord)}function F$(t,e,n){return!(t&&t.containZone&&e.coord&&n.coord&&!D$(e)&&!D$(n))||t.containZone(e.coord,n.coord)}function V$(t,e){return t?function(t,n,i,r){var o=r<2?t.coord&&t.coord[r]:t.value;return Td(o,e[r])}:function(t,n,i,r){return Td(t.value,e[r])}}function H$(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var G$=Yr(),U$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.init=function(){this.markerGroupMap=Object(m["createHashMap"])()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){G$(t).keep=!1})),e.eachSeries((function(t){var r=T$.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!G$(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){G$(t).keep=!0},e.prototype.toggleBlurSeries=function(t,e){var n=this;Object(m["each"])(t,(function(t){var i=T$.getMarkerModelFromSeries(t,n.type);if(i){var r=i.getData();r.eachItemGraphicEl((function(t){t&&(e?Cu(t):Eu(t))}))}}))},e.type="marker",e}(Zp),W$=U$;function q$(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Qi(a.get("x"),n.getWidth()),u=Qi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(u)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var l=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([l,h])}}else o=[s,u];isNaN(s)||(o[0]=s),isNaN(u)||(o[1]=u),t.setItemLayout(r,o)}))}var Z$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=T$.getMarkerModelFromSeries(t,"markPoint");e&&(q$(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,u=s.get(o)||s.set(o,new pI),l=Y$(r,t,e);e.setData(l),q$(e.getData(),t,i),l.each((function(t){var n=l.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate"),s=n.getShallow("symbolOffset"),u=n.getShallow("symbolKeepAspect");if(Object(m["isFunction"])(i)||Object(m["isFunction"])(r)||Object(m["isFunction"])(o)||Object(m["isFunction"])(s)){var h=e.getRawValue(t),c=e.getDataParams(t);Object(m["isFunction"])(i)&&(i=i(h,c)),Object(m["isFunction"])(r)&&(r=r(h,c)),Object(m["isFunction"])(o)&&(o=o(h,c)),Object(m["isFunction"])(s)&&(s=s(h,c))}var f=n.getModel("itemStyle").getItemStyle(),d=uy(a,"color");f.fill||(f.fill=d),l.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,symbolOffset:s,symbolKeepAspect:u,style:f})})),u.updateData(l),this.group.add(u.group),l.eachItemGraphicEl((function(t){t.traverse((function(t){Gs(t).dataModel=e}))})),this.markKeep(u),u.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(W$);function Y$(t,e,n){var i;i=t?Object(m["map"])(t&&t.dimensions,(function(t){var n=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return Object(m["extend"])(Object(m["extend"])({},n),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new Y_(i,n),o=Object(m["map"])(n.get("data"),Object(m["curry"])(P$,e));t&&(o=Object(m["filter"])(o,Object(m["curry"])(z$,t)));var a=V$(!!t,i);return r.initData(o,null,a),r}var X$=Z$;function $$(t){t.registerComponentModel(E$),t.registerComponentView(X$),t.registerPreprocessor((function(t){O$(t.series,"markPoint")&&(t.markPoint=t.markPoint||{})}))}var K$=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(T$),J$=K$,Q$=Yr(),tK=function(t,e,n,i){var r,o=t.getData();if(Object(m["isArray"])(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,u=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),u=Object(m["retrieve"])(i.yAxis,i.xAxis);else{var l=N$(i,o,e,t);s=l.valueAxis;var h=sx(o,l.valueDataDim);u=H$(o,h,a)}var c="x"===s.dim?0:1,f=1-c,d=Object(m["clone"])(i),p={coord:[]};d.type=null,d.coord=[],d.coord[f]=-1/0,p.coord[f]=1/0;var g=n.get("precision");g>=0&&Object(m["isNumber"])(u)&&(u=+u.toFixed(Math.min(g,20))),d.coord[c]=p.coord[c]=u,r=[d,p,{type:a,valueIndex:i.valueIndex,value:u}]}else r=[]}var v=[P$(t,r[0]),P$(t,r[1]),Object(m["extend"])({},r[2])];return v[2].type=v[2].type||null,Object(m["merge"])(v[2],v[0]),Object(m["merge"])(v[2],v[1]),v};function eK(t){return!isNaN(t)&&!isFinite(t)}function nK(t,e,n,i){var r=1-t,o=i.dimensions[t];return eK(e[r])&&eK(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function iK(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(nK(1,n,i,t)||nK(0,n,i,t)))return!0}return z$(t,e[0])&&z$(t,e[1])}function rK(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),u=Qi(s.get("x"),r.getWidth()),l=Qi(s.get("y"),r.getHeight());if(isNaN(u)||isNaN(l)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),f=t.get(h[1],e);o=a.dataToPoint([c,f])}if(EI(a,"cartesian2d")){var d=a.getAxis("x"),p=a.getAxis("y");h=a.dimensions;eK(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):eK(t.get(h[1],e))&&(o[1]=p.toGlobalCoord(p.getExtent()[n?0:1]))}isNaN(u)||(o[0]=u),isNaN(l)||(o[1]=l)}else o=[u,l];t.setItemLayout(e,o)}var oK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=T$.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=Q$(e).from,o=Q$(e).to;r.each((function(e){rK(r,e,!0,t,n),rK(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,u=s.get(o)||s.set(o,new _P);this.group.add(u.group);var l=aK(r,t,e),h=l.from,c=l.to,f=l.line;Q$(e).from=h,Q$(e).to=c,e.setData(f);var d=e.get("symbol"),p=e.get("symbolSize"),g=e.get("symbolRotate"),v=e.get("symbolOffset");function y(e,n,r){var o=e.getItemModel(n);rK(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=uy(a,"color")),e.setItemVisual(n,{symbolKeepAspect:o.get("symbolKeepAspect"),symbolOffset:Object(m["retrieve2"])(o.get("symbolOffset",!0),v[r?0:1]),symbolRotate:Object(m["retrieve2"])(o.get("symbolRotate",!0),g[r?0:1]),symbolSize:Object(m["retrieve2"])(o.get("symbolSize"),p[r?0:1]),symbol:Object(m["retrieve2"])(o.get("symbol",!0),d[r?0:1]),style:s})}Object(m["isArray"])(d)||(d=[d,d]),Object(m["isArray"])(p)||(p=[p,p]),Object(m["isArray"])(g)||(g=[g,g]),Object(m["isArray"])(v)||(v=[v,v]),l.from.each((function(t){y(h,t,!0),y(c,t,!1)})),f.each((function(t){var e=f.getItemModel(t).getModel("lineStyle").getLineStyle();f.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),f.setItemVisual(t,{fromSymbolKeepAspect:h.getItemVisual(t,"symbolKeepAspect"),fromSymbolOffset:h.getItemVisual(t,"symbolOffset"),fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolKeepAspect:c.getItemVisual(t,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(t,"symbolOffset"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),u.updateData(f),l.line.eachItemGraphicEl((function(t){Gs(t).dataModel=e,t.traverse((function(t){Gs(t).dataModel=e}))})),this.markKeep(u),u.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(W$);function aK(t,e,n){var i;i=t?Object(m["map"])(t&&t.dimensions,(function(t){var n=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return Object(m["extend"])(Object(m["extend"])({},n),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new Y_(i,n),o=new Y_(i,n),a=new Y_([],n),s=Object(m["map"])(n.get("data"),Object(m["curry"])(tK,e,t,n));t&&(s=Object(m["filter"])(s,Object(m["curry"])(iK,t)));var u=V$(!!t,i);return r.initData(Object(m["map"])(s,(function(t){return t[0]})),null,u),o.initData(Object(m["map"])(s,(function(t){return t[1]})),null,u),a.initData(Object(m["map"])(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}var sK=oK;function uK(t){t.registerComponentModel(J$),t.registerComponentView(sK),t.registerPreprocessor((function(t){O$(t.series,"markLine")&&(t.markLine=t.markLine||{})}))}var lK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(T$),hK=lK,cK=Yr(),fK=function(t,e,n,i){var r=i[0],o=i[1];if(r&&o){var a=P$(t,r),s=P$(t,o),u=a.coord,l=s.coord;u[0]=Object(m["retrieve"])(u[0],-1/0),u[1]=Object(m["retrieve"])(u[1],-1/0),l[0]=Object(m["retrieve"])(l[0],1/0),l[1]=Object(m["retrieve"])(l[1],1/0);var h=Object(m["mergeAll"])([{},a,s]);return h.coord=[a.coord,s.coord],h.x0=a.x,h.y0=a.y,h.x1=s.x,h.y1=s.y,h}};function dK(t){return!isNaN(t)&&!isFinite(t)}function pK(t,e,n,i){var r=1-t;return dK(e[r])&&dK(n[r])}function gK(t,e){var n=e.coord[0],i=e.coord[1],r={coord:n,x:e.x0,y:e.y0},o={coord:i,x:e.x1,y:e.y1};return EI(t,"cartesian2d")?!(!n||!i||!pK(1,n,i,t)&&!pK(0,n,i,t))||F$(t,r,o):z$(t,r)||z$(t,o)}function mK(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),u=Qi(s.get(n[0]),r.getWidth()),l=Qi(s.get(n[1]),r.getHeight());if(isNaN(u)||isNaN(l)){if(i.getMarkerPosition){var h=t.getValues(["x0","y0"],e),c=t.getValues(["x1","y1"],e),f=a.clampData(h),d=a.clampData(c),p=[];"x0"===n[0]?p[0]=f[0]>d[0]?c[0]:h[0]:p[0]=f[0]>d[0]?h[0]:c[0],"y0"===n[1]?p[1]=f[1]>d[1]?c[1]:h[1]:p[1]=f[1]>d[1]?h[1]:c[1],o=i.getMarkerPosition(p,n,!0)}else{var g=t.get(n[0],e),m=t.get(n[1],e),v=[g,m];a.clampData&&a.clampData(v,v),o=a.dataToPoint(v,!0)}if(EI(a,"cartesian2d")){var y=a.getAxis("x"),b=a.getAxis("y");g=t.get(n[0],e),m=t.get(n[1],e);dK(g)?o[0]=y.toGlobalCoord(y.getExtent()["x0"===n[0]?0:1]):dK(m)&&(o[1]=b.toGlobalCoord(b.getExtent()["y0"===n[1]?0:1]))}isNaN(u)||(o[0]=u),isNaN(l)||(o[1]=l)}else o=[u,l];return o}var vK=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],yK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=T$.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=Object(m["map"])(vK,(function(r){return mK(i,e,r,t,n)}));i.setItemLayout(e,r);var o=i.getItemGraphicEl(e);o.setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,u=s.get(o)||s.set(o,{group:new Ni});this.group.add(u.group),this.markKeep(u);var l=bK(r,t,e);e.setData(l),l.each((function(e){var n=Object(m["map"])(vK,(function(n){return mK(l,e,n,t,i)})),o=r.getAxis("x").scale,s=r.getAxis("y").scale,u=o.getExtent(),h=s.getExtent(),c=[o.parse(l.get("x0",e)),o.parse(l.get("x1",e))],f=[s.parse(l.get("y0",e)),s.parse(l.get("y1",e))];er(c),er(f);var d=!(u[0]>c[1]||u[1]f[1]||h[1]=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(vc),SK=MK,OK=m["curry"],AK=m["each"],IK=Ni,kK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return p(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new IK),this.group.add(this._selectorGroup=new IK),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var u=t.getBoxLayoutParams(),l={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=sc(u,l,h),f=this.layoutInner(t,r,c,i,a,s),d=sc(m["defaults"]({width:f.width,height:f.height},u),l,h);this.group.x=d.x-f.x,this.group.y=d.y-f.y,this.group.markRedraw(),this.group.add(this._backgroundEl=LZ(f,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),u=m["createHashMap"](),l=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),AK(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new IK;return c.newline=!0,void s.add(c)}var f=n.getSeriesByName(a)[0];if(!u.get(a)){if(f){var d=f.getData(),p=d.getVisual("legendLineStyle")||{},g=d.getVisual("legendIcon"),v=d.getVisual("style"),y=this._createItem(f,a,o,r,e,t,p,v,g,l,i);y.on("click",OK(EK,a,null,i,h)).on("mouseover",OK(LK,f.name,null,i,h)).on("mouseout",OK(RK,f.name,null,i,h)),u.set(a,!0)}else n.eachRawSeries((function(n){if(!u.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),f=s.getItemVisual(c,"style"),d=s.getItemVisual(c,"legendIcon"),p=Object(Je["parse"])(f.fill);p&&0===p[3]&&(p[3]=.2,f=m["extend"](m["extend"]({},f),{fill:Object(Je["stringify"])(p,"rgba")}));var g=this._createItem(n,a,o,r,e,t,{},f,d,l,i);g.on("click",OK(EK,null,a,i,h)).on("mouseover",OK(LK,null,a,i,h)).on("mouseout",OK(RK,null,a,i,h)),u.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();AK(t,(function(t){var i=t.type,r=new Hs({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r);var a=e.getModel("selectorLabel"),s=e.getModel(["emphasis","selectorLabel"]);bl(r,{normal:a,emphasis:s},{defaultText:t.title}),Wu(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,u,l,h){var c=t.visualDrawType,f=r.get("itemWidth"),d=r.get("itemHeight"),p=r.isSelected(e),g=i.get("symbolRotate"),v=i.get("symbolKeepAspect"),y=i.get("icon");u=y||u||"roundRect";var b=TK(u,i,a,s,c,p,h),w=new IK,_=i.getModel("textStyle");if(!m["isFunction"](t.getLegendIcon)||y&&"inherit"!==y){var x="inherit"===y&&t.getData().getVisual("symbol")?"inherit"===g?t.getData().getVisual("symbolRotate"):g:0;w.add(CK({itemWidth:f,itemHeight:d,icon:u,iconRotate:x,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:v}))}else w.add(t.getLegendIcon({itemWidth:f,itemHeight:d,icon:u,iconRotate:g,itemStyle:b.itemStyle,lineStyle:b.lineStyle,symbolKeepAspect:v}));var M="left"===o?f+5:-5,S=o,O=r.get("formatter"),A=e;m["isString"](O)&&O?A=O.replace("{name}",null!=e?e:""):m["isFunction"](O)&&(A=O(e));var I=i.get("inactiveColor");w.add(new Hs({style:_l(_,{text:A,x:M,y:d/2,fill:p?_.getTextColor():I,align:S,verticalAlign:"middle"})}));var k=new Ss({shape:w.getBoundingRect(),invisible:!0}),T=i.getModel("tooltip");return T.get("show")&&iv({el:k,componentModel:r,itemName:e,itemTooltipOption:T.option}),w.add(k),w.eachChild((function(t){t.silent=!0})),k.silent=!l,this.getContentGroup().add(w),Wu(w),w.__legendDataIndex=n,w},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();oc(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var u=a.getBoundingRect(),l=[-u.x,-u.y];if(s.markRedraw(),a.markRedraw(),r){oc("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],f=t.get("selectorButtonGap",!0),d=t.getOrient().index,p=0===d?"width":"height",g=0===d?"height":"width",m=0===d?"y":"x";"end"===o?c[d]+=u[p]+f:l[d]+=h[p]+f,c[1-d]+=u[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=l[0],a.y=l[1];var v={x:0,y:0};return v[p]=u[p]+f+h[p],v[g]=Math.max(u[g],h[g]),v[m]=Math.min(0,h[m]+c[1-d]),v}return a.x=l[0],a.y=l[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(Zp);function TK(t,e,n,i,r,o,a){function s(t,e){"auto"===t.lineWidth&&(t.lineWidth=e.lineWidth>0?2:0),AK(t,(function(n,i){"inherit"===t[i]&&(t[i]=e[i])}))}var u=e.getModel("itemStyle"),l=u.getItemStyle(),h=0===t.lastIndexOf("empty",0)?"fill":"stroke",c=u.getShallow("decal");l.decal=c&&"inherit"!==c?mb(c,a):i.decal,"inherit"===l.fill&&(l.fill=i[r]),"inherit"===l.stroke&&(l.stroke=i[h]),"inherit"===l.opacity&&(l.opacity=("fill"===r?i:n).opacity),s(l,i);var f=e.getModel("lineStyle"),d=f.getLineStyle();if(s(d,n),"auto"===l.fill&&(l.fill=i.fill),"auto"===l.stroke&&(l.stroke=i.fill),"auto"===d.stroke&&(d.stroke=i.fill),!o){var p=e.get("inactiveBorderWidth"),g=l[h];l.lineWidth="auto"===p?i.lineWidth>0&&g?2:0:l.lineWidth,l.fill=e.get("inactiveColor"),l.stroke=e.get("inactiveBorderColor"),d.stroke=f.get("inactiveColor"),d.lineWidth=f.get("inactiveWidth")}return{itemStyle:l,lineStyle:d}}function CK(t){var e=t.icon||"roundRect",n=Iy(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill,t.symbolKeepAspect);return n.setStyle(t.itemStyle),n.rotation=(t.iconRotate||0)*Math.PI/180,n.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n}function EK(t,e,n,i){RK(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),LK(t,e,n,i)}function DK(t){var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;while(in[r],p=[-c.x,-c.y];e||(p[i]=u[s]);var g=[0,0],v=[-f.x,-f.y],y=m["retrieve2"](t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var b=t.get("pageButtonPosition",!0);"end"===b?v[i]+=n[r]-f[r]:g[i]+=f[r]+y}v[1-i]+=c[o]/2-f[o]/2,u.setPosition(p),l.setPosition(g),h.setPosition(v);var w={x:0,y:0};if(w[r]=d?n[r]:c[r],w[o]=Math.max(c[o],f[o]),w[a]=Math.min(0,f[a]+v[1-i]),l.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-f[r]-y,0),_[o]=w[o],l.setClipPath(new Ss({shape:_})),l.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&ul(u,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),w},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;m["each"](["pagePrev","pageNext"],(function(i){var r=i+"DataIndex",o=null!=e[r],a=n.childOfName(i);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",m["isString"](r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=UK[r],a=WK[r],s=this._findTargetItemIndex(e),u=n.children(),l=u[s],h=u.length,c=h?1:0,f={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!l)return f;var d=y(l);f.contentPosition[r]=-d.s;for(var p=s+1,g=d,m=d,v=null;p<=h;++p)v=y(u[p]),(!v&&m.e>g.s+i||v&&!b(v,g.s))&&(g=m.i>g.i?m:v,g&&(null==f.pageNextDataIndex&&(f.pageNextDataIndex=g.i),++f.pageCount)),m=v;for(p=s-1,g=d,m=d,v=null;p>=-1;--p)v=y(u[p]),v&&b(m,v.s)||!(g.i=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){if(!this._showController)return 0;var e,n,i=this.getContentGroup();return i.eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n},e.type="legend.scroll",e}(jK),ZK=qK;function YK(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}function XK(t){p_(zK),t.registerComponentModel(HK),t.registerComponentView(ZK),YK(t)}function $K(t){p_(zK),p_(XK)}var KK=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="dataZoom.inside",e.defaultOption=$l(uZ.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(uZ),JK=KK,QK=Yr();function tJ(t,e,n){QK(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function eJ(t,e){for(var n=QK(t).coordSysRecordMap,i=n.keys(),r=0;ri[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}function sJ(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=QK(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=Object(m["createHashMap"])());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){var n=rZ(t);Object(m["each"])(n.infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,iJ(e,n.model)),a=o.dataZoomInfoMap||(o.dataZoomInfoMap=Object(m["createHashMap"])());a.set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=aJ(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),bv(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else nJ(i,t)}))}))}var uJ=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return p(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),tJ(i,e,{pan:Object(m["bind"])(lJ.pan,this),zoom:Object(m["bind"])(lJ.zoom,this),scrollMove:Object(m["bind"])(lJ.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){eJ(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(fZ),lJ={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=cJ[e](null,[i.originX,i.originY],a,n,t),u=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],l=Math.max(1/i.scale,0);o[0]=(o[0]-u)*l+u,o[1]=(o[1]-u)*l+u;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return zN(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:hJ((function(t,e,n,i,r,o){var a=cJ[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:hJ((function(t,e,n,i,r,o){var a=cJ[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n);return a.signal*(t[1]-t[0])*o.scrollDelta}))};function hJ(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s){var u=t(a,s,e,n,i,r);return zN(u,a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}}var cJ={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,u=s.getRadiusAxis().getExtent(),l=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}},fJ=uJ;function dJ(t){SZ(t),t.registerComponentModel(JK),t.registerComponentView(fJ),sJ(t)}var pJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=$l(uZ.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(uZ),gJ=pJ,mJ=Ss,vJ=7,yJ=1,bJ=30,wJ=7,_J="horizontal",xJ="vertical",MJ=5,SJ=["line","bar","candlestick","scatter"],OJ={easing:"cubicOut",duration:100,delay:0},AJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return p(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=Object(m["bind"])(this._onBrush,this),this._onBrushEnd=Object(m["bind"])(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),bv(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){wv(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Ni;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect"),i=n?wJ:0,r=this._findCoordRect(),o={width:e.getWidth(),height:e.getHeight()},a=this._orient===_J?{right:o.width-r.x-r.width,top:o.height-bJ-vJ-i,width:r.width,height:bJ}:{right:vJ,top:r.y,width:bJ,height:r.height},s=fc(t.option);Object(m["each"])(["right","top","width","height"],(function(t){"ph"===s[t]&&(s[t]=a[t])}));var u=sc(s,o);this._location={x:u.x,y:u.y},this._size=[u.width,u.height],this._orient===xJ&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==_J||r?n===_J&&r?{scaleY:a?1:-1,scaleX:-1}:n!==xJ||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new mJ({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new mJ({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:Object(m["bind"])(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=this._shadowSize||[],i=t.series,r=i.getRawData(),o=i.getShadowDim&&i.getShadowDim(),a=o&&r.getDimensionInfo(o)?i.getShadowDim():t.otherDim;if(null!=a){var s=this._shadowPolygonPts,u=this._shadowPolylinePts;if(r!==this._shadowData||a!==this._shadowDim||e[0]!==n[0]||e[1]!==n[1]){var l=r.getDataExtent(a),h=.3*(l[1]-l[0]);l=[l[0]-h,l[1]+h];var c,f=[0,e[1]],d=[0,e[0]],p=[[e[0],0],[0,0]],g=[],m=d[1]/(r.count()-1),v=0,y=Math.round(r.count()/e[0]);r.each([a],(function(t,e){if(y>0&&e%y)v+=m;else{var n=null==t||isNaN(t)||""===t,i=n?0:Ji(t,l,f,!0);n&&!c&&e?(p.push([p[p.length-1][0],0]),g.push([g[g.length-1][0],0])):!n&&c&&(p.push([v,0]),g.push([v,0])),p.push([v,i]),g.push([v,i]),v+=m,c=n}})),s=this._shadowPolygonPts=p,u=this._shadowPolylinePts=g}this._shadowData=r,this._shadowDim=a,this._shadowSize=[e[0],e[1]];for(var b=this.dataZoomModel,w=0;w<3;w++){var _=x(1===w);this._displayables.sliderGroup.add(_),this._displayables.dataShadowSegs.push(_)}}}function x(t){var e=b.getModel(t?"selectedDataBackground":"dataBackground"),n=new Ni,i=new Xg({shape:{points:s},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Jg({shape:{points:u},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){var a=t.getAxisProxy(r,o).getTargetSeriesModels();Object(m["each"])(a,(function(t){if(!n&&!(!0!==e&&Object(m["indexOf"])(SJ,t.get("type"))<0)){var a,s=i.getComponent(nZ(r),o).axis,u=IJ(r),l=t.coordinateSystem;null!=u&&l.getOtherAxis&&(a=l.getOtherAxis(s).inverse),u=t.getData().mapDimension(u),n={thisAxis:s,series:t,thisDim:r,otherDim:u,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,u=a.get("borderRadius")||0,l=a.get("brushSelect"),h=e.filler=new mJ({silent:l,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new mJ({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:u},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:yJ,fill:"rgba(0,0,0,0)"}})),Object(m["each"])([0,1],(function(e){var o=a.get("handleIcon");!Sy[o]&&o.indexOf("path://")<0&&o.indexOf("image://")<0&&(o="path://"+o);var s=Iy(o,-1,0,2,2,null,!0);s.attr({cursor:kJ(this._orient),draggable:!0,drift:Object(m["bind"])(this._onDragMove,this,e),ondragend:Object(m["bind"])(this._onDragEnd,this),onmouseover:Object(m["bind"])(this._showDataInfo,this,!0),onmouseout:Object(m["bind"])(this._showDataInfo,this,!1),z2:5});var u=s.getBoundingRect(),l=a.get("handleSize");this._handleHeight=Qi(l,this._size[1]),this._handleWidth=u.width/u.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Wu(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new Hs({silent:!0,invisible:!0,style:_l(c,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()}),z2:10}))}),this);var c=h;if(l){var f=Qi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Ss({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:f}}),p=.8*f,g=e.moveHandleIcon=Iy(a.get("moveHandleIcon"),-p/2,-p/2,p,p,"#fff",!0);g.silent=!0,g.y=o[1]+f/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var v=Math.min(o[1]/2,Math.max(f,10));c=e.moveZone=new Ss({invisible:!0,shape:{y:o[1]-v,height:f+v}}),c.on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:kJ(this._orient),drift:Object(m["bind"])(this._onDragMove,this,"all"),ondragstart:Object(m["bind"])(this._showDataInfo,this,!0),ondragend:Object(m["bind"])(this._onDragEnd,this),onmouseover:Object(m["bind"])(this._showDataInfo,this,!0),onmouseout:Object(m["bind"])(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Ji(t[0],[0,100],e,!0),Ji(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];zN(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Ji(o.minSpan,a,r,!0):null,null!=o.maxSpan?Ji(o.maxSpan,a,r,!0):null);var s=this._range,u=this._range=er([Ji(i[0],r,a,!0),Ji(i[1],r,a,!0)]);return!s||s[0]!==u[0]||s[1]!==u[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=er(n.slice()),r=this._size;Object(m["each"])([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],u=0;ue[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Dt(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape,i=+new Date;if(!(i-this._brushStartTime<200&&Math.abs(n.width)<5)){var r=this._getViewExtent(),o=[0,100];this._range=er([Ji(n.x,r,o,!0),Ji(n.x+n.width,r,o,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(mt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new mJ({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),u=a.transformCoordToLocal(o.x,o.y),l=this._size;s[0]=Math.max(Math.min(l[0],s[0]),0),r.setShape({x:u[0],y:0,width:s[0]-u[0],height:l[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?OJ:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=rZ(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(fZ);function IJ(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function kJ(t){return"vertical"===t?"ns-resize":"ew-resize"}var TJ=AJ;function CJ(t){t.registerComponentModel(gJ),t.registerComponentView(TJ),SZ(t)}function EJ(t){p_(dJ),p_(CJ)}var DJ={get:function(t,e,n){var i=m["clone"]((LJ[t]||{})[e]);return n&&m["isArray"](i)?i[i.length-1]:i}},LJ={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},RJ=DJ,jJ=ZR.mapVisual,PJ=ZR.eachVisual,NJ=m["isArray"],BJ=m["each"],zJ=er,FJ=Ji,VJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return p(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&OX(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=m["bind"](t,this),this.controllerVisuals=SX(this.option.controller,e,t),this.targetVisuals=SX(this.option.target,e,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=Ar(t),e},e.prototype.eachTargetSeries=function(t,e){m["each"](this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],m["isArray"](t)&&(t=t.slice(),i=!0);var u=e?t:i?[l(t[0]),l(t[1])]:l(t);return m["isString"](s)?s.replace("{value}",i?u[0]:u).replace("{value2}",i?u[1]:u):m["isFunction"](s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+u[1]:t[1]===a[1]?n[1]+" "+u[0]:u[0]+" - "+u[1]:u;function l(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=zJ([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimensionIndex=function(t){var e=this.option.dimension;if(null!=e)return t.getDimensionIndex(e);for(var n=t.dimensions,i=n.length-1;i>=0;i--){var r=n[i],o=t.getDimensionInfo(r);if(!o.isCalculationCoord)return o.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});m["merge"](i,n),m["merge"](r,n);var o=this.isCategory();function a(n){NJ(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}function s(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},BJ(i,(function(t,e){if(ZR.isValidType(e)){var n=RJ.get(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}function u(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor"),r=this.getItemSymbol(),a=r||"roundRect";BJ(this.stateList,(function(r){var s=this.itemSize,u=t[r];u||(u=t[r]={color:o?i:[i]}),null==u.symbol&&(u.symbol=e&&m["clone"](e)||(o?a:[a])),null==u.symbolSize&&(u.symbolSize=n&&m["clone"](n)||(o?s[0]:[s[0],s[0]])),u.symbol=jJ(u.symbol,(function(t){return"none"===t?a:t}));var l=u.symbolSize;if(null!=l){var h=-1/0;PJ(l,(function(t){t>h&&(h=t)})),u.symbolSize=jJ(l,(function(t){return FJ(t,[0,h],[0,s[0]],!0)}))}}),this)}a.call(this,i),a.call(this,r),s.call(this,i,"inRange","outOfRange"),u.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(vc),HJ=VJ,GJ=[20,140],UJ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=GJ[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=GJ[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):m["isArray"](e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),m["each"](this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=er((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimensionIndex(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=WJ(this,"outOfRange",this.getExtent()),n=WJ(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,u=e.length;at[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/n})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Ni("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();QJ([0,1],(function(u){var l=r[u];l.setStyle("fill",e.handlesColor[u]),l.y=t[u];var h=JJ(t[u],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");l.scaleX=l.scaleY=c/a[0],l.x=a[0]-c/2;var f=Wm(n.handleLabelPoints[u],Um(l,this.group));o[u].setStyle({x:f[0],y:f[1],text:i.formatValueText(this._dataInterval[u]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],u=this._shapes,l=u.indicator;if(l){l.attr("invisible",!1);var h={convertOpacityToAlpha:!0},c=this.getControllerVisual(t,"color",h),f=this.getControllerVisual(t,"symbolSize"),d=JJ(t,o,s,!0),p=a[0]-f/2,g={x:l.x,y:l.y};l.y=d,l.x=p;var m=Wm(u.indicatorLabelPoint,Um(l,this.group)),v=u.indicatorLabel;v.attr("invisible",!1);var y=this._applyTransform("left",u.mainGroup),b=this._orient,w="horizontal"===b;v.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:w?y:"middle",align:w?"center":y});var _={x:p,y:d,style:{fill:c}},x={style:{x:m[0],y:m[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var M={duration:100,easing:"cubicInOut",additive:!0};l.x=g.x,l.y=g.y,l.animateTo(_,M),v.animateTo(x,M)}else l.attr(_),v.attr(x);this._firstShowIndicator=!1;var S=this._shapes.handleLabels;if(S)for(var O=0;Or[1]&&(l[1]=1/0),e&&(l[0]===-1/0?this._showIndicator(u,l[1],"< ",a):l[1]===1/0?this._showIndicator(u,l[0],"> ",a):this._showIndicator(u,u,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||sQ(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(l));var f=qr(h,c);this._dispatchHighDown("downplay",KJ(f[0],n)),this._dispatchHighDown("highlight",KJ(f[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var e;if(dy(t.target,(function(t){var n=Gs(t);if(null!=n.dataIndex)return e=n,!0}),!0),e){var n=this.ecModel.getSeriesByIndex(e.seriesIndex),i=this.visualMapModel;if(i.isTargetSeries(n)){var r=n.getData(e.dataType),o=r.getStore().get(i.getDataDimensionIndex(r),e.dataIndex);isNaN(o)||this._showIndicator(o,o)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n=0&&(r.dimension=o,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function dQ(t,e,n,i){for(var r=e.targetVisuals[i],o=ZR.prepareVisualTypes(r),a={color:uy(t.getData(),"color")},s=0,u=o.length;s0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(hQ,cQ),Object(m["each"])(fQ,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(gQ))}function bQ(t){t.registerComponentModel(qJ),t.registerComponentView(lQ),yQ(t)}var wQ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return p(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],_Q[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=m["clone"](r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=m["map"](this._pieceList,(function(t){return t=m["clone"](t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=ZR.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}m["each"](e.pieces,(function(t){m["each"](i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),m["each"](n,(function(t,n){var i=!1;m["each"](this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&m["each"](this.stateList,(function(t){(e[t]||(e[t]={}))[n]=RJ.get(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,m["each"](i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;m["each"](i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=m["clone"](t)},e.prototype.getValueState=function(t){var e=ZR.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimensionIndex(o),(function(e,i){var o=ZR.findPieceIndex(e,n);o===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),o=r[r.length-1].interval[1],o!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return m["each"](r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=$l(HJ.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(HJ),_Q={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;var o=(i[1]-i[0])/r;while(+o.toFixed(n)!==o&&n<5)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function xQ(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var MQ=wQ,SQ=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return p(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,u=this._getViewData(),l=u.endsText,h=m["retrieve"](e.get("showLabel",!0),!l);l&&this._renderEndsText(t,l[0],s,h,a),m["each"](u.viewPieceList,(function(i){var u=i.piece,l=new Ni;l.onclick=m["bind"](this._onItemClick,this,u),this._enableHoverLink(l,i.indexInModelPieceList);var c=e.getRepresentValue(u);if(this._createItemSymbol(l,c,[0,0,s[0],s[1]]),h){var f=this.visualMapModel.getValueState(c);l.add(new Hs({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:u.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===f?.5:1}}))}t.add(l)}),this),l&&this._renderEndsText(t,l[1],s,h,a),oc(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:KJ(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return $J(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Ni,a=this.visualMapModel.textStyleModel;o.add(new Hs({style:_l(a,{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e})})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=m["map"](t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(Iy(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=n.selectedMode;if(i){var r=m["clone"](n.selected),o=e.getSelectedMapKey(t);"single"===i||!0===i?(r[o]=!0,m["each"](r,(function(t,e){r[e]=e===o}))):r[o]=!r[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:r})}},e.type="visualMap.piecewise",e}(YJ),OQ=SQ;function AQ(t){t.registerComponentModel(MQ),t.registerComponentView(OQ),yQ(t)}function IQ(t){p_(bQ),p_(AQ)}var kQ={label:{enabled:!0},decal:{show:!1}},TQ=Yr(),CQ={};function EQ(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=m["clone"](kQ);m["merge"](i.label,t.getLocaleModel().get("aria"),!1),m["merge"](n.option,i,!1),r(),o()}function r(){var e=n.getModel("decal"),i=e.get("show");if(i){var r=m["createHashMap"]();t.eachSeries((function(t){if(!t.isColorBySeries()){var e=r.get(t.type);e||(e={},r.set(t.type,e)),TQ(t).scope=e}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if(m["isFunction"](e.enableAriaDecal))e.enableAriaDecal();else{var n=e.getData();if(e.isColorBySeries()){var i=Wc(e.ecModel,e.name,CQ,t.getSeriesCount()),r=n.getVisual("decal");n.setVisual("decal",l(r,i))}else{var o=e.getRawData(),a={},s=TQ(e).scope;n.each((function(t){var e=n.getRawIndex(t);a[e]=t}));var u=o.count();o.each((function(t){var i=a[t],r=o.getName(t)||t+"",h=Wc(e.ecModel,r,s,u),c=n.getItemVisual(i,"decal");n.setItemVisual(i,"decal",l(c,h))}))}}function l(t,e){var n=t?m["extend"](m["extend"]({},e),t):e;return n.dirty=!0,n}}))}}function o(){var i=t.getLocaleModel().get("aria"),r=n.getModel("label");if(r.option=m["defaults"](r.option,i),r.get("enabled")){var o=e.getZr().dom;if(r.get("description"))o.setAttribute("aria-label",r.get("description"));else{var l,h=t.getSeriesCount(),c=r.get(["data","maxCount"])||10,f=r.get(["series","maxCount"])||10,d=Math.min(h,f);if(!(h<1)){var p=s();if(p){var g=r.get(["general","withTitle"]);l=a(g,{title:p})}else l=r.get(["general","withoutTitle"]);var v=[],y=h>1?r.get(["series","multiple","prefix"]):r.get(["series","single","prefix"]);l+=a(y,{seriesCount:h}),t.eachSeries((function(t,e){if(e1?r.get(["series","multiple",o]):r.get(["series","single",o]),n=a(n,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:u(t.subType)});var s=t.getData();if(s.count()>c){var l=r.get(["data","partialData"]);n+=a(l,{displayCnt:c})}else n+=r.get(["data","allData"]);for(var f=r.get(["data","separator","middle"]),p=r.get(["data","separator","end"]),g=[],m=0;m":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},jQ=function(){function t(t){var e=this._condVal=Object(m["isString"])(t)?new RegExp(t):Object(m["isRegExp"])(t)?t:null;if(null==e){var n="";0,Qc(n)}}return t.prototype.evaluate=function(t){var e=typeof t;return Object(m["isString"])(e)?this._condVal.test(t):!!Object(m["isNumber"])(e)&&this._condVal.test(t+"")},t}(),PQ=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),NQ=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&u.push(e),e=[t,n]}function p(t,n,i,r){e0(t,i)&&e0(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),u=4*Math.tan(s/4)/3,l=nS:I2&&u.push(e),u}function i0(t,e,n,i,r,o,a,s,u,l){if(e0(t,n)&&e0(e,i)&&e0(r,a)&&e0(o,s))u.push(a,s);else{var h=2/l,c=h*h,f=a-t,d=s-e,p=Math.sqrt(f*f+d*d);f/=p,d/=p;var g=n-t,m=i-e,v=r-a,y=o-s,b=g*g+m*m,w=v*v+y*y;if(b=0&&S=0)u.push(a,s);else{var O=[],A=[];Be(t,n,r,a,.5,O),Be(e,i,o,s,.5,A),i0(O[0],A[0],O[1],A[1],O[2],A[2],O[3],A[3],u,l),i0(O[4],A[4],O[5],A[5],O[6],A[6],O[7],A[7],u,l)}}}}function r0(t,e){var n=n0(t),i=[];e=e||1;for(var r=0;r0)for(l=0;lMath.abs(l),c=o0([u,l],h?0:1,e),f=(h?s:l)/c.length,d=0;dr,a=o0([i,r],o?0:1,e),s=o?"width":"height",u=o?"height":"width",l=o?"x":"y",h=o?"y":"x",c=t[s]/a.length,f=0;f1?null:new Dt(g*u+t,g*l+e)}function h0(t,e,n){var i=new Dt;Dt.sub(i,n,e),i.normalize();var r=new Dt;Dt.sub(r,t,e);var o=r.dot(i);return o}function c0(t,e){var n=t[t.length-1];n&&n[0]===e[0]&&n[1]===e[1]||t.push(e)}function f0(t,e,n){for(var i=t.length,r=[],o=0;oa?(l.x=h.x=s+o/2,l.y=u,h.y=u+a):(l.y=h.y=u+a/2,l.x=s,h.x=s+o),f0(e,l,h)}function p0(t,e,n,i){if(1===n)i.push(e);else{var r=Math.floor(n/2),o=t(e);p0(t,o[0],r,i),p0(t,o[1],n-r,i)}return i}function g0(t,e){for(var n=[],i=0;i0)for(var _=i/n,x=-i/2;x<=i/2;x+=_){var M=Math.sin(x),S=Math.cos(x),O=0;for(b=0;b0;l/=2){var h=0,c=0;(t&l)>0&&(h=1),(e&l)>0&&(c=1),u+=l*l*(3*h^c),0===c&&(1===h&&(t=l-1-t,e=l-1-e),s=t,t=e,e=s)}return u}function R0(t){var e=1/0,n=1/0,i=-1/0,r=-1/0,o=Object(m["map"])(t,(function(t){var o=t.getBoundingRect(),a=t.getComputedTransform(),s=o.x+o.width/2+(a?a[4]:0),u=o.y+o.height/2+(a?a[5]:0);return e=Math.min(s,e),n=Math.min(u,n),i=Math.max(s,i),r=Math.max(u,r),[s,u]})),a=Object(m["map"])(o,(function(o,a){return{cp:o,z:L0(o[0],o[1],e,n,i,r),path:t[a]}}));return a.sort((function(t,e){return t.z-e.z})).map((function(t){return t.path}))}function j0(t){return y0(t.path,t.count)}function P0(){return{fromIndividuals:[],toIndividuals:[],count:0}}function N0(t,e,n){var i=[];function r(t){for(var e=0;e=0;r--)if(!n[r].many.length){var u=n[s].many;if(u.length<=1){if(!s)return n;s=0}o=u.length;var l=Math.ceil(o/2);n[r].many=u.slice(l,o),n[s].many=u.slice(0,l),s++}return n}var V0={clone:function(t){for(var e=[],n=1-Math.pow(1-t.path.style.opacity,1/t.count),i=0;i0){var s,u,l=i.getModel("universalTransition").get("delay"),h=Object.assign({setToFinal:!0},a);z0(t)&&(s=t,u=e),z0(e)&&(s=e,u=t);for(var c=s?s===t:t.length>e.length,f=s?F0(u,s):F0(c?e:t,[c?t:e]),d=0,p=0;pU0))for(var i=n.getIndices(),r=q0(n),o=0;o0&&r.group.traverse((function(t){t instanceof ss&&!t.animators.length&&t.animateFrom({style:{opacity:0}},o)}))}))}function t1(t){var e=t.getModel("universalTransition").get("seriesKey");return e||t.id}function e1(t){return Object(m["isArray"])(t)?t.sort().join(","):t}function n1(t){if(t.hostModel)return t.hostModel.getModel("universalTransition").get("divideShape")}function i1(t,e){var n=Object(m["createHashMap"])(),i=Object(m["createHashMap"])(),r=Object(m["createHashMap"])();return Object(m["each"])(t.oldSeries,(function(e,n){var o=t.oldDataGroupIds[n],a=t.oldData[n],s=t1(e),u=e1(s);i.set(u,{dataGroupId:o,data:a}),Object(m["isArray"])(s)&&Object(m["each"])(s,(function(t){r.set(t,{key:u,dataGroupId:o,data:a})}))})),Object(m["each"])(e.updatedSeries,(function(t){if(t.isUniversalTransitionEnabled()&&t.isAnimationEnabled()){var e=t.get("dataGroupId"),o=t.getData(),a=t1(t),s=e1(a),u=i.get(s);if(u)n.set(s,{oldSeries:[{dataGroupId:u.dataGroupId,divide:n1(u.data),data:u.data}],newSeries:[{dataGroupId:e,divide:n1(o),data:o}]});else if(Object(m["isArray"])(a)){0;var l=[];Object(m["each"])(a,(function(t){var e=i.get(t);e.data&&l.push({dataGroupId:e.dataGroupId,divide:n1(e.data),data:e.data})})),l.length&&n.set(s,{oldSeries:l,newSeries:[{dataGroupId:e,data:o,divide:n1(o)}]})}else{var h=r.get(a);if(h){var c=n.get(h.key);c||(c={oldSeries:[{dataGroupId:h.dataGroupId,data:h.data,divide:n1(h.data)}],newSeries:[]},n.set(h.key,c)),c.newSeries.push({dataGroupId:e,data:o,divide:n1(o)})}}}})),n}function r1(t,e){for(var n=0;n=0&&r.push({dataGroupId:e.oldDataGroupIds[n],data:e.oldData[n],divide:n1(e.oldData[n]),dim:t.dimension})})),Object(m["each"])(Ar(t.to),(function(t){var i=r1(n.updatedSeries,t);if(i>=0){var r=n.updatedSeries[i].getData();o.push({dataGroupId:e.oldDataGroupIds[i],data:r,divide:n1(r),dim:t.dimension})}})),r.length>0&&o.length>0&&Q0(r,o,i)}function a1(t){t.registerUpdateLifecycle("series:beforeupdate",(function(t,e,n){Object(m["each"])(Ar(n.seriesTransition),(function(t){Object(m["each"])(Ar(t.to),(function(t){for(var e=n.updatedSeries,i=0;i
'};function n(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}function r(t,n,r){var o;return o="translate3d"===e.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===e.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"},o.transition="all "+n+"ms "+r,o}t.configure=function(t){var n,i;for(n in t)i=t[n],void 0!==i&&t.hasOwnProperty(n)&&(e[n]=i);return this},t.status=null,t.set=function(i){var s=t.isStarted();i=n(i,e.minimum,1),t.status=1===i?null:i;var u=t.render(!s),l=u.querySelector(e.barSelector),h=e.speed,c=e.easing;return u.offsetWidth,o((function(n){""===e.positionUsing&&(e.positionUsing=t.getPositioningCSS()),a(l,r(i,h,c)),1===i?(a(u,{transition:"none",opacity:1}),u.offsetWidth,setTimeout((function(){a(u,{transition:"all "+h+"ms linear",opacity:0}),setTimeout((function(){t.remove(),n()}),h)}),h)):setTimeout(n,h)})),this},t.isStarted=function(){return"number"===typeof t.status},t.start=function(){t.status||t.set(0);var n=function(){setTimeout((function(){t.status&&(t.trickle(),n())}),e.trickleSpeed)};return e.trickle&&n(),this},t.done=function(e){return e||t.status?t.inc(.3+.5*Math.random()).set(1):this},t.inc=function(e){var i=t.status;return i?("number"!==typeof e&&(e=(1-i)*n(Math.random()*i,.1,.95)),i=n(i+e,0,.994),t.set(i)):t.start()},t.trickle=function(){return t.inc(Math.random()*e.trickleRate)},function(){var e=0,n=0;t.promise=function(i){return i&&"resolved"!==i.state()?(0===n&&t.start(),e++,n++,i.always((function(){n--,0===n?(e=0,t.done()):t.set((e-n)/e)})),this):this}}(),t.render=function(n){if(t.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var r=document.createElement("div");r.id="nprogress",r.innerHTML=e.template;var o,s=r.querySelector(e.barSelector),l=n?"-100":i(t.status||0),h=document.querySelector(e.parent);return a(s,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),e.showSpinner||(o=r.querySelector(e.spinnerSelector),o&&c(o)),h!=document.body&&u(h,"nprogress-custom-parent"),h.appendChild(r),r},t.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(e.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&c(t)},t.isRendered=function(){return!!document.getElementById("nprogress")},t.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var o=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),a=function(){var t=["Webkit","O","Moz","ms"],e={};function n(t){return t.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()}))}function i(e){var n=document.body.style;if(e in n)return e;var i,r=t.length,o=e.charAt(0).toUpperCase()+e.slice(1);while(r--)if(i=t[r]+o,i in n)return i;return e}function r(t){return t=n(t),e[t]||(e[t]=i(t))}function o(t,e,n){e=r(e),t.style[e]=n}return function(t,e){var n,i,r=arguments;if(2==r.length)for(n in e)i=e[n],void 0!==i&&e.hasOwnProperty(n)&&o(t,n,i);else o(t,r[1],r[2])}}();function s(t,e){var n="string"==typeof t?t:h(t);return n.indexOf(" "+e+" ")>=0}function u(t,e){var n=h(t),i=n+e;s(n,e)||(t.className=i.substring(1))}function l(t,e){var n,i=h(t);s(t,e)&&(n=i.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function h(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function c(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return t}))},3300:function(t,e,n){"use strict";var i=n("f3a3"),r=n("80af"),o=n("3fb5"),a=n("ea53"),s=i.assert;function u(t){a.call(this,"short",t),this.a=new r(t.a,16).toRed(this.red),this.b=new r(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(t,e,n,i){a.BasePoint.call(this,t,"affine"),null===e&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new r(e,16),this.y=new r(n,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(t,e,n,i){a.BasePoint.call(this,t,"jacobian"),null===e&&null===n&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new r(0)):(this.x=new r(e,16),this.y=new r(n,16),this.z=new r(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,n,i;if(t.beta)e=new r(t.beta,16).toRed(this.red);else{var o=this._getEndoRoots(this.p);e=o[0].cmp(o[1])<0?o[0]:o[1],e=e.toRed(this.red)}if(t.lambda)n=new r(t.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))?n=a[0]:(n=a[1],s(0===this.g.mul(n).x.cmp(this.g.x.redMul(e))))}return i=t.basis?t.basis.map((function(t){return{a:new r(t.a,16),b:new r(t.b,16)}})):this._getEndoBasis(n),{beta:e,lambda:n,basis:i}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:r.mont(t),n=new r(2).toRed(e).redInvm(),i=n.redNeg(),o=new r(3).toRed(e).redNeg().redSqrt().redMul(n),a=i.redAdd(o).fromRed(),s=i.redSub(o).fromRed();return[a,s]},u.prototype._getEndoBasis=function(t){var e,n,i,o,a,s,u,l,h,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=t,d=this.n.clone(),p=new r(1),g=new r(0),m=new r(0),v=new r(1),y=0;while(0!==f.cmpn(0)){var b=d.div(f);l=d.sub(b.mul(f)),h=m.sub(b.mul(p));var w=v.sub(b.mul(g));if(!i&&l.cmp(c)<0)e=u.neg(),n=p,i=l.neg(),o=h;else if(i&&2===++y)break;u=l,d=f,f=l,m=p,p=h,v=g,g=w}a=l.neg(),s=h;var _=i.sqr().add(o.sqr()),x=a.sqr().add(s.sqr());return x.cmp(_)>=0&&(a=e,s=n),i.negative&&(i=i.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:i,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,n=e[0],i=e[1],r=i.b.mul(t).divRound(this.n),o=n.b.neg().mul(t).divRound(this.n),a=r.mul(n.a),s=o.mul(i.a),u=r.mul(n.b),l=o.mul(i.b),h=t.sub(a).sub(s),c=u.add(l).neg();return{k1:h,k2:c}},u.prototype.pointFromX=function(t,e){t=new r(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(0!==i.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=i.fromRed().isOdd();return(e&&!o||!e&&o)&&(i=i.redNeg()),this.point(t,i)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,n=t.y,i=this.a.redMul(e),r=e.redSqr().redMul(e).redIAdd(i).redIAdd(this.b);return 0===n.redSqr().redISub(r).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,n){for(var i=this._endoWnafT1,r=this._endoWnafT2,o=0;o":""},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var n=e.redSqr().redISub(this.x).redISub(t.x),i=e.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,i)},l.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,n=this.x.redSqr(),i=t.redInvm(),r=n.redAdd(n).redIAdd(n).redIAdd(e).redMul(i),o=r.redSqr().redISub(this.x.redAdd(this.x)),a=r.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(t){return t=new r(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},l.prototype.mulAdd=function(t,e,n){var i=[this,e],r=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,r):this.curve._wnafMulAdd(1,i,r,2)},l.prototype.jmulAdd=function(t,e,n){var i=[this,e],r=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,r,!0):this.curve._wnafMulAdd(1,i,r,2,!0)},l.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},l.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var n=this.precomputed,i=function(t){return t.neg()};e.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(i)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(i)}}}return e},l.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t},o(h,a.BasePoint),u.prototype.jpoint=function(t,e,n){return new h(this,t,e,n)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),n=this.x.redMul(e),i=this.y.redMul(e).redMul(t);return this.curve.point(n,i)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),n=this.z.redSqr(),i=this.x.redMul(e),r=t.x.redMul(n),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(n.redMul(this.z)),s=i.redSub(r),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=s.redSqr(),h=l.redMul(s),c=i.redMul(l),f=u.redSqr().redIAdd(h).redISub(c).redISub(c),d=u.redMul(c.redISub(f)).redISub(o.redMul(h)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(f,d,p)},h.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),n=this.x,i=t.x.redMul(e),r=this.y,o=t.y.redMul(e).redMul(this.z),a=n.redSub(i),s=r.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),h=n.redMul(u),c=s.redSqr().redIAdd(l).redISub(h).redISub(h),f=s.redMul(h.redISub(c)).redISub(r.redMul(l)),d=this.z.redMul(a);return this.curve.jpoint(c,f,d)},h.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var n=this;for(e=0;e=0)return!1;if(n.redIAdd(r),0===this.x.cmp(n))return!0}},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},3337:function(t,e,n){"use strict";var i=e;i.version=n("2801").version,i.utils=n("f3a3"),i.rand=n("fdac"),i.curve=n("4136"),i.curves=n("0cbb"),i.ec=n("b9a8"),i.eddsa=n("945d")},"334a":function(t,e,n){e=t.exports=n("4250"),e.Stream=e,e.Readable=e,e.Writable=n("19ea"),e.Duplex=n("e666"),e.Transform=n("09dc"),e.PassThrough=n("0ae3"),e.finished=n("ee93"),e.pipeline=n("fbd5")},3397:function(t,e,n){var i=n("7a41");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},3410:function(t,e,n){var i=n("23e7"),r=n("d039"),o=n("7b0b"),a=n("e163"),s=n("e177"),u=r((function(){a(1)}));i({target:"Object",stat:!0,forced:u,sham:!s},{getPrototypeOf:function(t){return a(o(t))}})},"342f":function(t,e){t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},"343e":function(t,e,n){"use strict";const i=e;i.der=n("3768"),i.pem=n("85b3")},"34d5":function(t,e,n){e=t.exports=n("cf35"),e.Stream=e,e.Readable=e,e.Writable=n("49ce"),e.Duplex=n("5e7d"),e.Transform=n("f1c8"),e.PassThrough=n("9d28"),e.finished=n("42a7"),e.pipeline=n("ac4f")},3505:function(t,e,n){var i=n("8707").Buffer,r=n("8c8a");function o(t,e,n){var o=e.length,a=r(e,t._cache);return t._cache=t._cache.slice(o),t._prev=i.concat([t._prev,n?e:a]),a}e.encrypt=function(t,e,n){var r,a=i.allocUnsafe(0);while(e.length){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=i.allocUnsafe(0)),!(t._cache.length<=e.length)){a=i.concat([a,o(t,e,n)]);break}r=t._cache.length,a=i.concat([a,o(t,e.slice(0,r),n)]),e=e.slice(r)}return a}},3511:function(t,e){var n=TypeError,i=9007199254740991;t.exports=function(t){if(t>i)throw n("Maximum allowed index exceeded");return t}},3529:function(t,e,n){"use strict";var i=n("23e7"),r=n("c65b"),o=n("59ed"),a=n("f069"),s=n("e667"),u=n("2266"),l=n("5eed");i({target:"Promise",stat:!0,forced:l},{race:function(t){var e=this,n=a.f(e),i=n.reject,l=s((function(){var a=o(e.resolve);u(t,(function(t){r(a,e,t).then(n.resolve,i)}))}));return l.error&&i(l.value),n.promise}})},"35a1":function(t,e,n){var i=n("f5df"),r=n("dc4a"),o=n("7234"),a=n("3f8c"),s=n("b622"),u=s("iterator");t.exports=function(t){if(!o(t))return r(t,u)||r(t,"@@iterator")||a[i(t)]}},3768:function(t,e,n){"use strict";const i=n("3fb5"),r=n("c591").Buffer,o=n("8360"),a=n("8b71");function s(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new u,this.tree._init(t.body)}function u(t){o.call(this,"der",t)}function l(t){return t<10?"0"+t:t}function h(t,e,n,i){let r;if("seqof"===t?t="seq":"setof"===t&&(t="set"),a.tagByName.hasOwnProperty(t))r=a.tagByName[t];else{if("number"!==typeof t||(0|t)!==t)return i.error("Unknown tag: "+t);r=t}return r>=31?i.error("Multi-octet tag encoding unsupported"):(e||(r|=32),r|=a.tagClassByName[n||"universal"]<<6,r)}t.exports=s,s.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},i(u,o),u.prototype._encodeComposite=function(t,e,n,i){const o=h(t,e,n,this.reporter);if(i.length<128){const t=r.alloc(2);return t[0]=o,t[1]=i.length,this._createEncoderBuffer([t,i])}let a=1;for(let r=i.length;r>=256;r>>=8)a++;const s=r.alloc(2+a);s[0]=o,s[1]=128|a;for(let r=1+a,u=i.length;u>0;r--,u>>=8)s[r]=255&u;return this._createEncoderBuffer([s,i])},u.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){const e=r.alloc(2*t.length);for(let n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}let i=0;for(let r=0;r=128;e>>=7)i++}const o=r.alloc(i);let a=o.length-1;for(let r=t.length-1;r>=0;r--){let e=t[r];o[a--]=127&e;while((e>>=7)>0)o[a--]=128|127&e}return this._createEncoderBuffer(o)},u.prototype._encodeTime=function(t,e){let n;const i=new Date(t);return"gentime"===e?n=[l(i.getUTCFullYear()),l(i.getUTCMonth()+1),l(i.getUTCDate()),l(i.getUTCHours()),l(i.getUTCMinutes()),l(i.getUTCSeconds()),"Z"].join(""):"utctime"===e?n=[l(i.getUTCFullYear()%100),l(i.getUTCMonth()+1),l(i.getUTCDate()),l(i.getUTCHours()),l(i.getUTCMinutes()),l(i.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(n,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(t,e){if("string"===typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!==typeof t&&!r.isBuffer(t)){const e=t.toArray();!t.sign&&128&e[0]&&e.unshift(0),t=r.from(e)}if(r.isBuffer(t)){let e=t.length;0===t.length&&e++;const n=r.alloc(e);return t.copy(n),0===t.length&&(n[0]=0),this._createEncoderBuffer(n)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);let n=1;for(let r=t;r>=256;r>>=8)n++;const i=new Array(n);for(let r=i.length-1;r>=0;r--)i[r]=255&t,t>>=8;return 128&i[0]&&i.unshift(0),this._createEncoderBuffer(r.from(i))},u.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},u.prototype._use=function(t,e){return"function"===typeof t&&(t=t(e)),t._getEncoder("der").tree},u.prototype._skipDefault=function(t,e,n){const i=this._baseState;let r;if(null===i["default"])return!1;const o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i["default"],e,n).join()),o.length!==i.defaultBuffer.length)return!1;for(r=0;r=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},"37e8":function(t,e,n){var i=n("83ab"),r=n("aed9"),o=n("9bf2"),a=n("825a"),s=n("fc6a"),u=n("df75");e.f=i&&!r?Object.defineProperties:function(t,e){a(t);var n,i=s(e),r=u(e),l=r.length,h=0;while(l>h)o.f(t,n=r[h++],i[n]);return t}},"380f":function(t,e,n){"use strict";var i=n("f3a3"),r=i.assert,o=i.parseBytes,a=i.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),n=t.encodingLength-1,i=e.slice(0,t.encodingLength);return i[0]&=248,i[n]&=127,i[n]|=64,i})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return r(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return r(this._secret,"KeyPair is public only"),i.encode(this.secret(),t)},s.prototype.getPublic=function(t){return i.encode(this.pubBytes(),t)},t.exports=s},"393a":function(t,e,n){"use strict";var i=n("e444"),r=n("512c"),o=n("ba01"),a=n("051b"),s=n("8a0d"),u=n("26dd"),l=n("92f0"),h=n("ce7a"),c=n("cc15")("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",p="keys",g="values",m=function(){return this};t.exports=function(t,e,n,v,y,b,w){u(n,e,v);var _,x,M,S=function(t){if(!f&&t in k)return k[t];switch(t){case p:return function(){return new n(this,t)};case g:return function(){return new n(this,t)}}return function(){return new n(this,t)}},O=e+" Iterator",A=y==g,I=!1,k=t.prototype,T=k[c]||k[d]||y&&k[y],C=T||S(y),E=y?A?S("entries"):C:void 0,D="Array"==e&&k.entries||T;if(D&&(M=h(D.call(new t)),M!==Object.prototype&&M.next&&(l(M,O,!0),i||"function"==typeof M[c]||a(M,c,m))),A&&T&&T.name!==g&&(I=!0,C=function(){return T.call(this)}),i&&!w||!f&&!I&&k[c]||a(k,c,C),s[e]=C,s[O]=m,y)if(_={values:A?C:S(g),keys:b?C:S(p),entries:E},w)for(x in _)x in k||o(k,x,_[x]);else r(r.P+r.F*(f||I),e,_);return _}},"399f":function(t,e,n){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!==typeof window&&"undefined"!==typeof window.Buffer?window.Buffer:n(10).Buffer}catch(C){}function s(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void i(!1,"Invalid character in "+t)}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,r){for(var o=0,a=0,s=Math.min(t.length,n),u=e;u=49?l-49+10:l>=17?l-17+10:l,i(l>=0&&a0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this._strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!==typeof Symbol&&"function"===typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(C){o.prototype.inspect=c}else o.prototype.inspect=c;function c(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,r+=2,r>=26&&(r-=26,a--),n=0!==o||a!==this.length-1?f[6-u.length]+u+n:u+n}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=d[t],h=p[t];n="";var c=this.clone();c.negative=0;while(!c.isZero()){var g=c.modrn(h).toString(t);c=c.idivn(h),n=c.isZero()?g+n:f[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(a,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};var g=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)};function m(t){for(var e=new Array(t.bitLength()),n=0;n>>r&1}return e}function v(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n._strip()}o.prototype.toArrayLike=function(t,e,n){this._strip();var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0");var a=g(t,o),s="le"===e?"LE":"BE";return this["_toArrayLike"+s](a,r),a},o.prototype._toArrayLikeLE=function(t,e){for(var n=0,i=0,r=0,o=0;r>8&255),n>16&255),6===o?(n>24&255),i=0,o=0):(i=a>>>24,o+=2)}if(n=0&&(t[n--]=a>>8&255),n>=0&&(t[n--]=a>>16&255),6===o?(n>=0&&(t[n--]=a>>24&255),i=0,o=0):(i=a>>>24,o+=2)}if(n>=0){t[n--]=i;while(n>=0)t[n--]=0}},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,n=0;return e>=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function b(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n._strip()}function w(t,e,n){return b(t,e,n)}function _(t,e){this.x=t,this.y=e}Math.imul||(y=v),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?y(this,t,e):i<63?v(this,t,e):i<1024?b(this,t,e):w(this,t,e),n},_.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},_.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,n+=o/67108864|0,n+=a>>>26,this.words[r]=67108863&a}return 0!==n&&(this.words[r]=n,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=m(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this._strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u._strip(),i._strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var n=(1<<26)%t,r=0,o=this.length-1;o>=0;o--)r=(n*r+(0|this.words[o]))%t;return e?-r:r},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var n=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*n;this.words[r]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new k(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var x={k256:null,p224:null,p192:null,p25519:null};function M(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function O(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function I(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){k.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}M.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},M.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},M.prototype.split=function(t,e){t.iushrn(this.n,0,e)},M.prototype.imulK=function(t){return t.imul(this.k)},r(S,M),S.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},S.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(x[t])return x[t];var e;if("k256"===t)e=new S;else if("p224"===t)e=new O;else if("p192"===t)e=new A;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new I}return x[t]=e,e},k.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},k.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},k.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},k.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},k.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},k.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},k.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},k.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},k.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},k.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},k.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},k.prototype.isqr=function(t){return this.imul(t,t.clone())},k.prototype.sqr=function(t){return this.mul(t,t)},k.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},k.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},k.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new T(t)},r(T,k),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},"39ad":function(t,e,n){var i=n("6ca1"),r=n("d16a"),o=n("9d11");t.exports=function(t){return function(e,n,a){var s,u=i(e),l=r(u.length),h=o(a,l);if(t&&n!=n){while(l>h)if(s=u[h++],s!=s)return!0}else for(;l>h;h++)if((t||h in u)&&u[h]===n)return t||h||0;return!t&&-1}}},"39f5":function(t,e,n){var i=n("8707").Buffer;function r(t){i.isBuffer(t)||(t=i.from(t));for(var e=t.length/4|0,n=new Array(e),r=0;r>>24]^h[p>>>16&255]^c[g>>>8&255]^f[255&m]^e[v++],a=l[p>>>24]^h[g>>>16&255]^c[m>>>8&255]^f[255&d]^e[v++],s=l[g>>>24]^h[m>>>16&255]^c[d>>>8&255]^f[255&p]^e[v++],u=l[m>>>24]^h[d>>>16&255]^c[p>>>8&255]^f[255&g]^e[v++],d=o,p=a,g=s,m=u;return o=(i[d>>>24]<<24|i[p>>>16&255]<<16|i[g>>>8&255]<<8|i[255&m])^e[v++],a=(i[p>>>24]<<24|i[g>>>16&255]<<16|i[m>>>8&255]<<8|i[255&d])^e[v++],s=(i[g>>>24]<<24|i[m>>>16&255]<<16|i[d>>>8&255]<<8|i[255&p])^e[v++],u=(i[m>>>24]<<24|i[d>>>16&255]<<16|i[p>>>8&255]<<8|i[255&g])^e[v++],o>>>=0,a>>>=0,s>>>=0,u>>>=0,[o,a,s,u]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var n=[],i=[],r=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var l=s^s<<1^s<<2^s<<3^s<<4;l=l>>>8^255&l^99,n[a]=l,i[l]=a;var h=t[a],c=t[h],f=t[c],d=257*t[l]^16843008*l;r[0][a]=d<<24|d>>>8,r[1][a]=d<<16|d>>>16,r[2][a]=d<<8|d>>>24,r[3][a]=d,d=16843009*f^65537*c^257*h^16843008*a,o[0][l]=d<<24|d>>>8,o[1][l]=d<<16|d>>>16,o[2][l]=d<<8|d>>>24,o[3][l]=d,0===a?a=s=1:(a=h^t[t[t[f^h]]],s^=t[t[s]])}return{SBOX:n,INV_SBOX:i,SUB_MIX:r,INV_SUB_MIX:o}}();function l(t){this._key=r(t),this._reset()}l.blockSize=16,l.keySize=32,l.prototype.blockSize=l.blockSize,l.prototype.keySize=l.keySize,l.prototype._reset=function(){for(var t=this._key,e=t.length,n=e+6,i=4*(n+1),r=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e===4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),r[o]=r[o-e]^a}for(var l=[],h=0;h>>24]]^u.INV_SUB_MIX[1][u.SBOX[f>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[f>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&f]]}this._nRounds=n,this._keySchedule=r,this._invKeySchedule=l},l.prototype.encryptBlockRaw=function(t){return t=r(t),a(t,this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},l.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),n=i.allocUnsafe(16);return n.writeUInt32BE(e[0],0),n.writeUInt32BE(e[1],4),n.writeUInt32BE(e[2],8),n.writeUInt32BE(e[3],12),n},l.prototype.decryptBlock=function(t){t=r(t);var e=t[1];t[1]=t[3],t[3]=e;var n=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=i.allocUnsafe(16);return o.writeUInt32BE(n[0],0),o.writeUInt32BE(n[3],4),o.writeUInt32BE(n[2],8),o.writeUInt32BE(n[1],12),o},l.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=l},"3a34":function(t,e,n){"use strict";var i=n("83ab"),r=n("e8b5"),o=TypeError,a=Object.getOwnPropertyDescriptor,s=i&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(r(t)&&!a(t,"length").writable)throw o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},"3a7c":function(t,e,n){(function(t){function n(t){return Array.isArray?Array.isArray(t):"[object Array]"===m(t)}function i(t){return"boolean"===typeof t}function r(t){return null===t}function o(t){return null==t}function a(t){return"number"===typeof t}function s(t){return"string"===typeof t}function u(t){return"symbol"===typeof t}function l(t){return void 0===t}function h(t){return"[object RegExp]"===m(t)}function c(t){return"object"===typeof t&&null!==t}function f(t){return"[object Date]"===m(t)}function d(t){return"[object Error]"===m(t)||t instanceof Error}function p(t){return"function"===typeof t}function g(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function m(t){return Object.prototype.toString.call(t)}e.isArray=n,e.isBoolean=i,e.isNull=r,e.isNullOrUndefined=o,e.isNumber=a,e.isString=s,e.isSymbol=u,e.isUndefined=l,e.isRegExp=h,e.isObject=c,e.isDate=f,e.isError=d,e.isFunction=p,e.isPrimitive=g,e.isBuffer=t.isBuffer}).call(this,n("1c35").Buffer)},"3a9b":function(t,e,n){var i=n("e330");t.exports=i({}.isPrototypeOf)},"3bbe":function(t,e,n){var i=n("1626"),r=String,o=TypeError;t.exports=function(t){if("object"==typeof t||i(t))return t;throw o("Can't set "+r(t)+" as a prototype")}},"3c4e":function(t,e,n){"use strict";var i=function(t){return r(t)&&!o(t)};function r(t){return!!t&&"object"===typeof t}function o(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||u(t)}var a="function"===typeof Symbol&&Symbol.for,s=a?Symbol.for("react.element"):60103;function u(t){return t.$$typeof===s}function l(t){return Array.isArray(t)?[]:{}}function h(t,e){var n=e&&!0===e.clone;return n&&i(t)?d(l(t),t,e):t}function c(t,e,n){var r=t.slice();return e.forEach((function(e,o){"undefined"===typeof r[o]?r[o]=h(e,n):i(e)?r[o]=d(t[o],e,n):-1===t.indexOf(e)&&r.push(h(e,n))})),r}function f(t,e,n){var r={};return i(t)&&Object.keys(t).forEach((function(e){r[e]=h(t[e],n)})),Object.keys(e).forEach((function(o){i(e[o])&&t[o]?r[o]=d(t[o],e[o],n):r[o]=h(e[o],n)})),r}function d(t,e,n){var i=Array.isArray(e),r=Array.isArray(t),o=n||{arrayMerge:c},a=i===r;if(a){if(i){var s=o.arrayMerge||c;return s(t,e,n)}return f(t,e,n)}return h(e,n)}d.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,n){return d(t,n,e)}))};var p=d;t.exports=p},"3ca3":function(t,e,n){"use strict";var i=n("6547").charAt,r=n("577e"),o=n("69f3"),a=n("c6d2"),s=n("4754"),u="String Iterator",l=o.set,h=o.getterFor(u);a(String,"String",(function(t){l(this,{type:u,string:r(t),index:0})}),(function(){var t,e=h(this),n=e.string,r=e.index;return r>=n.length?s(void 0,!0):(t=i(n,r),e.index+=t.length,s(t,!1))}))},"3daf":function(t,e,n){"use strict";var i=n("f3a3"),r=n("80af"),o=n("3fb5"),a=n("ea53"),s=i.assert;function u(t){this.twisted=1!==(0|t.a),this.mOneA=this.twisted&&-1===(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new r(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new r(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new r(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1===(0|t.c)}function l(t,e,n,i,o){a.BasePoint.call(this,t,"projective"),null===e&&null===n&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new r(e,16),this.y=new r(n,16),this.z=i?new r(i,16):this.curve.one,this.t=o&&new r(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,n,i){return this.point(t,e,n,i)},u.prototype.pointFromX=function(t,e){t=new r(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr(),i=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),a=i.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){t=new r(t,16),t.red||(t=t.toRed(this.red));var n=t.redSqr(),i=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),a=i.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),n=t.y.redSqr(),i=e.redMul(this.a).redAdd(n),r=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n)));return 0===i.cmp(r)},o(l,a.BasePoint),u.prototype.pointFromJSON=function(t){return l.fromJSON(this,t)},u.prototype.point=function(t,e,n,i){return new l(this,t,e,n,i)},l.fromJSON=function(t,e){return new l(t,e[0],e[1],e[2])},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var i=this.curve._mulA(t),r=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=i.redAdd(e),a=o.redSub(n),s=i.redSub(e),u=r.redMul(a),l=o.redMul(s),h=r.redMul(s),c=a.redMul(o);return this.curve.point(u,l,c,h)},l.prototype._projDbl=function(){var t,e,n,i,r,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){i=this.curve._mulA(s);var l=i.redAdd(u);this.zOne?(t=a.redSub(s).redSub(u).redMul(l.redSub(this.curve.two)),e=l.redMul(i.redSub(u)),n=l.redSqr().redSub(l).redSub(l)):(r=this.z.redSqr(),o=l.redSub(r).redISub(r),t=a.redSub(s).redISub(u).redMul(o),e=l.redMul(i.redSub(u)),n=l.redMul(o))}else i=s.redAdd(u),r=this.curve._mulC(this.z).redSqr(),o=i.redSub(r).redSub(r),t=this.curve._mulC(a.redISub(i)).redMul(o),e=this.curve._mulC(i).redMul(s.redISub(u)),n=i.redMul(o);return this.curve.point(t,e,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),n=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),i=this.t.redMul(this.curve.dd).redMul(t.t),r=this.z.redMul(t.z.redAdd(t.z)),o=n.redSub(e),a=r.redSub(i),s=r.redAdd(i),u=n.redAdd(e),l=o.redMul(a),h=s.redMul(u),c=o.redMul(u),f=a.redMul(s);return this.curve.point(l,h,f,c)},l.prototype._projAdd=function(t){var e,n,i=this.z.redMul(t.z),r=i.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=r.redSub(s),l=r.redAdd(s),h=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),c=i.redMul(u).redMul(h);return this.curve.twisted?(e=i.redMul(l).redMul(a.redSub(this.curve._mulA(o))),n=u.redMul(l)):(e=i.redMul(l).redMul(a.redSub(o)),n=this.curve._mulC(u).redMul(l)),this.curve.point(c,e,n)},l.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},l.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},l.prototype.mulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!1)},l.prototype.jmulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},l.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(i),0===this.x.cmp(e))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},"3f62":function(t,e,n){var i=n("8707").Buffer,r=i.alloc(16,0);function o(t){return[t.readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)]}function a(t){var e=i.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=i.alloc(16,0),this.cache=i.allocUnsafe(0)}s.prototype.ghash=function(t){var e=-1;while(++e0;t--)i[t]=i[t]>>>1|(1&i[t-1])<<31;i[0]=i[0]>>>1,n&&(i[0]=i[0]^225<<24)}this.state=a(r)},s.prototype.update=function(t){var e;this.cache=i.concat([this.cache,t]);while(this.cache.length>=16)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(i.concat([this.cache,r],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=s},"3f6b":function(t,e,n){t.exports={default:n("b9c7"),__esModule:!0}},"3f8c":function(t,e){t.exports={}},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},"408a":function(t,e,n){var i=n("e330");t.exports=i(1..valueOf)},"409b":function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},"40d5":function(t,e,n){var i=n("d039");t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},4111:function(t,e,n){"use strict";var i=n("7f7a");e.certificate=n("56b5");var r=i.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=r;var o=i.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=i.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=i.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=i.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var l=i.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=l;var h=i.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=h,e.DSAparam=i.define("DSAparam",(function(){this.int()}));var c=i.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(f),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=c;var f=i.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=i.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},4136:function(t,e,n){"use strict";var i=e;i.base=n("ea53"),i.short=n("3300"),i.mont=n("676f"),i.edwards=n("3daf")},4186:function(t,e,n){"use strict";(function(e){var i;function r(t,e,n){return e=o(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){var e=a(t,"string");return"symbol"===typeof e?e:String(e)}function a(t,e){if("object"!==typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!==typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}var s=n("ee93"),u=Symbol("lastResolve"),l=Symbol("lastReject"),h=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),d=Symbol("handlePromise"),p=Symbol("stream");function g(t,e){return{value:t,done:e}}function m(t){var e=t[u];if(null!==e){var n=t[p].read();null!==n&&(t[f]=null,t[u]=null,t[l]=null,e(g(n,!1)))}}function v(t){e.nextTick(m,t)}function y(t,e){return function(n,i){t.then((function(){e[c]?n(g(void 0,!0)):e[d](n,i)}),i)}}var b=Object.getPrototypeOf((function(){})),w=Object.setPrototypeOf((i={get stream(){return this[p]},next:function(){var t=this,n=this[h];if(null!==n)return Promise.reject(n);if(this[c])return Promise.resolve(g(void 0,!0));if(this[p].destroyed)return new Promise((function(n,i){e.nextTick((function(){t[h]?i(t[h]):n(g(void 0,!0))}))}));var i,r=this[f];if(r)i=new Promise(y(r,this));else{var o=this[p].read();if(null!==o)return Promise.resolve(g(o,!1));i=new Promise(this[d])}return this[f]=i,i}},r(i,Symbol.asyncIterator,(function(){return this})),r(i,"return",(function(){var t=this;return new Promise((function(e,n){t[p].destroy(null,(function(t){t?n(t):e(g(void 0,!0))}))}))})),i),b),_=function(t){var e,n=Object.create(w,(e={},r(e,p,{value:t,writable:!0}),r(e,u,{value:null,writable:!0}),r(e,l,{value:null,writable:!0}),r(e,h,{value:null,writable:!0}),r(e,c,{value:t._readableState.endEmitted,writable:!0}),r(e,d,{value:function(t,e){var i=n[p].read();i?(n[f]=null,n[u]=null,n[l]=null,t(g(i,!1))):(n[u]=t,n[l]=e)},writable:!0}),e));return n[f]=null,s(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=n[l];return null!==e&&(n[f]=null,n[u]=null,n[l]=null,e(t)),void(n[h]=t)}var i=n[u];null!==i&&(n[f]=null,n[u]=null,n[l]=null,i(g(void 0,!0))),n[c]=!0})),t.on("readable",v.bind(null,n)),n};t.exports=_}).call(this,n("4362"))},"41b2":function(t,e,n){"use strict";e.__esModule=!0;var i=n("3f6b"),r=o(i);function o(t){return t&&t.__esModule?t:{default:t}}e.default=r.default||function(t){for(var e=1;e255?255:t}function a(t){return t=Math.round(t),t<0?0:t>360?360:t}function s(t){return t<0?0:t>1?1:t}function u(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?o(parseFloat(e)/100*255):o(parseInt(e,10))}function l(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?s(parseFloat(e)/100):s(parseFloat(e))}function h(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function c(t,e,n){return t+(e-t)*n}function f(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function d(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var p=new i["a"](20),g=null;function m(t,e){g&&d(g,e),g=p.put(t,g||e.slice())}function v(t,e){if(t){e=e||[];var n=p.get(t);if(n)return d(e,n);t+="";var i=t.replace(/ /g,"").toLowerCase();if(i in r)return d(e,r[i]),m(t,e),e;var o=i.length;if("#"!==i.charAt(0)){var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var h=i.substr(0,a),c=i.substr(a+1,s-(a+1)).split(","),g=1;switch(h){case"rgba":if(4!==c.length)return 3===c.length?f(e,+c[0],+c[1],+c[2],1):f(e,0,0,0,1);g=l(c.pop());case"rgb":return c.length>=3?(f(e,u(c[0]),u(c[1]),u(c[2]),3===c.length?g:l(c[3])),m(t,e),e):void f(e,0,0,0,1);case"hsla":return 4!==c.length?void f(e,0,0,0,1):(c[3]=l(c[3]),y(c,e),m(t,e),e);case"hsl":return 3!==c.length?void f(e,0,0,0,1):(y(c,e),m(t,e),e);default:return}}f(e,0,0,0,1)}else{if(4===o||5===o){var v=parseInt(i.slice(1,4),16);return v>=0&&v<=4095?(f(e,(3840&v)>>4|(3840&v)>>8,240&v|(240&v)>>4,15&v|(15&v)<<4,5===o?parseInt(i.slice(4),16)/15:1),m(t,e),e):void f(e,0,0,0,1)}if(7===o||9===o){v=parseInt(i.slice(1,7),16);return v>=0&&v<=16777215?(f(e,(16711680&v)>>16,(65280&v)>>8,255&v,9===o?parseInt(i.slice(7),16)/255:1),m(t,e),e):void f(e,0,0,0,1)}}}}function y(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=l(t[1]),r=l(t[2]),a=r<=.5?r*(i+1):r+i-r*i,s=2*r-a;return e=e||[],f(e,o(255*h(s,a,n+1/3)),o(255*h(s,a,n)),o(255*h(s,a,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function b(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),u=s-a,l=(s+a)/2;if(0===u)e=0,n=0;else{n=l<.5?u/(s+a):u/(2-s-a);var h=((s-i)/6+u/2)/u,c=((s-r)/6+u/2)/u,f=((s-o)/6+u/2)/u;i===s?e=f-c:r===s?e=1/3+h-f:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,l];return null!=t[3]&&d.push(t[3]),d}}function w(t,e){var n=v(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return k(n,4===n.length?"rgba":"rgb")}}function _(t){var e=v(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function x(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),a=Math.ceil(i),u=e[r],l=e[a],h=i-r;return n[0]=o(c(u[0],l[0],h)),n[1]=o(c(u[1],l[1],h)),n[2]=o(c(u[2],l[2],h)),n[3]=s(c(u[3],l[3],h)),n}}var M=x;function S(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),a=Math.ceil(i),u=v(e[r]),l=v(e[a]),h=i-r,f=k([o(c(u[0],l[0],h)),o(c(u[1],l[1],h)),o(c(u[2],l[2],h)),s(c(u[3],l[3],h))],"rgba");return n?{color:f,leftIndex:r,rightIndex:a,value:i}:f}}var O=S;function A(t,e,n,i){var r=v(t);if(t)return r=b(r),null!=e&&(r[0]=a(e)),null!=n&&(r[1]=l(n)),null!=i&&(r[2]=l(i)),k(y(r),"rgba")}function I(t,e){var n=v(t);if(n&&null!=e)return n[3]=s(e),k(n,"rgba")}function k(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function T(t,e){var n=v(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}function C(){return k([Math.round(255*Math.random()),Math.round(255*Math.random()),Math.round(255*Math.random())],"rgb")}},4228:function(t,e,n){var i=n("82f0"),r=n("8707").Buffer,o=n("bac2"),a=n("09f5"),s=n("6430"),u=n("39f5"),l=n("ae84"),h=n("3fb5");function c(t,e,n){s.call(this),this._cache=new f,this._last=void 0,this._cipher=new u.AES(e),this._prev=r.from(n),this._mode=t,this._autopadding=!0}function f(){this.cache=r.allocUnsafe(0)}function d(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var n=-1;while(++n16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},f.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=g,e.createDecipheriv=p},4250:function(t,e,n){"use strict";(function(e,i){var r;t.exports=T,T.ReadableState=k;n("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=n("5bbb"),s=n("1c35").Buffer,u=("undefined"!==typeof e?e:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function l(t){return s.from(t)}function h(t){return s.isBuffer(t)||t instanceof u}var c,f=n(1);c=f&&f.debuglog?f.debuglog("stream"):function(){};var d,p,g,m=n("96a5"),v=n("493f"),y=n("b9b5"),b=y.getHighWaterMark,w=n("9d8a").codes,_=w.ERR_INVALID_ARG_TYPE,x=w.ERR_STREAM_PUSH_AFTER_EOF,M=w.ERR_METHOD_NOT_IMPLEMENTED,S=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n("3fb5")(T,a);var O=v.errorOrDestroy,A=["error","close","destroy","pause","resume"];function I(t,e,n){if("function"===typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}function k(t,e,i){r=r||n("e666"),t=t||{},"boolean"!==typeof i&&(i=e instanceof r),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=b(this,t,"readableHighWaterMark",i),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=n("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function T(t){if(r=r||n("e666"),!(this instanceof T))return new T(t);var e=this instanceof r;this._readableState=new k(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function C(t,e,n,i,r){c("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,P(t,a);else if(r||(o=D(a,e)),o)O(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=l(e)),i)a.endEmitted?O(t,new S):E(t,a,e,!0);else if(a.ended)O(t,new x);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!n?(e=a.decoder.write(e),a.objectMode||0!==e.length?E(t,a,e,!1):z(t,a)):E(t,a,e,!1)}else i||(a.reading=!1,z(t,a));return!a.ended&&(a.length=L?t=L:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function j(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function P(t,e){if(c("onEofChunk"),!e.ended){if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,e.sync?N(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,B(t)))}}function N(t){var e=t._readableState;c("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(c("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(B,t))}function B(t){var e=t._readableState;c("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,q(t)}function z(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(F,t,e))}function F(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function G(t){c("readable nexttick read 0"),t.read(0)}function U(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(W,t,e))}function W(t,e){c("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),q(t),e.flowing&&!e.reading&&t.read(0)}function q(t){var e=t._readableState;c("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?n=e.buffer.shift():!t||t>=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):n=e.buffer.consume(t,e.decoder),n);var n}function Y(t){var e=t._readableState;c("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(X,e,t))}function X(t,e){if(c("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var n=e._writableState;(!n||n.autoDestroy&&n.finished)&&e.destroy()}}function $(t,e){for(var n=0,i=t.length;n=e.highWaterMark:e.length>0)||e.ended))return c("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Y(this):N(this),null;if(t=j(t,e),0===t&&e.ended)return 0===e.length&&Y(this),null;var i,r=e.needReadable;return c("need readable",r),(0===e.length||e.length-t0?Z(t,e):null,null===i?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&Y(this)),null!==i&&this.emit("data",i),i},T.prototype._read=function(t){O(this,new M("_read()"))},T.prototype.pipe=function(t,e){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=t;break;case 1:r.pipes=[r.pipes,t];break;default:r.pipes.push(t);break}r.pipesCount+=1,c("pipe count=%d opts=%j",r.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,s=a?l:y;function u(t,e){c("onunpipe"),t===n&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function l(){c("onend"),t.end()}r.endEmitted?i.nextTick(s):n.once("end",s),t.on("unpipe",u);var h=V(n);t.on("drain",h);var f=!1;function d(){c("cleanup"),t.removeListener("close",m),t.removeListener("finish",v),t.removeListener("drain",h),t.removeListener("error",g),t.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",y),n.removeListener("data",p),f=!0,!r.awaitDrain||t._writableState&&!t._writableState.needDrain||h()}function p(e){c("ondata");var i=t.write(e);c("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===t||r.pipesCount>1&&-1!==$(r.pipes,t))&&!f&&(c("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function g(e){c("onerror",e),y(),t.removeListener("error",g),0===o(t,"error")&&O(t,e)}function m(){t.removeListener("finish",v),y()}function v(){c("onfinish"),t.removeListener("close",m),y()}function y(){c("unpipe"),n.unpipe(t)}return n.on("data",p),I(t,"error",g),t.once("close",m),t.once("finish",v),t.emit("pipe",n),r.flowing||(c("pipe resume"),n.resume()),t},T.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,n)),this;if(!t){var i=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==r.flowing&&this.resume()):"readable"===t&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,c("on readable",r.length,r.reading),r.length?N(this):r.reading||i.nextTick(G,this))),n},T.prototype.addListener=T.prototype.on,T.prototype.removeListener=function(t,e){var n=a.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(H,this),n},T.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(H,this),e},T.prototype.resume=function(){var t=this._readableState;return t.flowing||(c("resume"),t.flowing=!t.readableListening,U(this,t)),t.paused=!1,this},T.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},T.prototype.wrap=function(t){var e=this,n=this._readableState,i=!1;for(var r in t.on("end",(function(){if(c("wrapped end"),n.decoder&&!n.ended){var t=n.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(r){if(c("wrapped data"),n.decoder&&(r=n.decoder.write(r)),(!n.objectMode||null!==r&&void 0!==r)&&(n.objectMode||r&&r.length)){var o=e.push(r);o||(i=!0,t.pause())}})),t)void 0===this[r]&&"function"===typeof t[r]&&(this[r]=function(e){return function(){return t[e].apply(t,arguments)}}(r));for(var o=0;o=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},"493f":function(t,e,n){"use strict";(function(e){function n(t,n){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(n?n(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!n&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(r,o):(o._writableState.errorEmitted=!0,e.nextTick(i,o,t)):e.nextTick(i,o,t):n?(e.nextTick(r,o),n(t)):e.nextTick(r,o)})),this)}function i(t,e){a(t,e),r(t)}function r(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var n=t._readableState,i=t._writableState;n&&n.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:n,undestroy:o,errorOrDestroy:s}}).call(this,n("4362"))},"498a":function(t,e,n){"use strict";var i=n("23e7"),r=n("58a8").trim,o=n("c8d2");i({target:"String",proto:!0,forced:o("trim")},{trim:function(){return r(this)}})},"49ce":function(t,e,n){"use strict";(function(e,i){function r(t){var e=this;this.next=null,this.entry=null,this.finish=function(){W(e,t)}}var o;t.exports=k,k.WritableState=I;var a={deprecate:n("b7d1")},s=n("f12a"),u=n("1c35").Buffer,l=("undefined"!==typeof e?e:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function h(t){return u.from(t)}function c(t){return u.isBuffer(t)||t instanceof l}var f,d=n("9019"),p=n("05f0"),g=p.getHighWaterMark,m=n("d113").codes,v=m.ERR_INVALID_ARG_TYPE,y=m.ERR_METHOD_NOT_IMPLEMENTED,b=m.ERR_MULTIPLE_CALLBACK,w=m.ERR_STREAM_CANNOT_PIPE,_=m.ERR_STREAM_DESTROYED,x=m.ERR_STREAM_NULL_VALUES,M=m.ERR_STREAM_WRITE_AFTER_END,S=m.ERR_UNKNOWN_ENCODING,O=d.errorOrDestroy;function A(){}function I(t,e,i){o=o||n("5e7d"),t=t||{},"boolean"!==typeof i&&(i=e instanceof o),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=g(this,t,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){P(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function k(t){o=o||n("5e7d");var e=this instanceof o;if(!e&&!f.call(k,this))return new k(t);this._writableState=new I(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function T(t,e){var n=new M;O(t,n),i.nextTick(e,n)}function C(t,e,n,r){var o;return null===n?o=new x:"string"===typeof n||e.objectMode||(o=new v("chunk",["string","Buffer"],n)),!o||(O(t,o),i.nextTick(r,o),!1)}function E(t,e,n){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,n)),e}function D(t,e,n,i,r,o){if(!n){var a=E(e,i,r);i!==a&&(n=!0,r="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(k.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(k.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),k.prototype._write=function(t,e,n){n(new y("_write()"))},k.prototype._writev=null,k.prototype.end=function(t,e,n){var i=this._writableState;return"function"===typeof t?(n=t,t=null,e=null):"function"===typeof e&&(n=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||U(this,i,n),this},Object.defineProperty(k.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),k.prototype.destroy=d.destroy,k.prototype._undestroy=d.undestroy,k.prototype._destroy=function(t,e){e(t)}}).call(this,n("24aa"),n("4362"))},"4b8b":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"4d20":function(t,e,n){var i=n("1917"),r=n("10db"),o=n("6ca1"),a=n("3397"),s=n("9c0e"),u=n("faf5"),l=Object.getOwnPropertyDescriptor;e.f=n("0bad")?l:function(t,e){if(t=o(t),e=a(e,!0),u)try{return l(t,e)}catch(n){}if(s(t,e))return r(!i.f.call(t,e),t[e])}},"4d63":function(t,e,n){var i=n("83ab"),r=n("da84"),o=n("e330"),a=n("94ca"),s=n("7156"),u=n("9112"),l=n("241c").f,h=n("3a9b"),c=n("44e7"),f=n("577e"),d=n("90d8"),p=n("9f7f"),g=n("aeb0"),m=n("cb2d"),v=n("d039"),y=n("1a2d"),b=n("69f3").enforce,w=n("2626"),_=n("b622"),x=n("fce3"),M=n("107c"),S=_("match"),O=r.RegExp,A=O.prototype,I=r.SyntaxError,k=o(A.exec),T=o("".charAt),C=o("".replace),E=o("".indexOf),D=o("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,R=/a/g,j=/a/g,P=new O(R)!==R,N=p.MISSED_STICKY,B=p.UNSUPPORTED_Y,z=i&&(!P||N||x||M||v((function(){return j[S]=!1,O(R)!=R||O(j)==j||"/a/i"!=O(R,"i")}))),F=function(t){for(var e,n=t.length,i=0,r="",o=!1;i<=n;i++)e=T(t,i),"\\"!==e?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),r+=e):r+="[\\s\\S]":r+=e+T(t,++i);return r},V=function(t){for(var e,n=t.length,i=0,r="",o=[],a={},s=!1,u=!1,l=0,h="";i<=n;i++){if(e=T(t,i),"\\"===e)e+=T(t,++i);else if("]"===e)s=!1;else if(!s)switch(!0){case"["===e:s=!0;break;case"("===e:k(L,D(t,i+1))&&(i+=2,u=!0),r+=e,l++;continue;case">"===e&&u:if(""===h||y(a,h))throw new I("Invalid capture group name");a[h]=!0,o[o.length]=[h,l],u=!1,h="";continue}u?h+=e:r+=e}return[r,o]};if(a("RegExp",z)){for(var H=function(t,e){var n,i,r,o,a,l,p=h(A,this),g=c(t),m=void 0===e,v=[],y=t;if(!p&&g&&m&&t.constructor===H)return t;if((g||h(A,t))&&(t=t.source,m&&(e=d(y))),t=void 0===t?"":f(t),e=void 0===e?"":f(e),y=t,x&&"dotAll"in R&&(i=!!e&&E(e,"s")>-1,i&&(e=C(e,/s/g,""))),n=e,N&&"sticky"in R&&(r=!!e&&E(e,"y")>-1,r&&B&&(e=C(e,/y/g,""))),M&&(o=V(t),t=o[0],v=o[1]),a=s(O(t,e),p?this:A,H),(i||r||v.length)&&(l=b(a),i&&(l.dotAll=!0,l.raw=H(F(t),n)),r&&(l.sticky=!0),v.length&&(l.groups=v)),t!==y)try{u(a,"source",""===y?"(?:)":y)}catch(w){}return a},G=l(O),U=0;G.length>U;)g(H,O,G[U++]);A.constructor=H,H.prototype=A,m(r,"RegExp",H,{constructor:!0})}w("RegExp")},"4d64":function(t,e,n){var i=n("fc6a"),r=n("23cb"),o=n("07fa"),a=function(t){return function(e,n,a){var s,u=i(e),l=o(u),h=r(a,l);if(t&&n!=n){while(l>h)if(s=u[h++],s!=s)return!0}else for(;l>h;h++)if((t||h in u)&&u[h]===n)return t||h||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4d88":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"4dae":function(t,e,n){var i=n("23cb"),r=n("07fa"),o=n("8418"),a=Array,s=Math.max;t.exports=function(t,e,n){for(var u=r(t),l=i(e,u),h=i(void 0===n?u:n,u),c=a(s(h-l,0)),f=0;l1?arguments[1]:void 0)}})},"4df4":function(t,e,n){"use strict";var i=n("0366"),r=n("c65b"),o=n("7b0b"),a=n("9bdd"),s=n("e95a"),u=n("68ee"),l=n("07fa"),h=n("8418"),c=n("9a1f"),f=n("35a1"),d=Array;t.exports=function(t){var e=o(t),n=u(this),p=arguments.length,g=p>1?arguments[1]:void 0,m=void 0!==g;m&&(g=i(g,p>2?arguments[2]:void 0));var v,y,b,w,_,x,M=f(e),S=0;if(!M||this===d&&s(M))for(v=l(e),y=n?new this(v):d(v);v>S;S++)x=m?g(e[S],S):e[S],h(y,S,x);else for(w=c(e,M),_=w.next,y=n?new this:[];!(b=r(_,w)).done;S++)x=m?a(w,g,[b.value,S],!0):b.value,h(y,S,x);return y.length=S,y}},"4e2b":function(t,e,n){"use strict";var i=n("da3e"),r=n("3fb5"),o=n("5ee7"),a=n("0184");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}r(u,a),t.exports=u,u.create=function(t){return new u(t)};var l=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),i.equal(e.length,this.blockSize,"Invalid key length");var n=o.readUInt32BE(e,0),r=o.readUInt32BE(e,4);o.pc1(n,r,t.tmp,0),n=t.tmp[0],r=t.tmp[1];for(var a=0;a>>1];n=o.r28shl(n,s),r=o.r28shl(r,s),o.pc2(n,r,t.keys,a)}},u.prototype._update=function(t,e,n,i){var r=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,r.tmp,0),a=r.tmp[0],s=r.tmp[1],"encrypt"===this.type?this._encrypt(r,a,s,r.tmp,0):this._decrypt(r,a,s,r.tmp,0),a=r.tmp[0],s=r.tmp[1],o.writeUInt32BE(n,a,i),o.writeUInt32BE(n,s,i+4)},u.prototype._pad=function(t,e){for(var n=t.length-e,i=e;i>>0,a=d}o.rip(s,a,i,r)},u.prototype._decrypt=function(t,e,n,i,r){for(var a=n,s=e,u=t.keys.length-2;u>=0;u-=2){var l=t.keys[u],h=t.keys[u+1];o.expand(a,t.tmp,0),l^=t.tmp[0],h^=t.tmp[1];var c=o.substitute(l,h),f=o.permute(c),d=a;a=(s^f)>>>0,s=d}o.rip(a,s,i,r)}},"4e71":function(t,e,n){n("e198")("observable")},"4ebc":function(t,e,n){var i=n("4d88");t.exports=Array.isArray||function(t){return"Array"==i(t)}},"4fad":function(t,e,n){var i=n("d039"),r=n("861d"),o=n("c6b6"),a=n("d86b"),s=Object.isExtensible,u=i((function(){s(1)}));t.exports=u||a?function(t){return!!r(t)&&((!a||"ArrayBuffer"!=o(t))&&(!s||s(t)))}:s},"4fd1":function(t,e,n){var i=n("3fb5"),r=n("b672"),o=n("8707").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,r.call(this,128,112)}function l(t,e,n){return n^t&(e^n)}function h(t,e,n){return t&e|n&(t|e)}function c(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function f(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function v(t,e){return t>>>0>>0?1:0}i(u,r),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._ah,i=0|this._bh,r=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,y=0|this._gh,b=0|this._hh,w=0|this._al,_=0|this._bl,x=0|this._cl,M=0|this._dl,S=0|this._el,O=0|this._fl,A=0|this._gl,I=0|this._hl,k=0;k<32;k+=2)e[k]=t.readInt32BE(4*k),e[k+1]=t.readInt32BE(4*k+4);for(;k<160;k+=2){var T=e[k-30],C=e[k-30+1],E=d(T,C),D=p(C,T);T=e[k-4],C=e[k-4+1];var L=g(T,C),R=m(C,T),j=e[k-14],P=e[k-14+1],N=e[k-32],B=e[k-32+1],z=D+P|0,F=E+j+v(z,D)|0;z=z+R|0,F=F+L+v(z,R)|0,z=z+B|0,F=F+N+v(z,B)|0,e[k]=F,e[k+1]=z}for(var V=0;V<160;V+=2){F=e[V],z=e[V+1];var H=h(n,i,r),G=h(w,_,x),U=c(n,w),W=c(w,n),q=f(s,S),Z=f(S,s),Y=a[V],X=a[V+1],$=l(s,u,y),K=l(S,O,A),J=I+Z|0,Q=b+q+v(J,I)|0;J=J+K|0,Q=Q+$+v(J,K)|0,J=J+X|0,Q=Q+Y+v(J,X)|0,J=J+z|0,Q=Q+F+v(J,z)|0;var tt=W+G|0,et=U+H+v(tt,W)|0;b=y,I=A,y=u,A=O,u=s,O=S,S=M+J|0,s=o+Q+v(S,M)|0,o=r,M=x,r=i,x=_,i=n,_=w,w=J+tt|0,n=Q+et+v(w,J)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+x|0,this._dl=this._dl+M|0,this._el=this._el+S|0,this._fl=this._fl+O|0,this._gl=this._gl+A|0,this._hl=this._hl+I|0,this._ah=this._ah+n+v(this._al,w)|0,this._bh=this._bh+i+v(this._bl,_)|0,this._ch=this._ch+r+v(this._cl,x)|0,this._dh=this._dh+o+v(this._dl,M)|0,this._eh=this._eh+s+v(this._el,S)|0,this._fh=this._fh+u+v(this._fl,O)|0,this._gh=this._gh+y+v(this._gl,A)|0,this._hh=this._hh+b+v(this._hl,I)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,n,i){t.writeInt32BE(e,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},5087:function(t,e,n){var i=n("68ee"),r=n("0d51"),o=TypeError;t.exports=function(t){if(i(t))return t;throw o(r(t)+" is not a constructor")}},"50c4":function(t,e,n){var i=n("5926"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},"511f":function(t,e,n){n("0b99"),n("658f"),t.exports=n("fcd4").f("iterator")},"512c":function(t,e,n){var i=n("ef08"),r=n("5524"),o=n("9c0c"),a=n("051b"),s=n("9c0e"),u="prototype",l=function(t,e,n){var h,c,f,d=t&l.F,p=t&l.G,g=t&l.S,m=t&l.P,v=t&l.B,y=t&l.W,b=p?r:r[e]||(r[e]={}),w=b[u],_=p?i:g?i[e]:(i[e]||{})[u];for(h in p&&(n=e),n)c=!d&&_&&void 0!==_[h],c&&s(b,h)||(f=c?_[h]:n[h],b[h]=p&&"function"!=typeof _[h]?n[h]:v&&c?o(f,i):y&&_[h]==f?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):m&&"function"==typeof f?o(Function.call,f):f,m&&((b.virtual||(b.virtual={}))[h]=f,t&l.R&&w&&!w[h]&&a(w,h,f)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},5165:function(t,e,n){(function(t){var i=n("8c8a");function r(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,n){while(e._cache.length>s%8,t._prev=o(t._prev,n?r:a);return l}function o(t,e){var n=t.length,r=-1,o=i.allocUnsafe(t.length);t=i.concat([t,i.from([e])]);while(++r>7;return o}e.encrypt=function(t,e,n){var o=e.length,a=i.allocUnsafe(o),s=-1;while(++s")}));a("replace",(function(t,e,n){var o=T?"$":"$0";return[function(t,n){var i=p(this),o=h(t)?void 0:m(t,w);return o?r(o,t,i,n):r(e,d(i),t,n)},function(t,r){var a=u(this),s=d(t);if("string"==typeof r&&-1===O(r,o)&&-1===O(r,"$<")){var h=n(e,a,s,r);if(h.done)return h.value}var p=l(r);p||(r=d(r));var m=a.global;if(m){var b=a.unicode;a.lastIndex=0}var w=[];while(1){var k=y(a,s);if(null===k)break;if(S(w,k),!m)break;var T=d(k[0]);""===T&&(a.lastIndex=g(s,f(a.lastIndex),b))}for(var C="",E=0,D=0;D=E&&(C+=A(s,E,R)+z,E=R+L.length)}return C+A(s,E)}]}),!C||!k||T)},"53ca":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0");function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}},5524:function(t,e){var n=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},5530:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));n("b64b"),n("a4d3"),n("4de4"),n("d3b7"),n("e439"),n("14d9"),n("159b"),n("dbb4");var i=n("ade3");function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;et)n.ishrn(1);if(n.isEven()&&n.iadd(u),n.testn(1)||n.iadd(l),e.cmp(l)){if(!e.cmp(h))while(n.mod(c).cmp(f))n.iadd(p)}else while(n.mod(o).cmp(d))n.iadd(p);if(a=n.shrn(1),v(a)&&v(n)&&y(a)&&y(n)&&s.test(a)&&s.test(n))return n}}},"58a8":function(t,e,n){var i=n("e330"),r=n("1d80"),o=n("577e"),a=n("5899"),s=i("".replace),u=RegExp("^["+a+"]+"),l=RegExp("(^|[^"+a+"])["+a+"]+$"),h=function(t){return function(e){var n=o(r(e));return 1&t&&(n=s(n,u,"")),2&t&&(n=s(n,l,"$1")),n}};t.exports={start:h(1),end:h(2),trim:h(3)}},5919:function(t,e,n){"use strict";e.sha1=n("13e2"),e.sha224=n("07f2"),e.sha256=n("6eed"),e.sha384=n("8b95"),e.sha512=n("b525")},5926:function(t,e,n){var i=n("b42e");t.exports=function(t){var e=+t;return e!==e||0===e?0:i(e)}},"597f":function(t,e){t.exports=function(t,e,n,i){var r,o=0;function a(){var a=this,s=Number(new Date)-o,u=arguments;function l(){o=Number(new Date),n.apply(a,u)}function h(){r=void 0}i&&!r&&l(),r&&clearTimeout(r),void 0===i&&s>t?l():!0!==e&&(r=setTimeout(i?h:l,void 0===i?t-s:t))}return"boolean"!==typeof e&&(i=n,n=e,e=void 0),a}},"59ed":function(t,e,n){var i=n("1626"),r=n("0d51"),o=TypeError;t.exports=function(t){if(i(t))return t;throw o(r(t)+" is not a function")}},"5a34":function(t,e,n){var i=n("44e7"),r=TypeError;t.exports=function(t){if(i(t))throw r("The method doesn't accept regular expressions");return t}},"5a47":function(t,e,n){var i=n("23e7"),r=n("04f8"),o=n("d039"),a=n("7418"),s=n("7b0b"),u=!r||o((function(){a.f(1)}));i({target:"Object",stat:!0,forced:u},{getOwnPropertySymbols:function(t){var e=a.f;return e?e(s(t)):[]}})},"5a76":function(t,e,n){var i=n("f576");t.exports=function(t){return(new i).update(t).digest()}},"5a94":function(t,e,n){var i=n("b367")("keys"),r=n("8b1a");t.exports=function(t){return i[t]||(i[t]=r(t))}},"5bbb":function(t,e,n){t.exports=n("faa1").EventEmitter},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5e1a":function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=n("a8f0").Buffer,o=n(4);function a(t,e,n){t.copy(e,n)}t.exports=function(){function t(){i(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";var e=this.head,n=""+e.data;while(e=e.next)n+=t+e.data;return n},t.prototype.concat=function(t){if(0===this.length)return r.alloc(0);var e=r.allocUnsafe(t>>>0),n=this.head,i=0;while(n)a(n.data,e,i),i+=n.data.length,n=n.next;return e},t}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var t=o.inspect({length:this.length});return this.constructor.name+" "+t})},"5e77":function(t,e,n){var i=n("83ab"),r=n("1a2d"),o=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,s=r(o,"name"),u=s&&"something"===function(){}.name,l=s&&(!i||i&&a(o,"name").configurable);t.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},"5e7d":function(t,e,n){"use strict";(function(e){var i=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=l;var r=n("cf35"),o=n("49ce");n("3fb5")(l,r);for(var a=i(o.prototype),s=0;s>>0},e.writeUInt32BE=function(t,e,n){t[0+n]=e>>>24,t[1+n]=e>>>16&255,t[2+n]=e>>>8&255,t[3+n]=255&e},e.ip=function(t,e,n,i){for(var r=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)r<<=1,r|=e>>>s+a&1;for(s=0;s<=24;s+=8)r<<=1,r|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}n[i+0]=r>>>0,n[i+1]=o>>>0},e.rip=function(t,e,n,i){for(var r=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)r<<=1,r|=e>>>s+a&1,r<<=1,r|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;n[i+0]=r>>>0,n[i+1]=o>>>0},e.pc1=function(t,e,n,i){for(var r=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)r<<=1,r|=e>>s+a&1;for(s=0;s<=24;s+=8)r<<=1,r|=t>>s+a&1}for(s=0;s<=24;s+=8)r<<=1,r|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;n[i+0]=r>>>0,n[i+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,n,r){for(var o=0,a=0,s=i.length>>>1,u=0;u>>i[u]&1;for(u=s;u>>i[u]&1;n[r+0]=o>>>0,n[r+1]=a>>>0},e.expand=function(t,e,n){var i=0,r=0;i=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)i<<=6,i|=t>>>o&63;for(o=11;o>=3;o-=4)r|=t>>>o&63,r<<=6;r|=(31&t)<<1|t>>>31,e[n+0]=i>>>0,e[n+1]=r>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var n=0,i=0;i<4;i++){var o=t>>>18-6*i&63,a=r[64*i+o];n<<=4,n|=a}for(i=0;i<4;i++){o=e>>>18-6*i&63,a=r[256+64*i+o];n<<=4,n|=a}return n>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,n=0;n>>o[n]&1;return e>>>0},e.padSplit=function(t,e,n){var i=t.toString(2);while(i.lengtha){var g,m=c(arguments[a++]),v=f?p(s(m),f(m)):s(m),y=v.length,b=0;while(y>b)g=v[b++],i&&!o(d,m,g)||(n[g]=m[g])}return n}:f},6283:function(t,e,n){"use strict";const i=n("3fb5"),r=n("d1c8").Reporter,o=n("c591").Buffer;function a(t,e){r.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return s.isEncoderBuffer(t)||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"===typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"===typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}i(a,r),e.DecoderBuffer=a,a.isDecoderBuffer=function(t){if(t instanceof a)return!0;const e="object"===typeof t&&o.isBuffer(t.base)&&"DecoderBuffer"===t.constructor.name&&"number"===typeof t.offset&&"number"===typeof t.length&&"function"===typeof t.save&&"function"===typeof t.restore&&"function"===typeof t.isEmpty&&"function"===typeof t.readUInt8&&"function"===typeof t.skip&&"function"===typeof t.raw;return e},a.prototype.save=function(){return{offset:this.offset,reporter:r.prototype.save.call(this)}},a.prototype.restore=function(t){const e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,r.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");const n=new a(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+t,this.offset+=t,n},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.isEncoderBuffer=function(t){if(t instanceof s)return!0;const e="object"===typeof t&&"EncoderBuffer"===t.constructor.name&&"number"===typeof t.length&&"function"===typeof t.join;return e},s.prototype.join=function(t,e){return t||(t=o.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(n){n.join(t,e),e+=n.length})):("number"===typeof this.value?t[e]=this.value:"string"===typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},"62c8":function(t,e,n){var i=n("1c35"),r=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function a(t,e,n){return r(t,e,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=a),o(r,a),a.from=function(t,e,n){if("number"===typeof t)throw new TypeError("Argument must not be a number");return r(t,e,n)},a.alloc=function(t,e,n){if("number"!==typeof t)throw new TypeError("Argument must be a number");var i=r(t);return void 0!==e?"string"===typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return r(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},"62c9":function(t,e,n){var i=n("8707").Buffer;function r(t,e,n){var r=t._cipher.encryptBlock(t._prev),o=r[0]^e;return t._prev=i.concat([t._prev.slice(1),i.from([n?e:o])]),o}e.encrypt=function(t,e,n){var o=e.length,a=i.allocUnsafe(o),s=-1;while(++s=d?t?"":void 0:(i=u(c,f),i<55296||i>56319||f+1===d||(h=u(c,f+1))<56320||h>57343?t?s(c,f):i:t?l(c,f,f+2):h-56320+(i-55296<<10)+65536)}};t.exports={codeAt:h(!1),charAt:h(!0)}},6566:function(t,e,n){"use strict";var i=n("7c73"),r=n("edd0"),o=n("6964"),a=n("0366"),s=n("19aa"),u=n("7234"),l=n("2266"),h=n("c6d2"),c=n("4754"),f=n("2626"),d=n("83ab"),p=n("f183").fastKey,g=n("69f3"),m=g.set,v=g.getterFor;t.exports={getConstructor:function(t,e,n,h){var c=t((function(t,r){s(t,f),m(t,{type:e,index:i(null),first:void 0,last:void 0,size:0}),d||(t.size=0),u(r)||l(r,t[h],{that:t,AS_ENTRIES:n})})),f=c.prototype,g=v(e),y=function(t,e,n){var i,r,o=g(t),a=b(t,e);return a?a.value=n:(o.last=a={index:r=p(e,!0),key:e,value:n,previous:i=o.last,next:void 0,removed:!1},o.first||(o.first=a),i&&(i.next=a),d?o.size++:t.size++,"F"!==r&&(o.index[r]=a)),t},b=function(t,e){var n,i=g(t),r=p(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return o(f,{clear:function(){var t=this,e=g(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,d?e.size=0:t.size=0},delete:function(t){var e=this,n=g(e),i=b(e,t);if(i){var r=i.next,o=i.previous;delete n.index[i.index],i.removed=!0,o&&(o.next=r),r&&(r.previous=o),n.first==i&&(n.first=r),n.last==i&&(n.last=o),d?n.size--:e.size--}return!!i},forEach:function(t){var e,n=g(this),i=a(t,arguments.length>1?arguments[1]:void 0);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!b(this,t)}}),o(f,n?{get:function(t){var e=b(this,t);return e&&e.value},set:function(t,e){return y(this,0===t?0:t,e)}}:{add:function(t){return y(this,t=0===t?0:t,t)}}),d&&r(f,"size",{configurable:!0,get:function(){return g(this).size}}),c},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),o=v(i);h(t,e,(function(t,e){m(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=o(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?c("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,c(void 0,!0))}),n?"entries":"values",!n,!0),f(e)}}},"658f":function(t,e,n){n("6858");for(var i=n("ef08"),r=n("051b"),o=n("8a0d"),a=n("cc15")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z),e=t.redSqr(),n=this.x.redSub(this.z),i=n.redSqr(),r=e.redSub(i),o=e.redMul(i),a=r.redMul(i.redAdd(this.curve.a24.redMul(r)));return this.curve.point(o,a)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var n=this.x.redAdd(this.z),i=this.x.redSub(this.z),r=t.x.redAdd(t.z),o=t.x.redSub(t.z),a=o.redMul(n),s=r.redMul(i),u=e.z.redMul(a.redAdd(s).redSqr()),l=e.x.redMul(a.redISub(s).redSqr());return this.curve.point(u,l)},u.prototype.mul=function(t){for(var e=t.clone(),n=this,i=this.curve.point(null,null),r=this,o=[];0!==e.cmpn(0);e.iushrn(1))o.push(e.andln(1));for(var a=o.length-1;a>=0;a--)0===o[a]?(n=n.diffAdd(i,r),i=i.dbl()):(i=n.diffAdd(i,r),n=n.dbl());return i},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6858:function(t,e,n){"use strict";var i=n("2f9a"),r=n("ea34"),o=n("8a0d"),a=n("6ca1");t.exports=n("393a")(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},"68ee":function(t,e,n){var i=n("e330"),r=n("d039"),o=n("1626"),a=n("f5df"),s=n("d066"),u=n("8925"),l=function(){},h=[],c=s("Reflect","construct"),f=/^\s*(?:class|function)\b/,d=i(f.exec),p=!f.exec(l),g=function(t){if(!o(t))return!1;try{return c(l,h,t),!0}catch(e){return!1}},m=function(t){if(!o(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(f,u(t))}catch(e){return!0}};m.sham=!0,t.exports=!c||r((function(){var t;return g(g.call)||!g(Object)||!g((function(){t=!0}))||t}))?m:g},"693d":function(t,e,n){"use strict";var i=n("ef08"),r=n("9c0e"),o=n("0bad"),a=n("512c"),s=n("ba01"),u=n("e34a").KEY,l=n("4b8b"),h=n("b367"),c=n("92f0"),f=n("8b1a"),d=n("cc15"),p=n("fcd4"),g=n("e198"),m=n("0ae2"),v=n("4ebc"),y=n("77e9"),b=n("7a41"),w=n("0983"),_=n("6ca1"),x=n("3397"),M=n("10db"),S=n("6f4f"),O=n("1836"),A=n("4d20"),I=n("fed5"),k=n("1a14"),T=n("9876"),C=A.f,E=k.f,D=O.f,L=i.Symbol,R=i.JSON,j=R&&R.stringify,P="prototype",N=d("_hidden"),B=d("toPrimitive"),z={}.propertyIsEnumerable,F=h("symbol-registry"),V=h("symbols"),H=h("op-symbols"),G=Object[P],U="function"==typeof L&&!!I.f,W=i.QObject,q=!W||!W[P]||!W[P].findChild,Z=o&&l((function(){return 7!=S(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a}))?function(t,e,n){var i=C(G,e);i&&delete G[e],E(t,e,n),i&&t!==G&&E(G,e,i)}:E,Y=function(t){var e=V[t]=S(L[P]);return e._k=t,e},X=U&&"symbol"==typeof L.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof L},$=function(t,e,n){return t===G&&$(H,e,n),y(t),e=x(e,!0),y(n),r(V,e)?(n.enumerable?(r(t,N)&&t[N][e]&&(t[N][e]=!1),n=S(n,{enumerable:M(0,!1)})):(r(t,N)||E(t,N,M(1,{})),t[N][e]=!0),Z(t,e,n)):E(t,e,n)},K=function(t,e){y(t);var n,i=m(e=_(e)),r=0,o=i.length;while(o>r)$(t,n=i[r++],e[n]);return t},J=function(t,e){return void 0===e?S(t):K(S(t),e)},Q=function(t){var e=z.call(this,t=x(t,!0));return!(this===G&&r(V,t)&&!r(H,t))&&(!(e||!r(this,t)||!r(V,t)||r(this,N)&&this[N][t])||e)},tt=function(t,e){if(t=_(t),e=x(e,!0),t!==G||!r(V,e)||r(H,e)){var n=C(t,e);return!n||!r(V,e)||r(t,N)&&t[N][e]||(n.enumerable=!0),n}},et=function(t){var e,n=D(_(t)),i=[],o=0;while(n.length>o)r(V,e=n[o++])||e==N||e==u||i.push(e);return i},nt=function(t){var e,n=t===G,i=D(n?H:_(t)),o=[],a=0;while(i.length>a)!r(V,e=i[a++])||n&&!r(G,e)||o.push(V[e]);return o};U||(L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===G&&e.call(H,n),r(this,N)&&r(this[N],t)&&(this[N][t]=!1),Z(this,t,M(1,n))};return o&&q&&Z(G,t,{configurable:!0,set:e}),Y(t)},s(L[P],"toString",(function(){return this._k})),A.f=tt,k.f=$,n("6438").f=O.f=et,n("1917").f=Q,I.f=nt,o&&!n("e444")&&s(G,"propertyIsEnumerable",Q,!0),p.f=function(t){return Y(d(t))}),a(a.G+a.W+a.F*!U,{Symbol:L});for(var it="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;it.length>rt;)d(it[rt++]);for(var ot=T(d.store),at=0;ot.length>at;)g(ot[at++]);a(a.S+a.F*!U,"Symbol",{for:function(t){return r(F,t+="")?F[t]:F[t]=L(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){q=!0},useSimple:function(){q=!1}}),a(a.S+a.F*!U,"Object",{create:J,defineProperty:$,defineProperties:K,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var st=l((function(){I.f(1)}));a(a.S+a.F*st,"Object",{getOwnPropertySymbols:function(t){return I.f(w(t))}}),R&&a(a.S+a.F*(!U||l((function(){var t=L();return"[null]"!=j([t])||"{}"!=j({a:t})||"{}"!=j(Object(t))}))),"JSON",{stringify:function(t){var e,n,i=[t],r=1;while(arguments.length>r)i.push(arguments[r++]);if(n=e=i[1],(b(e)||void 0!==t)&&!X(t))return v(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!X(e))return e}),i[1]=e,j.apply(R,i)}}),L[P][B]||n("051b")(L[P],B,L[P].valueOf),c(L,"Symbol"),c(Math,"Math",!0),c(i.JSON,"JSON",!0)},6964:function(t,e,n){var i=n("cb2d");t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}},"69f2":function(t,e,n){e=t.exports=function(t){t=t.toLowerCase();var n=e[t];if(!n)throw new Error(t+" is not supported (we accept pull requests)");return new n};e.sha=n("087f"),e.sha1=n("7e78"),e.sha224=n("72aa"),e.sha256=n("a255"),e.sha384=n("b837"),e.sha512=n("4fd1")},"69f3":function(t,e,n){var i,r,o,a=n("cdce"),s=n("da84"),u=n("861d"),l=n("9112"),h=n("1a2d"),c=n("c6cd"),f=n("f772"),d=n("d012"),p="Object already initialized",g=s.TypeError,m=s.WeakMap,v=function(t){return o(t)?r(t):i(t,{})},y=function(t){return function(e){var n;if(!u(e)||(n=r(e)).type!==t)throw g("Incompatible receiver, "+t+" required");return n}};if(a||c.state){var b=c.state||(c.state=new m);b.get=b.get,b.has=b.has,b.set=b.set,i=function(t,e){if(b.has(t))throw g(p);return e.facade=t,b.set(t,e),e},r=function(t){return b.get(t)||{}},o=function(t){return b.has(t)}}else{var w=f("state");d[w]=!0,i=function(t,e){if(h(t,w))throw g(p);return e.facade=t,l(t,w,e),e},r=function(t){return h(t,w)?t[w]:{}},o=function(t){return h(t,w)}}t.exports={set:i,get:r,has:o,enforce:v,getterFor:y}},"6aa2":function(t,e,n){"use strict";var i=n("7d92"),r=n("7658"),o=n("da3e");function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=r.toArray(t.entropy,t.entropyEnc||"hex"),n=r.toArray(t.nonce,t.nonceEnc||"hex"),i=r.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,n,i)}t.exports=a,a.prototype._init=function(t,e,n){var i=t.concat(e).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(n||[])),this._reseed=1},a.prototype.generate=function(t,e,n,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!==typeof e&&(i=n,n=e,e=null),n&&(n=r.toArray(n,i||"hex"),this._update(n));var o=[];while(o.length0},t.prototype.connect_=function(){i&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),h?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){i&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e,i=l.some((function(t){return!!~n.indexOf(t)}));i&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),f=function(t,e){for(var n=0,i=Object.keys(e);n0},t}(),k="undefined"!==typeof WeakMap?new WeakMap:new n,T=function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),i=new I(e,n,this);k.set(this,i)}return t}();["observe","unobserve","disconnect"].forEach((function(t){T.prototype[t]=function(){var e;return(e=k.get(this))[t].apply(e,arguments)}}));var C=function(){return"undefined"!==typeof r.ResizeObserver?r.ResizeObserver:T}();e["default"]=C}.call(this,n("24aa"))},"6eed":function(t,e,n){"use strict";var i=n("c3c0"),r=n("edc9"),o=n("aa56"),a=n("da3e"),s=i.sum32,u=i.sum32_4,l=i.sum32_5,h=o.ch32,c=o.maj32,f=o.s0_256,d=o.s1_256,p=o.g0_256,g=o.g1_256,m=r.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}i.inherits(y,m),t.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(t,e){for(var n=this.W,i=0;i<16;i++)n[i]=t[e+i];for(;i";e.style.display="none",n("9141").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+a+"document.F=Object"+r+"/script"+a),t.close(),l=t.F;while(i--)delete l[u][o[i]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[u]=i(t),n=new s,s[u]=null,n[a]=t):n=l(),void 0===e?n:r(n,e)}},"6fe7":function(t,e,n){var i=n("8707").Buffer,r=n("1a2a"),o=n("a958"),a=n("3337").ec,s=n("399f"),u=n("2aee"),l=n("cd91");function h(t,e,n,r,a){var s=u(e);if(s.curve){if("ecdsa"!==r&&"ecdsa/rsa"!==r)throw new Error("wrong private key type");return c(t,s)}if("dsa"===s.type){if("dsa"!==r)throw new Error("wrong private key type");return f(t,s,n)}if("rsa"!==r&&"ecdsa/rsa"!==r)throw new Error("wrong private key type");t=i.concat([a,t]);var l=s.modulus.byteLength(),h=[0,1];while(t.length+h.length+10&&n.ishrn(i),n}function m(t,e){t=g(t,e),t=t.mod(e);var n=i.from(t.toArray());if(n.length=0)l=u*n.length;else for(var f=0;fh||t<0)throw new TypeError("offset must be a uint32");if(t>u||t>e)throw new RangeError("offset out of range")}function f(t,e,n){if("number"!==typeof t||t!==t)throw new TypeError("size must be a number");if(t>h||t<0)throw new TypeError("size must be a uint32");if(t+e>n||t>u)throw new RangeError("buffer too small")}function d(e,n,i,r){if(!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"===typeof n)r=n,n=0,i=e.length;else if("function"===typeof i)r=i,i=e.length-n;else if("function"!==typeof r)throw new TypeError('"cb" argument must be a function');return c(n,e.length),f(i,n,e.length),p(e,n,i,r)}function p(t,e,n,r){if(i.browser){var o=t.buffer,s=new Uint8Array(o,e,n);return l.getRandomValues(s),r?void i.nextTick((function(){r(null,t)})):t}if(!r){var u=a(n);return u.copy(t,e),t}a(n,(function(n,i){if(n)return r(n);i.copy(t,e),r(null,t)}))}function g(e,n,i){if("undefined"===typeof n&&(n=0),!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return c(n,e.length),void 0===i&&(i=e.length-n),f(i,n,e.length),p(e,n,i)}l&&l.getRandomValues||!i.browser?(e.randomFill=d,e.randomFillSync=g):(e.randomFill=r,e.randomFillSync=r)}).call(this,n("24aa"),n("4362"))},7658:function(t,e,n){"use strict";var i=e;function r(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"!==typeof t){for(var i=0;i>8,a=255&r;o?n.push(o,a):n.push(a)}return n}function o(t){return 1===t.length?"0"+t:t}function a(t){for(var e="",n=0;n{a[t]={value:t}}),Object.defineProperties(r,a),Object.defineProperty(o,"isAxiosError",{value:!0}),r.from=(t,e,n,a,s,u)=>{const l=Object.create(o);return i["a"].toFlatObject(t,l,(function(t){return t!==Error.prototype}),t=>"isAxiosError"!==t),r.call(l,t.message,e,n,a,s),l.cause=t,l.name=t.name,u&&Object.assign(l,u),l},e["a"]=r},"7a10":function(t,e,n){var i=n("d0eb"),r=n("fdac");function o(t){this.rand=t||new r.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),n=Math.ceil(e/8);do{var r=new i(this.rand.generate(n))}while(r.cmp(t)>=0);return r},o.prototype._randrange=function(t,e){var n=e.sub(t);return t.add(this._randbelow(n))},o.prototype.test=function(t,e,n){var r=t.bitLength(),o=i.mont(t),a=new i(1).toRed(o);e||(e=Math.max(1,r/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var l=t.shrn(u),h=s.toRed(o),c=!0;e>0;e--){var f=this._randrange(new i(2),s);n&&n(f);var d=f.toRed(o).redPow(l);if(0!==d.cmp(a)&&0!==d.cmp(h)){for(var p=1;p0;e--){var h=this._randrange(new i(2),a),c=t.gcd(h);if(0!==c.cmpn(1))return c;var f=h.toRed(r).redPow(u);if(0!==f.cmp(o)&&0!==f.cmp(l)){for(var d=1;d-1){var n=Object(r["parse"])(t);n&&(t="rgb("+n[0]+","+n[1]+","+n[2]+")",e=n[3])}}else t="none";return{color:t,opacity:null==e?1:e}}var u=1e-4;function l(t){return t-u}function h(t){return a(1e3*t)/1e3}function c(t){return a(1e4*t)/1e4}function f(t){return"matrix("+h(t[0])+","+h(t[1])+","+h(t[2])+","+h(t[3])+","+c(t[4])+","+c(t[5])+")"}var d={left:"start",right:"end",center:"middle",middle:"middle"};function p(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}function g(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}function m(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}function v(t){return t&&!!t.image}function y(t){return t&&!!t.svgElement}function b(t){return v(t)||y(t)}function w(t){return"linear"===t.type}function _(t){return"radial"===t.type}function x(t){return t&&("linear"===t.type||"radial"===t.type)}function M(t){return"url(#"+t+")"}function S(t){var e=t.getGlobalScale(),n=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function O(t){var e=t.x||0,n=t.y||0,r=(t.rotation||0)*i["RADIAN_TO_DEGREE"],o=Object(i["retrieve2"])(t.scaleX,1),s=Object(i["retrieve2"])(t.scaleY,1),u=t.skewX||0,l=t.skewY||0,h=[];return(e||n)&&h.push("translate("+e+"px,"+n+"px)"),r&&h.push("rotate("+r+")"),1===o&&1===s||h.push("scale("+o+","+s+")"),(u||l)&&h.push("skew("+a(u*i["RADIAN_TO_DEGREE"])+"deg, "+a(l*i["RADIAN_TO_DEGREE"])+"deg)"),h.join(" ")}var A=function(){return o["a"].hasGlobalWindow&&Object(i["isFunction"])(window.btoa)?function(t){return window.btoa(unescape(encodeURIComponent(t)))}:"undefined"!==typeof t?function(e){return t.from(e).toString("base64")}:function(t){return null}}()}).call(this,n("1c35").Buffer)},"7a41":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},"7b0b":function(t,e,n){var i=n("1d80"),r=Object;t.exports=function(t){return r(i(t))}},"7b3e":function(t,e,n){"use strict";var i,r=n("a3de"); +/** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ +function o(t,e){if(!r.canUseDOM||e&&!("addEventListener"in document))return!1;var n="on"+t,o=n in document;if(!o){var a=document.createElement("div");a.setAttribute(n,"return;"),o="function"===typeof a[n]}return!o&&i&&"wheel"===t&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),t.exports=o},"7c73":function(t,e,n){var i,r=n("825a"),o=n("37e8"),a=n("7839"),s=n("d012"),u=n("1be4"),l=n("cc12"),h=n("f772"),c=">",f="<",d="prototype",p="script",g=h("IE_PROTO"),m=function(){},v=function(t){return f+p+c+t+f+"/"+p+c},y=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},b=function(){var t,e=l("iframe"),n="java"+p+":";return e.style.display="none",u.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(v("document.F=Object")),t.close(),t.F},w=function(){try{i=new ActiveXObject("htmlfile")}catch(e){}w="undefined"!=typeof document?document.domain&&i?y(i):b():y(i);var t=a.length;while(t--)delete w[d][a[t]];return w()};s[g]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(m[d]=r(t),n=new m,m[d]=null,n[g]=t):n=w(),void 0===e?n:o.f(n,e)}},"7d2a":function(t,e){var n=Math.pow(2,30)-1;t.exports=function(t,e){if("number"!==typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!==typeof e)throw new TypeError("Key length not a number");if(e<0||e>n||e!==e)throw new TypeError("Bad key length")}},"7d72":function(t,e,n){"use strict";var i=n("62c8").Buffer,r=i.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){if(!t)return"utf8";var e;while(1)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function a(t){var e=o(t);if("string"!==typeof e&&(i.isEncoding===r||!r(t)))throw new Error("Unknown encoding: "+t);return e||t}function s(t){var e;switch(this.encoding=a(t),this.encoding){case"utf16le":this.text=p,this.end=g,e=4;break;case"utf8":this.fillLast=c,e=4;break;case"base64":this.text=m,this.end=v,e=3;break;default:return this.write=y,void(this.end=b)}this.lastNeed=0,this.lastTotal=0,this.lastChar=i.allocUnsafe(e)}function u(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function l(t,e,n){var i=e.length-1;if(i=0?(r>0&&(t.lastNeed=r-1),r):--i=0?(r>0&&(t.lastNeed=r-2),r):--i=0?(r>0&&(2===r?r=0:t.lastNeed=r-3),r):0))}function h(t,e,n){if(128!==(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!==(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!==(192&e[2]))return t.lastNeed=2,"�"}}function c(t){var e=this.lastTotal-this.lastNeed,n=h(this,t,e);return void 0!==n?n:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function f(t,e){var n=l(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var i=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function d(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function p(t,e){if((t.length-e)%2===0){var n=t.toString("utf16le",e);if(n){var i=n.charCodeAt(n.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function g(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function m(t,e){var n=(t.length-e)%3;return 0===n?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function v(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function y(t){return t.toString(this.encoding)}function b(t){return t&&t.length?this.write(t):""}e.StringDecoder=s,s.prototype.write=function(t){if(0===t.length)return"";var e,n;if(this.lastNeed){if(e=this.fillLast(t),void 0===e)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n1?arguments[1]:void 0)}}),o(a)},"7e78":function(t,e,n){var i=n("3fb5"),r=n("b672"),o=n("8707").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,r.call(this,64,56)}function l(t){return t<<1|t>>>31}function h(t){return t<<5|t>>>27}function c(t){return t<<30|t>>>2}function f(t,e,n,i){return 0===t?e&n|~e&i:2===t?e&n|e&i|n&i:e^n^i}i(u,r),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._a,i=0|this._b,r=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=l(e[u-3]^e[u-8]^e[u-14]^e[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),g=h(n)+f(p,i,r,o)+s+e[d]+a[p]|0;s=o,o=r,r=c(i),i=n,n=g}this._a=n+this._a|0,this._b=i+this._b|0,this._c=r+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"7ebd":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"7f7a":function(t,e,n){"use strict";const i=e;i.bignum=n("bc12"),i.define=n("ef3a").define,i.base=n("41df"),i.constants=n("0211"),i.decoders=n("20f6"),i.encoders=n("343e")},"80af":function(t,e,n){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!==typeof window&&"undefined"!==typeof window.Buffer?window.Buffer:n(11).Buffer}catch(I){}function s(t,e){var n=t.charCodeAt(e);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},8119:function(t,e,n){n("693d"),n("dfe5"),n("301c"),n("4e71"),t.exports=n("5524").Symbol},8172:function(t,e,n){var i=n("e065"),r=n("57b9");i("toPrimitive"),r()},"825a":function(t,e,n){var i=n("861d"),r=String,o=TypeError;t.exports=function(t){if(i(t))return t;throw o(r(t)+" is not an object")}},"82f0":function(t,e,n){var i=n("39f5"),r=n("8707").Buffer,o=n("6430"),a=n("3fb5"),s=n("3f62"),u=n("8c8a"),l=n("bd9d");function h(t,e){var n=0;t.length!==e.length&&n++;for(var i=Math.min(t.length,e.length),r=0;ru)i.f(t,n=a[u++],e[n]);return t}},"861d":function(t,e,n){var i=n("1626"),r=n("8ea1"),o=r.all;t.exports=r.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:i(t)||t===o}:function(t){return"object"==typeof t?null!==t:i(t)}},8707:function(t,e,n){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var i=n("1c35"),r=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function a(t,e,n){return r(t,e,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=a),a.prototype=Object.create(r.prototype),o(r,a),a.from=function(t,e,n){if("number"===typeof t)throw new TypeError("Argument must not be a number");return r(t,e,n)},a.alloc=function(t,e,n){if("number"!==typeof t)throw new TypeError("Argument must be a number");var i=r(t);return void 0!==e?"string"===typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return r(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},8925:function(t,e,n){var i=n("e330"),r=n("1626"),o=n("c6cd"),a=i(Function.toString);r(o.inspectSource)||(o.inspectSource=function(t){return a(t)}),t.exports=o.inspectSource},8947:function(t,e,n){var i=n("bac2"),r=n("82f0"),o=n("8707").Buffer,a=n("09f5"),s=n("6430"),u=n("39f5"),l=n("ae84"),h=n("3fb5");function c(t,e,n){s.call(this),this._cache=new d,this._cipher=new u.AES(e),this._prev=o.from(n),this._mode=t,this._autopadding=!0}h(c,s),c.prototype._update=function(t){var e,n;this._cache.add(t);var i=[];while(e=this._cache.get())n=this._mode.encrypt(this,e),i.push(n);return o.concat(i)};var f=o.alloc(16,16);function d(){this.cache=o.allocUnsafe(0)}function p(t,e,n){var s=i[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"===typeof e&&(e=o.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);if("string"===typeof n&&(n=o.from(n)),"GCM"!==s.mode&&n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===s.type?new a(s.module,e,n):"auth"===s.type?new r(s.module,e,n):new c(s.module,e,n)}function g(t,e){var n=i[t.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=l(e,!1,n.key,n.iv);return p(t,r.key,r.iv)}c.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(f))throw this._cipher.scrub(),new Error("data not multiple of block length")},c.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},d.prototype.add=function(t){this.cache=o.concat([this.cache,t])},d.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},d.prototype.flush=function(){var t=16-this.cache.length,e=o.allocUnsafe(t),n=-1;while(++n-1}function o(t,e){for(var n in e)t[n]=e[n];return t}var a={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,i=e.children,r=e.parent,a=e.data;a.routerView=!0;var u=r.$createElement,l=n.name,h=r.$route,c=r._routerViewCache||(r._routerViewCache={}),f=0,d=!1;while(r&&r._routerRoot!==r)r.$vnode&&r.$vnode.data.routerView&&f++,r._inactive&&(d=!0),r=r.$parent;if(a.routerViewDepth=f,d)return u(c[l],a,i);var p=h.matched[f];if(!p)return c[l]=null,u();var g=c[l]=p.components[l];a.registerRouteInstance=function(t,e){var n=p.instances[l];(e&&n!==t||!e&&n===t)&&(p.instances[l]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){p.instances[l]=e.componentInstance};var m=a.props=s(h,p.props&&p.props[l]);if(m){m=a.props=o({},m);var v=a.attrs=a.attrs||{};for(var y in m)g.props&&y in g.props||(v[y]=m[y],delete m[y])}return u(g,a,i)}};function s(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}var u=/[!'()*]/g,l=function(t){return"%"+t.charCodeAt(0).toString(16)},h=/%2C/g,c=function(t){return encodeURIComponent(t).replace(u,l).replace(h,",")},f=decodeURIComponent;function d(t,e,n){void 0===e&&(e={});var i,r=n||p;try{i=r(t||"")}catch(a){i={}}for(var o in e)i[o]=e[o];return i}function p(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),i=f(n.shift()),r=n.length>0?f(n.join("=")):null;void 0===e[i]?e[i]=r:Array.isArray(e[i])?e[i].push(r):e[i]=[e[i],r]})),e):e}function g(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return c(e);if(Array.isArray(n)){var i=[];return n.forEach((function(t){void 0!==t&&(null===t?i.push(c(e)):i.push(c(e)+"="+c(t)))})),i.join("&")}return c(e)+"="+c(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var m=/\/?$/;function v(t,e,n,i){var r=i&&i.options.stringifyQuery,o=e.query||{};try{o=y(o)}catch(s){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:_(e,r),matched:t?w(t):[]};return n&&(a.redirectedFrom=_(n,r)),Object.freeze(a)}function y(t){if(Array.isArray(t))return t.map(y);if(t&&"object"===typeof t){var e={};for(var n in t)e[n]=y(t[n]);return e}return t}var b=v(null,{path:"/"});function w(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}function _(t,e){var n=t.path,i=t.query;void 0===i&&(i={});var r=t.hash;void 0===r&&(r="");var o=e||g;return(n||"/")+o(i)+r}function x(t,e){return e===b?t===e:!!e&&(t.path&&e.path?t.path.replace(m,"")===e.path.replace(m,"")&&t.hash===e.hash&&M(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&M(t.query,e.query)&&M(t.params,e.params)))}function M(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),i=Object.keys(e);return n.length===i.length&&n.every((function(n){var i=t[n],r=e[n];return"object"===typeof i&&"object"===typeof r?M(i,r):String(i)===String(r)}))}function S(t,e){return 0===t.path.replace(m,"/").indexOf(e.path.replace(m,"/"))&&(!e.hash||t.hash===e.hash)&&O(t.query,e.query)}function O(t,e){for(var n in e)if(!(n in t))return!1;return!0}var A,I=[String,Object],k=[String,Array],T={name:"RouterLink",props:{to:{type:I,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:k,default:"click"}},render:function(t){var e=this,n=this.$router,i=this.$route,r=n.resolve(this.to,i,this.append),a=r.location,s=r.route,u=r.href,l={},h=n.options.linkActiveClass,c=n.options.linkExactActiveClass,f=null==h?"router-link-active":h,d=null==c?"router-link-exact-active":c,p=null==this.activeClass?f:this.activeClass,g=null==this.exactActiveClass?d:this.exactActiveClass,m=a.path?v(null,a,null,n):s;l[g]=x(i,m),l[p]=this.exact?l[g]:S(i,m);var y=function(t){C(t)&&(e.replace?n.replace(a):n.push(a))},b={click:C};Array.isArray(this.event)?this.event.forEach((function(t){b[t]=y})):b[this.event]=y;var w={class:l};if("a"===this.tag)w.on=b,w.attrs={href:u};else{var _=E(this.$slots.default);if(_){_.isStatic=!1;var M=_.data=o({},_.data);M.on=b;var O=_.data.attrs=o({},_.data.attrs);O.href=u}else w.on=b}return t(this.tag,w,this.$slots.default)}};function C(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function E(t){if(t)for(var e,n=0;n=0&&(e=t.slice(i),t=t.slice(0,i));var r=t.indexOf("?");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{path:t,query:n,hash:e}}function P(t){return t.replace(/\/\//g,"/")}var N=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},B=it,z=U,F=W,V=Y,H=nt,G=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function U(t,e){var n,i=[],r=0,o=0,a="",s=e&&e.delimiter||"/";while(null!=(n=G.exec(t))){var u=n[0],l=n[1],h=n.index;if(a+=t.slice(o,h),o=h+u.length,l)a+=l[1];else{var c=t[o],f=n[2],d=n[3],p=n[4],g=n[5],m=n[6],v=n[7];a&&(i.push(a),a="");var y=null!=f&&null!=c&&c!==f,b="+"===m||"*"===m,w="?"===m||"*"===m,_=n[2]||s,x=p||g;i.push({name:d||r++,prefix:f||"",delimiter:_,optional:w,repeat:b,partial:y,asterisk:!!v,pattern:x?$(x):v?".*":"[^"+X(_)+"]+?"})}}return o-1&&(s.params[f]=n.params[f]);if(l)return s.path=ot(l.path,s.params,'named route "'+u+'"'),h(l,s,a)}else if(s.path){s.params={};for(var d=0;d=t.length?n():t[r]?e(t[r],(function(){i(r+1)})):i(r+1)};i(0)}function Rt(t){return function(e,n,i){var o=!1,a=0,s=null;jt(t,(function(t,e,n,u){if("function"===typeof t&&void 0===t.cid){o=!0,a++;var l,h=zt((function(e){Bt(e)&&(e=e.default),t.resolved="function"===typeof e?e:A.extend(e),n.components[u]=e,a--,a<=0&&i()})),c=zt((function(t){var e="Failed to resolve async component "+u+": "+t;s||(s=r(t)?t:new Error(e),i(s))}));try{l=t(h,c)}catch(d){c(d)}if(l)if("function"===typeof l.then)l.then(h,c);else{var f=l.component;f&&"function"===typeof f.then&&f.then(h,c)}}})),o||i()}}function jt(t,e){return Pt(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Pt(t){return Array.prototype.concat.apply([],t)}var Nt="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Bt(t){return t.__esModule||Nt&&"Module"===t[Symbol.toStringTag]}function zt(t){var e=!1;return function(){var n=[],i=arguments.length;while(i--)n[i]=arguments[i];if(!e)return e=!0,t.apply(this,n)}}var Ft=function(t,e){this.router=t,this.base=Vt(e),this.current=b,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function Vt(t){if(!t)if(L){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function Ht(t,e){var n,i=Math.max(t.length,e.length);for(n=0;n=0?e.slice(0,n):e;return i+"#"+t}function re(t){Ot?Et(ie(t)):window.location.hash=t}function oe(t){Ot?Dt(ie(t)):window.location.replace(ie(t))}var ae=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var i=this;this.transitionTo(t,(function(t){i.stack=i.stack.slice(0,i.index+1).concat(t),i.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var i=this;this.transitionTo(t,(function(t){i.stack=i.stack.slice(0,i.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,(function(){e.index=n,e.updateRoute(i)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Ft),se=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ct(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Ot&&!1!==t.fallback,this.fallback&&(e="hash"),L||(e="abstract"),this.mode=e,e){case"history":this.history=new Kt(this,t.base);break;case"hash":this.history=new Qt(this,t.base,this.fallback);break;case"abstract":this.history=new ae(this,t.base);break;default:0}},ue={currentRoute:{configurable:!0}};function le(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function he(t,e,n){var i="hash"===n?"#"+e:e;return t?P(t+"/"+i):i}se.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},ue.currentRoute.get=function(){return this.history&&this.history.current},se.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof Kt)n.transitionTo(n.getCurrentLocation());else if(n instanceof Qt){var i=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},se.prototype.beforeEach=function(t){return le(this.beforeHooks,t)},se.prototype.beforeResolve=function(t){return le(this.resolveHooks,t)},se.prototype.afterEach=function(t){return le(this.afterHooks,t)},se.prototype.onReady=function(t,e){this.history.onReady(t,e)},se.prototype.onError=function(t){this.history.onError(t)},se.prototype.push=function(t,e,n){this.history.push(t,e,n)},se.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},se.prototype.go=function(t){this.history.go(t)},se.prototype.back=function(){this.go(-1)},se.prototype.forward=function(){this.go(1)},se.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},se.prototype.resolve=function(t,e,n){var i=ht(t,e||this.history.current,n,this),r=this.match(i,e),o=r.redirectedFrom||r.fullPath,a=this.history.base,s=he(a,o,this.mode);return{location:i,route:r,href:s,normalizedTo:i,resolved:r}},se.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==b&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(se.prototype,ue),se.install=D,se.version="3.0.2",L&&window.Vue&&window.Vue.use(se),e["a"]=se},"8c8a":function(t,e,n){(function(e){t.exports=function(t,n){for(var i=Math.min(t.length,n.length),r=new e(i),o=0;on},ie64:function(){return b.ie()&&f},firefox:function(){return y()||i},opera:function(){return y()||r},webkit:function(){return y()||o},safari:function(){return b.webkit()},chrome:function(){return y()||a},windows:function(){return y()||l},osx:function(){return y()||u},linux:function(){return y()||h},iphone:function(){return y()||d},mobile:function(){return y()||d||p||c||m},nativeApp:function(){return y()||g},android:function(){return y()||c},ipad:function(){return y()||p}};t.exports=b},9019:function(t,e,n){"use strict";(function(e){function n(t,n){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(n?n(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!n&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(r,o):(o._writableState.errorEmitted=!0,e.nextTick(i,o,t)):e.nextTick(i,o,t):n?(e.nextTick(r,o),n(t)):e.nextTick(r,o)})),this)}function i(t,e){a(t,e),r(t)}function r(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var n=t._readableState,i=t._writableState;n&&n.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:n,undestroy:o,errorOrDestroy:s}}).call(this,n("4362"))},"90d8":function(t,e,n){var i=n("c65b"),r=n("1a2d"),o=n("3a9b"),a=n("ad6d"),s=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in s||r(t,"flags")||!o(s,t)?e:i(a,t)}},"90e3":function(t,e,n){var i=n("e330"),r=0,o=Math.random(),a=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++r+o,36)}},9112:function(t,e,n){var i=n("83ab"),r=n("9bf2"),o=n("5c6c");t.exports=i?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"913b":function(t,e){(function(e){t.exports=e}).call(this,{})},9141:function(t,e,n){var i=n("ef08").document;t.exports=i&&i.documentElement},9152:function(t,e){ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +e.read=function(t,e,n,i,r){var o,a,s=8*r-i-1,u=(1<>1,h=-7,c=n?r-1:0,f=n?-1:1,d=t[e+c];for(c+=f,o=d&(1<<-h)-1,d>>=-h,h+=s;h>0;o=256*o+t[e+c],c+=f,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=i;h>0;a=256*a+t[e+c],c+=f,h-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,i),o-=l}return(d?-1:1)*a*Math.pow(2,o-i)},e.write=function(t,e,n,i,r,o){var a,s,u,l=8*o-r-1,h=(1<>1,f=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:o-1,p=i?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+c>=1?f/u:f*Math.pow(2,1-c),e*u>=2&&(a++,u/=2),a+c>=h?(s=0,a=h):a+c>=1?(s=(e*u-1)*Math.pow(2,r),a+=c):(s=e*Math.pow(2,c-1)*Math.pow(2,r),a=0));r>=8;t[n+d]=255&s,d+=p,s/=256,r-=8);for(a=a<0;t[n+d]=255&a,d+=p,a/=256,l-=8);t[n+d-p]|=128*g}},"919c":function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},9263:function(t,e,n){"use strict";var i=n("c65b"),r=n("e330"),o=n("577e"),a=n("ad6d"),s=n("9f7f"),u=n("5692"),l=n("7c73"),h=n("69f3").get,c=n("fce3"),f=n("107c"),d=u("native-string-replace",String.prototype.replace),p=RegExp.prototype.exec,g=p,m=r("".charAt),v=r("".indexOf),y=r("".replace),b=r("".slice),w=function(){var t=/a/,e=/b*/g;return i(p,t,"a"),i(p,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),_=s.BROKEN_CARET,x=void 0!==/()??/.exec("")[1],M=w||x||_||c||f;M&&(g=function(t){var e,n,r,s,u,c,f,M=this,S=h(M),O=o(t),A=S.raw;if(A)return A.lastIndex=M.lastIndex,e=i(g,A,O),M.lastIndex=A.lastIndex,e;var I=S.groups,k=_&&M.sticky,T=i(a,M),C=M.source,E=0,D=O;if(k&&(T=y(T,"y",""),-1===v(T,"g")&&(T+="g"),D=b(O,M.lastIndex),M.lastIndex>0&&(!M.multiline||M.multiline&&"\n"!==m(O,M.lastIndex-1))&&(C="(?: "+C+")",D=" "+D,E++),n=new RegExp("^(?:"+C+")",T)),x&&(n=new RegExp("^"+C+"$(?!\\s)",T)),w&&(r=M.lastIndex),s=i(p,k?n:M,D),k?s?(s.input=b(s.input,E),s[0]=b(s[0],E),s.index=M.lastIndex,M.lastIndex+=s[0].length):M.lastIndex=0:w&&s&&(M.lastIndex=M.global?s.index+s[0].length:r),x&&s&&s.length>1&&i(d,s[0],n,(function(){for(u=1;u=this._blockSize){for(var o=this._blockOffset;o0;++s)this._length[s]+=u,u=this._length[s]/4294967296|0,u>0&&(this._length[s]-=4294967296*u);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return e},s.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=s},"944a":function(t,e,n){var i=n("d066"),r=n("e065"),o=n("d44e");r("toStringTag"),o(i("Symbol"),"Symbol")},"945d":function(t,e,n){"use strict";var i=n("7d92"),r=n("0cbb"),o=n("f3a3"),a=o.assert,s=o.parseBytes,u=n("380f"),l=n("44a3");function h(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof h))return new h(t);t=r[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=i.sha512}t.exports=h,h.prototype.sign=function(t,e){t=s(t);var n=this.keyFromSecret(e),i=this.hashInt(n.messagePrefix(),t),r=this.g.mul(i),o=this.encodePoint(r),a=this.hashInt(o,n.pubBytes(),t).mul(n.priv()),u=i.add(a).umod(this.curve.n);return this.makeSignature({R:r,S:u,Rencoded:o})},h.prototype.verify=function(t,e,n){t=s(t),e=this.makeSignature(e);var i=this.keyFromPublic(n),r=this.hashInt(e.Rencoded(),i.pubBytes(),t),o=this.g.mul(e.S()),a=e.R().add(i.pub().mul(r));return a.eq(o)},h.prototype.hashInt=function(){for(var t=this.hash(),e=0;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,n=""+e.data;while(e=e.next)n+=t+e.data;return n}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),n=this.head,i=0;while(n)m(n.data,e,i),i+=n.data.length,n=n.next;return e}},{key:"consume",value:function(t,e){var n;return tr.length?r.length:t;if(o===r.length?i+=r:i+=r.slice(0,t),t-=o,0===t){o===r.length?(++n,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=r.slice(o));break}++n}return this.length-=n,i}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),n=this.head,i=1;n.data.copy(e),t-=n.data.length;while(n=n.next){var r=n.data,o=t>r.length?r.length:t;if(r.copy(e,e.length-t,0,o),t-=o,0===t){o===r.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=r.slice(o));break}++i}return this.length-=i,e}},{key:g,value:function(t,e){return p(this,r(r({},e),{},{depth:0,customInspect:!1}))}}]),t}()},9742:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"980c":function(t,e,n){var i=n("8707").Buffer,r=n("399f"),o=n("3337").ec,a=n("2aee"),s=n("cd91");function u(t,e,n,o,s){var u=a(n);if("ec"===u.type){if("ecdsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");return l(t,e,u)}if("dsa"===u.type){if("dsa"!==o)throw new Error("wrong public key type");return h(t,e,u)}if("rsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");e=i.concat([s,e]);var c=u.modulus.byteLength(),f=[1],d=0;while(e.length+f.length+2=e)throw new Error("invalid sig")}t.exports=u},9876:function(t,e,n){var i=n("03d6"),r=n("9742");t.exports=Object.keys||function(t){return i(t,r)}},"98e6":function(t,e,n){"use strict";var i=n("3fb5"),r=n("f576"),o=n("b5ca"),a=n("69f2"),s=n("6430");function u(t){s.call(this,"digest"),this._hash=t}i(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return t=t.toLowerCase(),"md5"===t?new r:"rmd160"===t||"ripemd160"===t?new o:new u(a(t))}},"99af":function(t,e,n){"use strict";var i=n("23e7"),r=n("d039"),o=n("e8b5"),a=n("861d"),s=n("7b0b"),u=n("07fa"),l=n("3511"),h=n("8418"),c=n("65f0"),f=n("1dde"),d=n("b622"),p=n("2d00"),g=d("isConcatSpreadable"),m=p>=51||!r((function(){var t=[];return t[g]=!1,t.concat()[0]!==t})),v=function(t){if(!a(t))return!1;var e=t[g];return void 0!==e?!!e:o(t)},y=!m||!f("concat");i({target:"Array",proto:!0,arity:1,forced:y},{concat:function(t){var e,n,i,r,o,a=s(this),f=c(a,0),d=0;for(e=-1,i=arguments.length;e2?"one of ".concat(e," ").concat(t.slice(0,n-1).join(", "),", or ")+t[n-1]:2===n?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,n){return t.substr(!n||n<0?0:+n,e.length)===e}function u(t,e,n){return(void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}function l(t,e,n){return"number"!==typeof n&&(n=0),!(n+e.length>t.length)&&-1!==t.indexOf(e,n)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,n){var i,r;if("string"===typeof e&&s(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be",u(t," argument"))r="The ".concat(t," ").concat(i," ").concat(a(e,"type"));else{var o=l(t,".")?"property":"argument";r='The "'.concat(t,'" ').concat(o," ").concat(i," ").concat(a(e,"type"))}return r+=". Received type ".concat(typeof n),r}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=r},"9f7f":function(t,e,n){var i=n("d039"),r=n("da84"),o=r.RegExp,a=i((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),s=a||i((function(){return!o("a","y").sticky})),u=a||i((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}));t.exports={BROKEN_CARET:u,MISSED_STICKY:s,UNSUPPORTED_Y:a}},"9f9d":function(t,e,n){(function(e,n){var i;if(e.process&&e.process.browser)i="utf-8";else if(e.process&&e.process.version){var r=parseInt(n.version.split(".")[0].slice(1),10);i=r>=6?"utf-8":"binary"}else i="utf-8";t.exports=i}).call(this,n("24aa"),n("4362"))},"9fbb":function(t,e,n){var i=n("4d88");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},a04b:function(t,e,n){var i=n("c04e"),r=n("d9b5");t.exports=function(t){var e=i(t,"string");return r(e)?e:e+""}},a099:function(t,e,n){e.pbkdf2=n("206d"),e.pbkdf2Sync=n("e07b")},a15b:function(t,e,n){"use strict";var i=n("23e7"),r=n("e330"),o=n("44ad"),a=n("fc6a"),s=n("a640"),u=r([].join),l=o!=Object,h=l||!s("join",",");i({target:"Array",proto:!0,forced:h},{join:function(t){return u(a(this),void 0===t?",":t)}})},a15e:function(t,e,n){"use strict";n.r(e);var i=n("41b2"),r=n.n(i),o=n("1098"),a=n.n(o),s=/%[sdj%]/g,u=function(){};function l(){for(var t=arguments.length,e=Array(t),n=0;n=o)return t;switch(t){case"%s":return String(e[i++]);case"%d":return Number(e[i++]);case"%j":try{return JSON.stringify(e[i++])}catch(n){return"[Circular]"}break;default:return t}})),u=e[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},M={integer:function(t){return M.number(t)&&parseInt(t,10)===t},float:function(t){return M.number(t)&&!M.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch(e){return!1}},date:function(t){return"function"===typeof t.getTime&&"function"===typeof t.getMonth&&"function"===typeof t.getYear},number:function(t){return!isNaN(t)&&"number"===typeof t},object:function(t){return"object"===("undefined"===typeof t?"undefined":a()(t))&&!M.array(t)},method:function(t){return"function"===typeof t},email:function(t){return"string"===typeof t&&!!t.match(x.email)&&t.length<255},url:function(t){return"string"===typeof t&&!!t.match(x.url)},hex:function(t){return"string"===typeof t&&!!t.match(x.hex)}};function S(t,e,n,i,r){if(t.required&&void 0===e)b(t,e,n,i,r);else{var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],s=t.type;o.indexOf(s)>-1?M[s](e)||i.push(l(r.messages.types[s],t.fullField,t.type)):s&&("undefined"===typeof e?"undefined":a()(e))!==t.type&&i.push(l(r.messages.types[s],t.fullField,t.type))}}var O=S;function A(t,e,n,i,r){var o="number"===typeof t.len,a="number"===typeof t.min,s="number"===typeof t.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,h=e,c=null,f="number"===typeof e,d="string"===typeof e,p=Array.isArray(e);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(h=e.length),d&&(h=e.replace(u,"_").length),o?h!==t.len&&i.push(l(r.messages[c].len,t.fullField,t.len)):a&&!s&&ht.max?i.push(l(r.messages[c].max,t.fullField,t.max)):a&&s&&(ht.max)&&i.push(l(r.messages[c].range,t.fullField,t.min,t.max))}var I=A,k="enum";function T(t,e,n,i,r){t[k]=Array.isArray(t[k])?t[k]:[],-1===t[k].indexOf(e)&&i.push(l(r.messages[k],t.fullField,t[k].join(", ")))}var C=T;function E(t,e,n,i,r){if(t.pattern)if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(e)||i.push(l(r.messages.pattern.mismatch,t.fullField,e,t.pattern));else if("string"===typeof t.pattern){var o=new RegExp(t.pattern);o.test(e)||i.push(l(r.messages.pattern.mismatch,t.fullField,e,t.pattern))}}var D=E,L={required:b,whitespace:_,type:O,range:I,enum:C,pattern:D};function R(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e,"string")&&!t.required)return n();L.required(t,e,i,o,r,"string"),c(e,"string")||(L.type(t,e,i,o,r),L.range(t,e,i,o,r),L.pattern(t,e,i,o,r),!0===t.whitespace&&L.whitespace(t,e,i,o,r))}n(o)}var j=R;function P(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&L.type(t,e,i,o,r)}n(o)}var N=P;function B(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&(L.type(t,e,i,o,r),L.range(t,e,i,o,r))}n(o)}var z=B;function F(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&L.type(t,e,i,o,r)}n(o)}var V=F;function H(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),c(e)||L.type(t,e,i,o,r)}n(o)}var G=H;function U(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&(L.type(t,e,i,o,r),L.range(t,e,i,o,r))}n(o)}var W=U;function q(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&(L.type(t,e,i,o,r),L.range(t,e,i,o,r))}n(o)}var Z=q;function Y(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e,"array")&&!t.required)return n();L.required(t,e,i,o,r,"array"),c(e,"array")||(L.type(t,e,i,o,r),L.range(t,e,i,o,r))}n(o)}var X=Y;function $(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),void 0!==e&&L.type(t,e,i,o,r)}n(o)}var K=$,J="enum";function Q(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();L.required(t,e,i,o,r),e&&L[J](t,e,i,o,r)}n(o)}var tt=Q;function et(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e,"string")&&!t.required)return n();L.required(t,e,i,o,r),c(e,"string")||L.pattern(t,e,i,o,r)}n(o)}var nt=et;function it(t,e,n,i,r){var o=[],a=t.required||!t.required&&i.hasOwnProperty(t.field);if(a){if(c(e)&&!t.required)return n();if(L.required(t,e,i,o,r),!c(e)){var s=void 0;s="number"===typeof e?new Date(e):e,L.type(t,s,i,o,r),s&&L.range(t,s.getTime(),i,o,r)}}n(o)}var rt=it;function ot(t,e,n,i,r){var o=[],s=Array.isArray(e)?"array":"undefined"===typeof e?"undefined":a()(e);L.required(t,e,i,o,r,s),n(o)}var at=ot;function st(t,e,n,i,r){var o=t.type,a=[],s=t.required||!t.required&&i.hasOwnProperty(t.field);if(s){if(c(e,o)&&!t.required)return n();L.required(t,e,i,a,r,o),c(e,o)||L.type(t,e,i,a,r)}n(a)}var ut=st,lt={string:j,method:N,number:z,boolean:V,regexp:G,integer:W,float:Z,array:X,object:K,enum:tt,pattern:nt,date:rt,url:ut,hex:ut,email:ut,required:at};function ht(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var ct=ht();function ft(t){this.rules=null,this._messages=ct,this.define(t)}ft.prototype={messages:function(t){return t&&(this._messages=v(ht(),t)),this._messages},define:function(t){if(!t)throw new Error("Cannot configure a schema with no rules");if("object"!==("undefined"===typeof t?"undefined":a()(t))||Array.isArray(t))throw new Error("Rules must be an object");this.rules={};var e=void 0,n=void 0;for(e in t)t.hasOwnProperty(e)&&(n=t[e],this.rules[e]=Array.isArray(n)?n:[n])},validate:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments[2],o=t,s=n,h=i;if("function"===typeof s&&(h=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var c=this.messages();c===ct&&(c=ht()),v(c,s.messages),s.messages=c}else s.messages=this.messages();var f=void 0,d=void 0,p={},y=s.keys||Object.keys(this.rules);y.forEach((function(n){f=e.rules[n],d=o[n],f.forEach((function(i){var a=i;"function"===typeof a.transform&&(o===t&&(o=r()({},o)),d=o[n]=a.transform(d)),a="function"===typeof a?{validator:a}:r()({},a),a.validator=e.getValidationMethod(a),a.field=n,a.fullField=a.fullField||n,a.type=e.getType(a),a.validator&&(p[n]=p[n]||[],p[n].push({rule:a,value:d,source:o,field:n}))}))}));var b={};g(p,s,(function(t,e){var n=t.rule,i=("object"===n.type||"array"===n.type)&&("object"===a()(n.fields)||"object"===a()(n.defaultField));function o(t,e){return r()({},e,{fullField:n.fullField+"."+t})}function h(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],h=a;if(Array.isArray(h)||(h=[h]),h.length&&u("async-validator:",h),h.length&&n.message&&(h=[].concat(n.message)),h=h.map(m(n)),s.first&&h.length)return b[n.field]=1,e(h);if(i){if(n.required&&!t.value)return h=n.message?[].concat(n.message).map(m(n)):s.error?[s.error(n,l(s.messages.required,n.field))]:[],e(h);var c={};if(n.defaultField)for(var f in t.value)t.value.hasOwnProperty(f)&&(c[f]=n.defaultField);for(var d in c=r()({},c,t.rule.fields),c)if(c.hasOwnProperty(d)){var p=Array.isArray(c[d])?c[d]:[c[d]];c[d]=p.map(o.bind(null,d))}var g=new ft(c);g.messages(s.messages),t.rule.options&&(t.rule.options.messages=s.messages,t.rule.options.error=s.error),g.validate(t.value,t.rule.options||s,(function(t){e(t&&t.length?h.concat(t):t)}))}else e(h)}i=i&&(n.required||!n.required&&t.value),n.field=t.field;var c=n.validator(n,t.value,h,t.source,s);c&&c.then&&c.then((function(){return h()}),(function(t){return h(t)}))}),(function(t){w(t)}))}else h&&h();function w(t){var e=void 0,n=void 0,i=[],r={};function o(t){Array.isArray(t)?i=i.concat.apply(i,t):i.push(t)}for(e=0;e>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function f(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function p(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}i(u,r),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._a,i=0|this._b,r=0|this._c,o=0|this._d,s=0|this._e,u=0|this._f,g=0|this._g,m=0|this._h,v=0;v<16;++v)e[v]=t.readInt32BE(4*v);for(;v<64;++v)e[v]=p(e[v-2])+e[v-7]+d(e[v-15])+e[v-16]|0;for(var y=0;y<64;++y){var b=m+f(s)+l(s,u,g)+a[y]+e[y]|0,w=c(n)+h(n,i,r)|0;m=g,g=u,u=s,s=o+b|0,o=r,r=i,i=n,n=b+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=r+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0,this._f=u+this._f|0,this._g=g+this._g|0,this._h=m+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},a3de:function(t,e,n){"use strict";var i=!("undefined"===typeof window||!window.document||!window.document.createElement),r={canUseDOM:i,canUseWorkers:"undefined"!==typeof Worker,canUseEventListeners:i&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:i&&!!window.screen,isInWorker:!i};t.exports=r},a434:function(t,e,n){"use strict";var i=n("23e7"),r=n("7b0b"),o=n("23cb"),a=n("5926"),s=n("07fa"),u=n("3a34"),l=n("3511"),h=n("65f0"),c=n("8418"),f=n("083a"),d=n("1dde"),p=d("splice"),g=Math.max,m=Math.min;i({target:"Array",proto:!0,forced:!p},{splice:function(t,e){var n,i,d,p,v,y,b=r(this),w=s(b),_=o(t,w),x=arguments.length;for(0===x?n=i=0:1===x?(n=0,i=w-_):(n=x-2,i=m(g(a(e),0),w-_)),l(w+n-i),d=h(b,i),p=0;pw-i+n;p--)f(b,p-1)}else if(n>i)for(p=w-i;p>_;p--)v=p+i-1,y=p+n-1,v in b?b[y]=b[v]:f(b,y);for(p=0;p1){if(o=t({path:"/"},i.defaults,o),"number"===typeof o.expires){var s=new Date;s.setMilliseconds(s.getMilliseconds()+864e5*o.expires),o.expires=s}o.expires=o.expires?o.expires.toUTCString():"";try{a=JSON.stringify(r),/^[\{\[]/.test(a)&&(r=a)}catch(m){}r=n.write?n.write(r,e):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)),e=e.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),e=e.replace(/[\(\)]/g,escape);var u="";for(var l in o)o[l]&&(u+="; "+l,!0!==o[l]&&(u+="="+o[l]));return document.cookie=e+"="+r+u}e||(a={});for(var h=document.cookie?document.cookie.split("; "):[],c=/(%[0-9A-Z]{2})+/g,f=0;f1?1:0:1}function f(t,e){return t=Math.abs(t),2===e?c(t):t?Math.min(t,2):0}function d(t,e){if(!t&&"string"!==typeof t)return null;var n=t.split("|");return e=f(e,n.length),n[e]?n[e].trim():t}function p(t){return JSON.parse(JSON.stringify(t))}function g(t){t.prototype.$t=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];var i=this.$i18n;return i._t.apply(i,[t,i.locale,i.messages,this].concat(e))},t.prototype.$tc=function(t,e){var n=[],i=arguments.length-2;while(i-- >0)n[i]=arguments[i+2];var r=this.$i18n;return r._tc.apply(r,[t,r.locale,r.messages,this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n.messages,e)}}var m,v={beforeCreate:function(){var t=this,e=this.$options;if(e.i18n=e.i18n||(e.__i18n?{}:null),e.i18n)if(e.i18n instanceof Z)this._i18n=e.i18n,this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()}));else if(u(e.i18n)){if(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Z&&(e.i18n.root=this.$root.$i18n,e.i18n.silentTranslationWarn=this.$root.$i18n.silentTranslationWarn),e.__i18n)try{e.i18n.messages=JSON.parse(e.__i18n)}catch(n){0}this._i18n=new Z(e.i18n),this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()})),(void 0===e.i18n.sync||e.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale((function(){return t.$forceUpdate()})))}else 0;else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Z&&(this._i18n=this.$root.$i18n,this._i18nWatcher=this._i18n.watchI18nData((function(){return t.$forceUpdate()})))},beforeDestroy:function(){this._i18n&&(this._i18nWatcher&&(this._i18nWatcher(),delete this._i18nWatcher),this._localeWatcher&&(this._localeWatcher(),delete this._localeWatcher),this._i18n=null)}};function y(t){m=t;m.version&&Number(m.version.split(".")[0]);y.installed=!0,Object.defineProperty(m.prototype,"$i18n",{get:function(){return this._i18n}}),g(m),m.mixin(v);var e=m.config.optionMergeStrategies;e.i18n=e.methods}var b=function(t){void 0===t&&(t={}),this._options=t},w={options:{}};w.options.get=function(){return this._options},b.prototype.format=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];return x.apply(void 0,[t].concat(e))},Object.defineProperties(b.prototype,w);var _=/(%|)\{([0-9a-zA-Z_]+)\}/g;function x(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];return e=1===e.length&&"object"===typeof e[0]?e[0]:{},e&&e.hasOwnProperty||(e={}),t.replace(_,(function(n,i,o,a){var s;return"{"===t[a-1]&&"}"===t[a+n.length]?o:(s=r(e,o)?e[o]:n,l(s)?"":s)}))}var M=Object.create(null),S=0,O=1,A=2,I=3,k=0,T=1,C=2,E=3,D=4,L=5,R=6,j=7,P=8,N=[];N[k]={ws:[k],ident:[E,S],"[":[D],eof:[j]},N[T]={ws:[T],".":[C],"[":[D],eof:[j]},N[C]={ws:[C],ident:[E,S],0:[E,S],number:[E,S]},N[E]={ident:[E,S],0:[E,S],number:[E,S],ws:[T,O],".":[C,O],"[":[D,O],eof:[j,O]},N[D]={"'":[L,S],'"':[R,S],"[":[D,A],"]":[T,I],eof:P,else:[D,S]},N[L]={"'":[D,S],eof:P,else:[L,S]},N[R]={'"':[D,S],eof:P,else:[R,S]};var B=/^\s?(true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function z(t){return B.test(t)}function F(t){var e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e!==n||34!==e&&39!==e?t:t.slice(1,-1)}function V(t){if(void 0===t||null===t)return"eof";var e=t.charCodeAt(0);switch(e){case 91:case 93:case 46:case 34:case 39:case 48:return t;case 95:case 36:case 45:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return e>=97&&e<=122||e>=65&&e<=90?"ident":e>=49&&e<=57?"number":"else"}function H(t){var e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(z(e)?F(e):"*"+e)}function G(t){var e,n,i,r,o,a,s,u=[],l=-1,h=k,c=0,f=[];function d(){var e=t[l+1];if(h===L&&"'"===e||h===R&&'"'===e)return l++,i="\\"+e,f[S](),!0}f[O]=function(){void 0!==n&&(u.push(n),n=void 0)},f[S]=function(){void 0===n?n=i:n+=i},f[A]=function(){f[S](),c++},f[I]=function(){if(c>0)c--,h=D,f[S]();else{if(c=0,n=H(n),!1===n)return!1;f[O]()}};while(null!==h)if(l++,e=t[l],"\\"!==e||!d()){if(r=V(e),s=N[h],o=s[r]||s["else"]||P,o===P)return;if(h=o[0],a=f[o[1]],a&&(i=o[2],i=void 0===i?e:i,!1===a()))return;if(h===j)return u}}function U(t){var e=M[t];return e||(e=G(t),e&&(M[t]=e)),e||[]}function W(t){if(null===t||void 0===t)return!0;if(Array.isArray(t)){if(t.length>0)return!1;if(0===t.length)return!0}else if(u(t))for(var e in t)if(r(t,e))return!1;return!0}function q(t,e){if(!o(t))return null;var n=U(e);if(W(n))return null;var i=n.length,r=null,a=t,s=0;while(s=0){var a=r.match(/(@:[\w|.]+)/g);for(var s in a){var h=a[s],c=h.substr(2),f=i._interpolate(t,c,n);r=r.replace(h,f)}}return n?this._format(r,n):r},Z.prototype._format=function(t){var e,n=[],i=arguments.length-1;while(i-- >0)n[i]=arguments[i+1];return(e=this._formatter).format.apply(e,[t].concat(n))},Z.prototype._translate=function(t,e,n,i,r){var o=null;return o=this._interpolate(t[e],i,r),l(o)?(o=this._interpolate(t[n],i,r),l(o)?null:o):o},Z.prototype._t=function(t,e,n,i){var r=[],o=arguments.length-4;while(o-- >0)r[o]=arguments[o+4];if(!t)return"";var a,s=h.apply(void 0,r),u=s.locale||e,l=this._translate(n,u,this.fallbackLocale,t,s.params);if(this._isFallbackRoot(l)){if(!this._root)throw Error("unexpected error");return(a=this._root).t.apply(a,[t].concat(r))}return this._warnDefault(u,t,l,i)},Z.prototype.t=function(t){var e,n=[],i=arguments.length-1;while(i-- >0)n[i]=arguments[i+1];return(e=this)._t.apply(e,[t,this.locale,this.messages,null].concat(n))},Z.prototype._tc=function(t,e,n,i,r){var o,a,s=[],u=arguments.length-5;while(u-- >0)s[u]=arguments[u+5];return t?void 0!==r?d((o=this)._t.apply(o,[t,e,n,i].concat(s)),r):(a=this)._t.apply(a,[t,e,n,i].concat(s)):""},Z.prototype.tc=function(t,e){var n,i=[],r=arguments.length-2;while(r-- >0)i[r]=arguments[r+2];return(n=this)._tc.apply(n,[t,this.locale,this.messages,null,e].concat(i))},Z.prototype._te=function(t,e,n){var i=[],r=arguments.length-3;while(r-- >0)i[r]=arguments[r+3];var o=h.apply(void 0,i).locale||e;return this._exist(n[o],t)},Z.prototype.te=function(t,e){return this._te(t,this.locale,this.messages,e)},Z.prototype.getLocaleMessage=function(t){return p(this._vm.messages[t])},Z.prototype.setLocaleMessage=function(t,e){this._vm.messages[t]=e},Z.prototype.mergeLocaleMessage=function(t,e){this._vm.messages[t]=m.util.extend(this.getLocaleMessage(t),e)},Object.defineProperties(Z.prototype,Y),Z.install=y,Z.version="6.1.3","undefined"!==typeof window&&window.Vue&&window.Vue.use(Z),e["a"]=Z},a958:function(t,e,n){(function(e){var i=n("399f"),r=n("11dc");function o(t){var e=a(t),n=e.toRed(i.mont(t.modulus)).redPow(new i(t.publicExponent)).fromRed();return{blinder:n,unblinder:e.invm(t.modulus)}}function a(t){var e,n=t.modulus.byteLength();do{e=new i(r(n))}while(e.cmp(t.modulus)>=0||!e.umod(t.prime1)||!e.umod(t.prime2));return e}function s(t,n){var r=o(n),a=n.modulus.byteLength(),s=new i(t).mul(r.blinder).umod(n.modulus),u=s.toRed(i.mont(n.prime1)),l=s.toRed(i.mont(n.prime2)),h=n.coefficient,c=n.prime1,f=n.prime2,d=u.redPow(n.exponent1).fromRed(),p=l.redPow(n.exponent2).fromRed(),g=d.isub(p).imul(h).umod(c).imul(f);return p.iadd(g).imul(r.unblinder).umod(n.modulus).toArrayLike(e,"be",a)}s.getr=a,t.exports=s}).call(this,n("1c35").Buffer)},a9e3:function(t,e,n){"use strict";var i=n("23e7"),r=n("c430"),o=n("83ab"),a=n("da84"),s=n("428f"),u=n("e330"),l=n("94ca"),h=n("1a2d"),c=n("7156"),f=n("3a9b"),d=n("d9b5"),p=n("c04e"),g=n("d039"),m=n("241c").f,v=n("06cf").f,y=n("9bf2").f,b=n("408a"),w=n("58a8").trim,_="Number",x=a[_],M=s[_],S=x.prototype,O=a.TypeError,A=u("".slice),I=u("".charCodeAt),k=function(t){var e=p(t,"number");return"bigint"==typeof e?e:T(e)},T=function(t){var e,n,i,r,o,a,s,u,l=p(t,"number");if(d(l))throw O("Cannot convert a Symbol value to a number");if("string"==typeof l&&l.length>2)if(l=w(l),e=I(l,0),43===e||45===e){if(n=I(l,2),88===n||120===n)return NaN}else if(48===e){switch(I(l,1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+l}for(o=A(l,2),a=o.length,s=0;sr)return NaN;return parseInt(o,i)}return+l},C=l(_,!x(" 0o1")||!x("0b1")||x("+0x1")),E=function(t){return f(S,t)&&g((function(){b(t)}))},D=function(t){var e=arguments.length<1?0:x(k(t));return E(this)?c(Object(e),this,D):e};D.prototype=S,C&&!r&&(S.constructor=D),i({global:!0,constructor:!0,wrap:!0,forced:C},{Number:D});var L=function(t,e){for(var n,i=o?m(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),r=0;i.length>r;r++)h(e,n=i[r])&&!h(t,n)&&y(t,n,v(e,n))};r&&M&&L(s[_],M),(C||r)&&L(s[_],x)},aa56:function(t,e,n){"use strict";var i=n("c3c0"),r=i.rotr32;function o(t,e,n,i){return 0===t?a(e,n,i):1===t||3===t?u(e,n,i):2===t?s(e,n,i):void 0}function a(t,e,n){return t&e^~t&n}function s(t,e,n){return t&e^t&n^e&n}function u(t,e,n){return t^e^n}function l(t){return r(t,2)^r(t,13)^r(t,22)}function h(t){return r(t,6)^r(t,11)^r(t,25)}function c(t){return r(t,7)^r(t,18)^t>>>3}function f(t){return r(t,17)^r(t,19)^t>>>10}e.ft_1=o,e.ch32=a,e.maj32=s,e.p32=u,e.s0_256=l,e.s1_256=h,e.g0_256=c,e.g1_256=f},ab13:function(t,e,n){var i=n("b622"),r=i("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(i){}}return!1}},ab36:function(t,e,n){var i=n("861d"),r=n("9112");t.exports=function(t,e){i(e)&&"cause"in e&&r(t,"cause",e.cause)}},ac1f:function(t,e,n){"use strict";var i=n("23e7"),r=n("9263");i({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},ac4f:function(t,e,n){"use strict";var i;function r(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var o=n("d113").codes,a=o.ERR_MISSING_ARGS,s=o.ERR_STREAM_DESTROYED;function u(t){if(t)throw t}function l(t){return t.setHeader&&"function"===typeof t.abort}function h(t,e,o,a){a=r(a);var u=!1;t.on("close",(function(){u=!0})),void 0===i&&(i=n("42a7")),i(t,{readable:e,writable:o},(function(t){if(t)return a(t);u=!0,a()}));var h=!1;return function(e){if(!u&&!h)return h=!0,l(t)?t.abort():"function"===typeof t.destroy?t.destroy():void a(e||new s("pipe"))}}function c(t){t()}function f(t,e){return t.pipe(e)}function d(t){return t.length?"function"!==typeof t[t.length-1]?u:t.pop():u}function p(){for(var t=arguments.length,e=new Array(t),n=0;n0;return h(t,a,s,(function(t){i||(i=t),t&&o.forEach(c),a||(o.forEach(c),r(i))}))}));return e.reduce(f)}t.exports=p},ad25:function(t,e,n){var i=n("2aee"),r=n("11dc"),o=n("98e6"),a=n("f460"),s=n("83d5"),u=n("0106"),l=n("5291"),h=n("a958"),c=n("8707").Buffer;function f(t,e){var n=t.modulus.byteLength(),i=e.length,l=o("sha1").update(c.alloc(0)).digest(),h=l.length,f=2*h;if(i>n-f-2)throw new Error("message too long");var d=c.alloc(n-i-f-2),p=n-h-1,g=r(h),m=s(c.concat([l,d,c.alloc(1,1),e],p),a(g,p)),v=s(g,a(m,h));return new u(c.concat([c.alloc(1),v,m],n))}function d(t,e,n){var i,r=e.length,o=t.modulus.byteLength();if(r>o-11)throw new Error("message too long");return i=n?c.alloc(o-r-3,255):p(o-r-3),new u(c.concat([c.from([0,n?1:2]),i,c.alloc(1),e],o))}function p(t){var e,n=c.allocUnsafe(t),i=0,o=r(2*t),a=0;while(i=0)throw new Error("data too long for modulus")}return n?h(o,a):l(o,a)}},ad6d:function(t,e,n){"use strict";var i=n("825a");t.exports=function(){var t=i(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},ad71:function(t,e,n){"use strict";(function(e,i){var r=n("966d");t.exports=x;var o,a=n("e3db");x.ReadableState=_;n("faa1").EventEmitter;var s=function(t,e){return t.listeners(e).length},u=n("429b"),l=n("a8f0").Buffer,h=("undefined"!==typeof e?e:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function c(t){return l.from(t)}function f(t){return l.isBuffer(t)||t instanceof h}var d=Object.create(n("3a7c"));d.inherits=n("3fb5");var p=n(3),g=void 0;g=p&&p.debuglog?p.debuglog("stream"):function(){};var m,v=n("5e1a"),y=n("4681");d.inherits(x,u);var b=["error","close","destroy","pause","resume"];function w(t,e,n){if("function"===typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}function _(t,e){o=o||n("b19a"),t=t||{};var i=e instanceof o;this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,a=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(m||(m=n("7d72").StringDecoder),this.decoder=new m(t.encoding),this.encoding=t.encoding)}function x(t){if(o=o||n("b19a"),!(this instanceof x))return new x(t);this._readableState=new _(t,this),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function M(t,e,n,i,r){var o,a=t._readableState;null===e?(a.reading=!1,C(t,a)):(r||(o=O(a,e)),o?t.emit("error",o):a.objectMode||e&&e.length>0?("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===l.prototype||(e=c(e)),i?a.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):S(t,a,e,!0):a.ended?t.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(e=a.decoder.write(e),a.objectMode||0!==e.length?S(t,a,e,!1):L(t,a)):S(t,a,e,!1))):i||(a.reading=!1));return A(a)}function S(t,e,n,i){e.flowing&&0===e.length&&!e.sync?(t.emit("data",n),t.read(0)):(e.length+=e.objectMode?1:n.length,i?e.buffer.unshift(n):e.buffer.push(n),e.needReadable&&E(t)),L(t,e)}function O(t,e){var n;return f(e)||"string"===typeof e||void 0===e||t.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function A(t){return!t.ended&&(t.needReadable||t.length=I?t=I:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function T(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=k(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t,e){if(!e.ended){if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,E(t)}}function E(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(g("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?r.nextTick(D,t):D(t))}function D(t){g("emit readable"),t.emit("readable"),z(t)}function L(t,e){e.readingMore||(e.readingMore=!0,r.nextTick(R,t,e))}function R(t,e){var n=e.length;while(!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):n=V(t,e.buffer,e.decoder),n);var n}function V(t,e,n){var i;return to.length?o.length:t;if(a===o.length?r+=o:r+=o.slice(0,t),t-=a,0===t){a===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(a));break}++i}return e.length-=i,r}function G(t,e){var n=l.allocUnsafe(t),i=e.head,r=1;i.data.copy(n),t-=i.data.length;while(i=i.next){var o=i.data,a=t>o.length?o.length:t;if(o.copy(n,n.length-t,0,a),t-=a,0===t){a===o.length?(++r,i.next?e.head=i.next:e.head=e.tail=null):(e.head=i,i.data=o.slice(a));break}++r}return e.length-=r,n}function U(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,r.nextTick(W,e,t))}function W(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function q(t,e){for(var n=0,i=t.length;n=e.highWaterMark||e.ended))return g("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?U(this):E(this),null;if(t=T(t,e),0===t&&e.ended)return 0===e.length&&U(this),null;var i,r=e.needReadable;return g("need readable",r),(0===e.length||e.length-t0?F(t,e):null,null===i?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&U(this)),null!==i&&this.emit("data",i),i},x.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},x.prototype.pipe=function(t,e){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,g("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,u=a?h:_;function l(t,e){g("onunpipe"),t===n&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){g("onend"),t.end()}o.endEmitted?r.nextTick(u):n.once("end",u),t.on("unpipe",l);var c=j(n);t.on("drain",c);var f=!1;function d(){g("cleanup"),t.removeListener("close",y),t.removeListener("finish",b),t.removeListener("drain",c),t.removeListener("error",v),t.removeListener("unpipe",l),n.removeListener("end",h),n.removeListener("end",_),n.removeListener("data",m),f=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||c()}var p=!1;function m(e){g("ondata"),p=!1;var i=t.write(e);!1!==i||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==q(o.pipes,t))&&!f&&(g("false write response, pause",o.awaitDrain),o.awaitDrain++,p=!0),n.pause())}function v(e){g("onerror",e),_(),t.removeListener("error",v),0===s(t,"error")&&t.emit("error",e)}function y(){t.removeListener("finish",b),_()}function b(){g("onfinish"),t.removeListener("close",y),_()}function _(){g("unpipe"),n.unpipe(t)}return n.on("data",m),w(t,"error",v),t.once("close",y),t.once("finish",b),t.emit("pipe",n),o.flowing||(g("pipe resume"),n.resume()),t},x.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,n)),this;if(!t){var i=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0||o>0){var h=new r;h.update(l),h.update(t),e&&h.update(e),l=h.digest();var c=0;if(a>0){var f=s.length-a;c=Math.min(a,l.length),l.copy(s,f,0,c),a-=c}if(c0){var d=u.length-o,p=Math.min(o,l.length-c);l.copy(u,d,c,c+p),o-=p}}return l.fill(0),{key:s,iv:u}}t.exports=o},ae93:function(t,e,n){"use strict";var i,r,o,a=n("d039"),s=n("1626"),u=n("861d"),l=n("7c73"),h=n("e163"),c=n("cb2d"),f=n("b622"),d=n("c430"),p=f("iterator"),g=!1;[].keys&&(o=[].keys(),"next"in o?(r=h(h(o)),r!==Object.prototype&&(i=r)):g=!0);var m=!u(i)||a((function(){var t={};return i[p].call(t)!==t}));m?i={}:d&&(i=l(i)),s(i[p])||c(i,p,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:g}},aeb0:function(t,e,n){var i=n("9bf2").f;t.exports=function(t,e,n){n in t||i(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},aed9:function(t,e,n){var i=n("83ab"),r=n("d039");t.exports=i&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},b041:function(t,e,n){"use strict";var i=n("00ee"),r=n("f5df");t.exports=i?{}.toString:function(){return"[object "+r(this)+"]"}},b0c0:function(t,e,n){var i=n("83ab"),r=n("5e77").EXISTS,o=n("e330"),a=n("edd0"),s=Function.prototype,u=o(s.toString),l=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,h=o(l.exec),c="name";i&&!r&&a(s,c,{configurable:!0,get:function(){try{return h(l,u(this))[1]}catch(t){return""}}})},b19a:function(t,e,n){"use strict";var i=n("966d"),r=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=c;var o=Object.create(n("3a7c"));o.inherits=n("3fb5");var a=n("ad71"),s=n("dc14");o.inherits(c,a);for(var u=r(s.prototype),l=0;l0?i:n)(e)}},b4e8:function(t){t.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},b4f8:function(t,e,n){var i=n("23e7"),r=n("d066"),o=n("1a2d"),a=n("577e"),s=n("5692"),u=n("0b43"),l=s("string-to-symbol-registry"),h=s("symbol-to-string-registry");i({target:"Symbol",stat:!0,forced:!u},{for:function(t){var e=a(t);if(o(l,e))return l[e];var n=r("Symbol")(e);return l[e]=n,h[n]=e,n}})},b525:function(t,e,n){"use strict";var i=n("c3c0"),r=n("edc9"),o=n("da3e"),a=i.rotr64_hi,s=i.rotr64_lo,u=i.shr64_hi,l=i.shr64_lo,h=i.sum64,c=i.sum64_hi,f=i.sum64_lo,d=i.sum64_4_hi,p=i.sum64_4_lo,g=i.sum64_5_hi,m=i.sum64_5_lo,v=r.BlockHash,y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function b(){if(!(this instanceof b))return new b;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function w(t,e,n,i,r){var o=t&n^~t&r;return o<0&&(o+=4294967296),o}function _(t,e,n,i,r,o){var a=e&i^~e&o;return a<0&&(a+=4294967296),a}function x(t,e,n,i,r){var o=t&n^t&r^n&r;return o<0&&(o+=4294967296),o}function M(t,e,n,i,r,o){var a=e&i^e&o^i&o;return a<0&&(a+=4294967296),a}function S(t,e){var n=a(t,e,28),i=a(e,t,2),r=a(e,t,7),o=n^i^r;return o<0&&(o+=4294967296),o}function O(t,e){var n=s(t,e,28),i=s(e,t,2),r=s(e,t,7),o=n^i^r;return o<0&&(o+=4294967296),o}function A(t,e){var n=a(t,e,14),i=a(t,e,18),r=a(e,t,9),o=n^i^r;return o<0&&(o+=4294967296),o}function I(t,e){var n=s(t,e,14),i=s(t,e,18),r=s(e,t,9),o=n^i^r;return o<0&&(o+=4294967296),o}function k(t,e){var n=a(t,e,1),i=a(t,e,8),r=u(t,e,7),o=n^i^r;return o<0&&(o+=4294967296),o}function T(t,e){var n=s(t,e,1),i=s(t,e,8),r=l(t,e,7),o=n^i^r;return o<0&&(o+=4294967296),o}function C(t,e){var n=a(t,e,19),i=a(e,t,29),r=u(t,e,6),o=n^i^r;return o<0&&(o+=4294967296),o}function E(t,e){var n=s(t,e,19),i=s(e,t,29),r=l(t,e,6),o=n^i^r;return o<0&&(o+=4294967296),o}i.inherits(b,v),t.exports=b,b.blockSize=1024,b.outSize=512,b.hmacStrength=192,b.padLength=128,b.prototype._prepareBlock=function(t,e){for(var n=this.W,i=0;i<32;i++)n[i]=t[e+i];for(;i>>32-e}function g(t,e,n,i,r,o,a,s){return p(t+(e^n^i)+o+a|0,s)+r|0}function m(t,e,n,i,r,o,a,s){return p(t+(e&n|~e&i)+o+a|0,s)+r|0}function v(t,e,n,i,r,o,a,s){return p(t+((e|~n)^i)+o+a|0,s)+r|0}function y(t,e,n,i,r,o,a,s){return p(t+(e&i|n&~i)+o+a|0,s)+r|0}function b(t,e,n,i,r,o,a,s){return p(t+(e^(n|~i))+o+a|0,s)+r|0}r(d,o),d.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var n=0|this._a,i=0|this._b,r=0|this._c,o=0|this._d,d=0|this._e,w=0|this._a,_=0|this._b,x=0|this._c,M=0|this._d,S=0|this._e,O=0;O<80;O+=1){var A,I;O<16?(A=g(n,i,r,o,d,t[s[O]],c[0],l[O]),I=b(w,_,x,M,S,t[u[O]],f[0],h[O])):O<32?(A=m(n,i,r,o,d,t[s[O]],c[1],l[O]),I=y(w,_,x,M,S,t[u[O]],f[1],h[O])):O<48?(A=v(n,i,r,o,d,t[s[O]],c[2],l[O]),I=v(w,_,x,M,S,t[u[O]],f[2],h[O])):O<64?(A=y(n,i,r,o,d,t[s[O]],c[3],l[O]),I=m(w,_,x,M,S,t[u[O]],f[3],h[O])):(A=b(n,i,r,o,d,t[s[O]],c[4],l[O]),I=g(w,_,x,M,S,t[u[O]],f[4],h[O])),n=d,d=o,o=p(r,10),r=i,i=A,w=S,S=M,M=p(x,10),x=_,_=I}var k=this._b+r+M|0;this._b=this._c+o+S|0,this._c=this._d+d+w|0,this._d=this._e+n+_|0,this._e=this._a+i+x|0,this._a=k},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=i.alloc?i.alloc(20):new i(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=d},b622:function(t,e,n){var i=n("da84"),r=n("5692"),o=n("1a2d"),a=n("90e3"),s=n("04f8"),u=n("fdbf"),l=i.Symbol,h=r("wks"),c=u?l["for"]||l:l&&l.withoutSetter||a;t.exports=function(t){return o(h,t)||(h[t]=s&&o(l,t)?l[t]:c("Symbol."+t)),h[t]}},b636:function(t,e,n){var i=n("e065");i("asyncIterator")},b64b:function(t,e,n){var i=n("23e7"),r=n("7b0b"),o=n("df75"),a=n("d039"),s=a((function(){o(1)}));i({target:"Object",stat:!0,forced:s},{keys:function(t){return o(r(t))}})},b672:function(t,e,n){var i=n("8707").Buffer;function r(t,e){this._block=i.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}r.prototype.update=function(t,e){"string"===typeof t&&(e=e||"utf8",t=i.from(t,e));for(var n=this._block,r=this._blockSize,o=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var i=(4294967295&n)>>>0,r=(n-i)/4294967296;this._block.writeUInt32BE(r,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},r.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=r},b680:function(t,e,n){"use strict";var i=n("23e7"),r=n("e330"),o=n("5926"),a=n("408a"),s=n("1148"),u=n("d039"),l=RangeError,h=String,c=Math.floor,f=r(s),d=r("".slice),p=r(1..toFixed),g=function(t,e,n){return 0===e?n:e%2===1?g(t,e-1,n*t):g(t*t,e/2,n)},m=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},v=function(t,e,n){var i=-1,r=n;while(++i<6)r+=e*t[i],t[i]=r%1e7,r=c(r/1e7)},y=function(t,e){var n=6,i=0;while(--n>=0)i+=t[n],t[n]=c(i/e),i=i%e*1e7},b=function(t){var e=6,n="";while(--e>=0)if(""!==n||0===e||0!==t[e]){var i=h(t[e]);n=""===n?i:n+f("0",7-i.length)+i}return n},w=u((function(){return"0.000"!==p(8e-5,3)||"1"!==p(.9,0)||"1.25"!==p(1.255,2)||"1000000000000000128"!==p(0xde0b6b3a7640080,0)}))||!u((function(){p({})}));i({target:"Number",proto:!0,forced:w},{toFixed:function(t){var e,n,i,r,s=a(this),u=o(t),c=[0,0,0,0,0,0],p="",w="0";if(u<0||u>20)throw l("Incorrect fraction digits");if(s!=s)return"NaN";if(s<=-1e21||s>=1e21)return h(s);if(s<0&&(p="-",s=-s),s>1e-21)if(e=m(s*g(2,69,1))-69,n=e<0?s*g(2,-e,1):s/g(2,e,1),n*=4503599627370496,e=52-e,e>0){v(c,0,n),i=u;while(i>=7)v(c,1e7,0),i-=7;v(c,g(10,i,1),0),i=e-1;while(i>=23)y(c,1<<23),i-=23;y(c,1<0?(r=w.length,w=p+(r<=u?"0."+f("0",u-r)+w:d(w,0,r-u)+"."+d(w,r-u))):w=p+w,w}})},b692:function(t,e,n){var i=n("8707").Buffer,r=n("98e6"),o=n("34d5"),a=n("3fb5"),s=n("6fe7"),u=n("980c"),l=n("b4e8");function h(t){o.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function c(t){o.Writable.call(this);var e=l[t];if(!e)throw new Error("Unknown message digest");this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){return new h(t)}function d(t){return new c(t)}Object.keys(l).forEach((function(t){l[t].id=i.from(l[t].id,"hex"),l[t.toLowerCase()]=l[t]})),a(h,o.Writable),h.prototype._write=function(t,e,n){this._hash.update(t),n()},h.prototype.update=function(t,e){return"string"===typeof t&&(t=i.from(t,e)),this._hash.update(t),this},h.prototype.sign=function(t,e){this.end();var n=this._hash.digest(),i=s(n,t,this._hashType,this._signType,this._tag);return e?i.toString(e):i},a(c,o.Writable),c.prototype._write=function(t,e,n){this._hash.update(t),n()},c.prototype.update=function(t,e){return"string"===typeof t&&(t=i.from(t,e)),this._hash.update(t),this},c.prototype.verify=function(t,e,n){"string"===typeof e&&(e=i.from(e,n)),this.end();var r=this._hash.digest();return u(e,r,t,this._signType,this._tag)},t.exports={Sign:f,Verify:d,createSign:f,createVerify:d}},b727:function(t,e,n){var i=n("0366"),r=n("e330"),o=n("44ad"),a=n("7b0b"),s=n("07fa"),u=n("65f0"),l=r([].push),h=function(t){var e=1==t,n=2==t,r=3==t,h=4==t,c=6==t,f=7==t,d=5==t||c;return function(p,g,m,v){for(var y,b,w=a(p),_=o(w),x=i(g,m),M=s(_),S=0,O=v||u,A=e?O(p,M):n||f?O(p,0):void 0;M>S;S++)if((d||S in _)&&(y=_[S],b=x(y,S,w),t))if(e)A[S]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return S;case 2:l(A,y)}else switch(t){case 4:return!1;case 7:l(A,y)}return c?-1:r||h?h:A}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}},b73f:function(t,e,n){"use strict";var i=n("80af"),r=n("f3a3"),o=r.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new i(t.r,16),this.s=new i(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var n=t[e.place++];if(!(128&n))return n;var i=15&n;if(0===i||i>4)return!1;for(var r=0,o=0,a=e.place;o>>=0;return!(r<=127)&&(e.place=a,r)}function l(t){var e=0,n=t.length-1;while(!t[e]&&!(128&t[e+1])&&e>>3);t.push(128|n);while(--n)t.push(e>>>(n<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=r.toArray(t,e);var n=new s;if(48!==t[n.place++])return!1;var o=u(t,n);if(!1===o)return!1;if(o+n.place!==t.length)return!1;if(2!==t[n.place++])return!1;var a=u(t,n);if(!1===a)return!1;var l=t.slice(n.place,a+n.place);if(n.place+=a,2!==t[n.place++])return!1;var h=u(t,n);if(!1===h)return!1;if(t.length!==h+n.place)return!1;var c=t.slice(n.place,h+n.place);if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}return this.r=new i(l),this.s=new i(c),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),n=this.s.toArray();128&e[0]&&(e=[0].concat(e)),128&n[0]&&(n=[0].concat(n)),e=l(e),n=l(n);while(!n[0]&&!(128&n[1]))n=n.slice(1);var i=[2];h(i,e.length),i=i.concat(e),i.push(2),h(i,n.length);var o=i.concat(n),a=[48];return h(a,o.length),a=a.concat(o),r.encode(a,t)}},b7d1:function(t,e,n){(function(e){function n(t,e){if(i("noDeprecation"))return t;var n=!1;function r(){if(!n){if(i("throwDeprecation"))throw new Error(e);i("traceDeprecation")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}return r}function i(t){try{if(!e.localStorage)return!1}catch(i){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=n}).call(this,n("24aa"))},b837:function(t,e,n){var i=n("3fb5"),r=n("4fd1"),o=n("b672"),a=n("8707").Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}i(u,r),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,n,i){t.writeInt32BE(e,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},b980:function(t,e,n){var i=n("d039"),r=n("5c6c");t.exports=!i((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",r(1,7)),7!==t.stack)}))},b9a8:function(t,e,n){"use strict";var i=n("80af"),r=n("6aa2"),o=n("f3a3"),a=n("0cbb"),s=n("fdac"),u=o.assert,l=n("bb34"),h=n("b73f");function c(t){if(!(this instanceof c))return new c(t);"string"===typeof t&&(u(Object.prototype.hasOwnProperty.call(a,t),"Unknown curve "+t),t=a[t]),t instanceof a.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=c,c.prototype.keyPair=function(t){return new l(this,t)},c.prototype.keyFromPrivate=function(t,e){return l.fromPrivate(this,t,e)},c.prototype.keyFromPublic=function(t,e){return l.fromPublic(this,t,e)},c.prototype.genKeyPair=function(t){t||(t={});for(var e=new r({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new i(2));;){var a=new i(e.generate(n));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}},c.prototype._truncateToN=function(t,e){var n=8*t.byteLength()-this.n.bitLength();return n>0&&(t=t.ushrn(n)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},c.prototype.sign=function(t,e,n,o){"object"===typeof n&&(o=n,n=null),o||(o={}),e=this.keyFromPrivate(e,n),t=this._truncateToN(new i(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),u=t.toArray("be",a),l=new r({hash:this.hash,entropy:s,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),c=this.n.sub(new i(1)),f=0;;f++){var d=o.k?o.k(f):new i(l.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(c)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var g=p.getX(),m=g.umod(this.n);if(0!==m.cmpn(0)){var v=d.invm(this.n).mul(m.mul(e.getPrivate()).iadd(t));if(v=v.umod(this.n),0!==v.cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==g.cmp(m)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),y^=1),new h({r:m,s:v,recoveryParam:y})}}}}}},c.prototype.verify=function(t,e,n,r){t=this._truncateToN(new i(t,16)),n=this.keyFromPublic(n,r),e=new h(e,"hex");var o=e.r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),l=u.mul(t).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?(s=this.g.jmulAdd(l,n.getPublic(),c),!s.isInfinity()&&s.eqXToP(o)):(s=this.g.mulAdd(l,n.getPublic(),c),!s.isInfinity()&&0===s.getX().umod(this.n).cmp(o))},c.prototype.recoverPubKey=function(t,e,n,r){u((3&n)===n,"The recovery param is more than two bits"),e=new h(e,r);var o=this.n,a=new i(t),s=e.r,l=e.s,c=1&n,f=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");s=f?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),g=l.mul(d).umod(o);return this.g.mulAdd(p,s,g)},c.prototype.getKeyRecoveryParam=function(t,e,n,i){if(e=new h(e,i),null!==e.recoveryParam)return e.recoveryParam;for(var r=0;r<4;r++){var o;try{o=this.recoverPubKey(t,e,r)}catch(t){continue}if(o.eq(n))return r}throw new Error("Unable to find valid recovery factor")}},b9b5:function(t,e,n){"use strict";var i=n("9d8a").codes.ERR_INVALID_OPT_VALUE;function r(t,e,n){return null!=t.highWaterMark?t.highWaterMark:e?t[n]:null}function o(t,e,n,o){var a=r(e,o,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?n:"highWaterMark";throw new i(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},b9c7:function(t,e,n){n("e507"),t.exports=n("5524").Object.assign},ba01:function(t,e,n){t.exports=n("051b")},bac2:function(t,e,n){var i={ECB:n("0145"),CBC:n("c119"),CFB:n("3505"),CFB8:n("62c9"),CFB1:n("5239"),OFB:n("5165"),CTR:n("6ade"),GCM:n("6ade")},r=n("e85f");for(var o in r)r[o].module=i[r[o].mode];t.exports=r},bb2f:function(t,e,n){var i=n("d039");t.exports=!i((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bb34:function(t,e,n){"use strict";var i=n("80af"),r=n("f3a3"),o=r.assert;function a(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=a,a.fromPublic=function(t,e,n){return e instanceof a?e:new a(t,{pub:e,pubEnc:n})},a.fromPrivate=function(t,e,n){return e instanceof a?e:new a(t,{priv:e,privEnc:n})},a.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(t,e){return"string"===typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},a.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(t,e){this.priv=new i(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?o(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},a.prototype.derive=function(t){return t.validate()||o(t.validate(),"public point not validated"),t.mul(this.priv).getX()},a.prototype.sign=function(t,e,n){return this.ec.sign(t,this,e,n)},a.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},a.prototype.inspect=function(){return""}},bb44:function(t,e,n){"use strict";var i=n("c3c0"),r=n("edc9"),o=i.rotl32,a=i.sum32,s=i.sum32_3,u=i.sum32_4,l=r.BlockHash;function h(){if(!(this instanceof h))return new h;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function c(t,e,n,i){return t<=15?e^n^i:t<=31?e&n|~e&i:t<=47?(e|~n)^i:t<=63?e&i|n&~i:e^(n|~i)}function f(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}i.inherits(h,l),e.ripemd160=h,h.blockSize=512,h.outSize=160,h.hmacStrength=192,h.padLength=64,h.prototype._update=function(t,e){for(var n=this.h[0],i=this.h[1],r=this.h[2],l=this.h[3],h=this.h[4],y=n,b=i,w=r,_=l,x=h,M=0;M<80;M++){var S=a(o(u(n,c(M,i,r,l),t[p[M]+e],f(M)),m[M]),h);n=h,h=l,l=o(r,10),r=i,i=S,S=a(o(u(y,c(79-M,b,w,_),t[g[M]+e],d(M)),v[M]),x),y=x,x=_,_=o(w,10),w=b,b=S}S=s(this.h[1],r,_),this.h[1]=s(this.h[2],l,x),this.h[2]=s(this.h[3],h,y),this.h[3]=s(this.h[4],n,b),this.h[4]=s(this.h[0],i,w),this.h[0]=S},h.prototype._digest=function(t){return"hex"===t?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},bc12:function(t,e,n){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!==typeof window&&"undefined"!==typeof window.Buffer?window.Buffer:n(12).Buffer}catch(I){}function s(t,e){var n=t.charCodeAt(e);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},bd11:function(t,e){t.exports=g,t.exports.parse=o,t.exports.compile=a,t.exports.tokensToFunction=s,t.exports.tokensToRegExp=p;var n="/",i="./",r=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function o(t,e){var o,a=[],s=0,h=0,c="",f=e&&e.delimiter||n,d=e&&e.delimiters||i,p=!1;while(null!==(o=r.exec(t))){var g=o[0],m=o[1],v=o.index;if(c+=t.slice(h,v),h=v+g.length,m)c+=m[1],p=!0;else{var y="",b=t[h],w=o[2],_=o[3],x=o[4],M=o[5];if(!p&&c.length){var S=c.length-1;d.indexOf(c[S])>-1&&(y=c[S],c=c.slice(0,S))}c&&(a.push(c),c="",p=!1);var O=""!==y&&void 0!==b&&b!==y,A="+"===M||"*"===M,I="?"===M||"*"===M,k=y||f,T=_||x;a.push({name:w||s++,prefix:y,delimiter:k,optional:I,repeat:A,partial:O,pattern:T?l(T):"[^"+u(k)+"]+?"})}}return(c||h-1;else{var v=m.repeat?"(?:"+m.pattern+")(?:"+u(m.delimiter)+"(?:"+m.pattern+"))*":m.pattern;e&&e.push(m),m.optional?m.partial?d+=u(m.prefix)+"("+v+")?":d+="(?:"+u(m.prefix)+"("+v+"))?":d+=u(m.prefix)+"("+v+")"}}return s?(o||(d+="(?:"+l+")?"),d+="$"===f?"$":"(?="+f+")"):(o||(d+="(?:"+l+"(?="+f+"))?"),p||(d+="(?="+l+"|"+f+")")),new RegExp(d,h(r))}function g(t,e,n){return t instanceof RegExp?c(t,e):Array.isArray(t)?f(t,e,n):d(t,e,n)}},bd9d:function(t,e){function n(t){var e,n=t.length;while(n--){if(e=t.readUInt8(n),255!==e){e++,t.writeUInt8(e,n);break}t.writeUInt8(0,n)}}t.exports=n},c04e:function(t,e,n){var i=n("c65b"),r=n("861d"),o=n("d9b5"),a=n("dc4a"),s=n("485a"),u=n("b622"),l=TypeError,h=u("toPrimitive");t.exports=function(t,e){if(!r(t)||o(t))return t;var n,u=a(t,h);if(u){if(void 0===e&&(e="default"),n=i(u,t,e),!r(n)||o(n))return n;throw l("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},c098:function(t,e,n){t.exports=n("d4af")},c119:function(t,e,n){var i=n("8c8a");e.encrypt=function(t,e){var n=i(e,t._prev);return t._prev=t._cipher.encryptBlock(n),t._prev},e.decrypt=function(t,e){var n=t._prev;t._prev=e;var r=t._cipher.decryptBlock(e);return i(r,n)}},c24d:function(t){t.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},c2ae:function(t,e,n){t.exports=n("e372").PassThrough},c3c0:function(t,e,n){"use strict";var i=n("da3e"),r=n("3fb5");function o(t,e){return 55296===(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320===(64512&t.charCodeAt(e+1)))}function a(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"===typeof t)if(e){if("hex"===e)for(t=t.replace(/[^a-z0-9]+/gi,""),t.length%2!==0&&(t="0"+t),r=0;r>6|192,n[i++]=63&a|128):o(t,r)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++r)),n[i++]=a>>18|240,n[i++]=a>>12&63|128,n[i++]=a>>6&63|128,n[i++]=63&a|128):(n[i++]=a>>12|224,n[i++]=a>>6&63|128,n[i++]=63&a|128)}else for(r=0;r>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24;return e>>>0}function l(t,e){for(var n="",i=0;i>>0}return a}function d(t,e){for(var n=new Array(4*t.length),i=0,r=0;i>>24,n[r+1]=o>>>16&255,n[r+2]=o>>>8&255,n[r+3]=255&o):(n[r+3]=o>>>24,n[r+2]=o>>>16&255,n[r+1]=o>>>8&255,n[r]=255&o)}return n}function p(t,e){return t>>>e|t<<32-e}function g(t,e){return t<>>32-e}function m(t,e){return t+e>>>0}function v(t,e,n){return t+e+n>>>0}function y(t,e,n,i){return t+e+n+i>>>0}function b(t,e,n,i,r){return t+e+n+i+r>>>0}function w(t,e,n,i){var r=t[e],o=t[e+1],a=i+o>>>0,s=(a>>0,t[e+1]=a}function _(t,e,n,i){var r=e+i>>>0,o=(r>>0}function x(t,e,n,i){var r=e+i;return r>>>0}function M(t,e,n,i,r,o,a,s){var u=0,l=e;l=l+i>>>0,u+=l>>0,u+=l>>0,u+=l>>0}function S(t,e,n,i,r,o,a,s){var u=e+i+o+s;return u>>>0}function O(t,e,n,i,r,o,a,s,u,l){var h=0,c=e;c=c+i>>>0,h+=c>>0,h+=c>>0,h+=c>>0,h+=c>>0}function A(t,e,n,i,r,o,a,s,u,l){var h=e+i+o+s+l;return h>>>0}function I(t,e,n){var i=e<<32-n|t>>>n;return i>>>0}function k(t,e,n){var i=t<<32-n|e>>>n;return i>>>0}function T(t,e,n){return t>>>n}function C(t,e,n){var i=t<<32-n|e>>>n;return i>>>0}e.inherits=r,e.toArray=a,e.toHex=s,e.htonl=u,e.toHex32=l,e.zero2=h,e.zero8=c,e.join32=f,e.split32=d,e.rotr32=p,e.rotl32=g,e.sum32=m,e.sum32_3=v,e.sum32_4=y,e.sum32_5=b,e.sum64=w,e.sum64_hi=_,e.sum64_lo=x,e.sum64_4_hi=M,e.sum64_4_lo=S,e.sum64_5_hi=O,e.sum64_5_lo=A,e.rotr64_hi=I,e.rotr64_lo=k,e.shr64_hi=T,e.shr64_lo=C},c430:function(t,e){t.exports=!1},c513:function(t,e,n){var i=n("23e7"),r=n("1a2d"),o=n("d9b5"),a=n("0d51"),s=n("5692"),u=n("0b43"),l=s("symbol-to-string-registry");i({target:"Symbol",stat:!0,forced:!u},{keyFor:function(t){if(!o(t))throw TypeError(a(t)+" is not a symbol");if(r(l,t))return l[t]}})},c532:function(t,e,n){"use strict";(function(t){var i=n("1d2b");const{toString:r}=Object.prototype,{getPrototypeOf:o}=Object,a=(t=>e=>{const n=r.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),s=t=>(t=t.toLowerCase(),e=>a(e)===t),u=t=>e=>typeof e===t,{isArray:l}=Array,h=u("undefined");function c(t){return null!==t&&!h(t)&&null!==t.constructor&&!h(t.constructor)&&g(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const f=s("ArrayBuffer");function d(t){let e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&f(t.buffer),e}const p=u("string"),g=u("function"),m=u("number"),v=t=>null!==t&&"object"===typeof t,y=t=>!0===t||!1===t,b=t=>{if("object"!==a(t))return!1;const e=o(t);return(null===e||e===Object.prototype||null===Object.getPrototypeOf(e))&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},w=s("Date"),_=s("File"),x=s("Blob"),M=s("FileList"),S=t=>v(t)&&g(t.pipe),O=t=>{let e;return t&&("function"===typeof FormData&&t instanceof FormData||g(t.append)&&("formdata"===(e=a(t))||"object"===e&&g(t.toString)&&"[object FormData]"===t.toString()))},A=s("URLSearchParams"),I=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function k(t,e,{allOwnKeys:n=!1}={}){if(null===t||"undefined"===typeof t)return;let i,r;if("object"!==typeof t&&(t=[t]),l(t))for(i=0,r=t.length;i0)if(i=n[r],e===i.toLowerCase())return i;return null}const C=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:t)(),E=t=>!h(t)&&t!==C;function D(){const{caseless:t}=E(this)&&this||{},e={},n=(n,i)=>{const r=t&&T(e,i)||i;b(e[r])&&b(n)?e[r]=D(e[r],n):b(n)?e[r]=D({},n):l(n)?e[r]=n.slice():e[r]=n};for(let i=0,r=arguments.length;i(k(e,(e,r)=>{n&&g(e)?t[r]=Object(i["a"])(e,n):t[r]=e},{allOwnKeys:r}),t),R=t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),j=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},P=(t,e,n,i)=>{let r,a,s;const u={};if(e=e||{},null==t)return e;do{r=Object.getOwnPropertyNames(t),a=r.length;while(a-- >0)s=r[a],i&&!i(s,t,e)||u[s]||(e[s]=t[s],u[s]=!0);t=!1!==n&&o(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},N=(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return-1!==i&&i===n},B=t=>{if(!t)return null;if(l(t))return t;let e=t.length;if(!m(e))return null;const n=new Array(e);while(e-- >0)n[e]=t[e];return n},z=(t=>e=>t&&e instanceof t)("undefined"!==typeof Uint8Array&&o(Uint8Array)),F=(t,e)=>{const n=t&&t[Symbol.iterator],i=n.call(t);let r;while((r=i.next())&&!r.done){const n=r.value;e.call(t,n[0],n[1])}},V=(t,e)=>{let n;const i=[];while(null!==(n=t.exec(e)))i.push(n);return i},H=s("HTMLFormElement"),G=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),U=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),W=s("RegExp"),q=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};k(n,(n,r)=>{!1!==e(n,r,t)&&(i[r]=n)}),Object.defineProperties(t,i)},Z=t=>{q(t,(e,n)=>{if(g(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const i=t[n];g(i)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},Y=(t,e)=>{const n={},i=t=>{t.forEach(t=>{n[t]=!0})};return l(t)?i(t):i(String(t).split(e)),n},X=()=>{},$=(t,e)=>(t=+t,Number.isFinite(t)?t:e),K="abcdefghijklmnopqrstuvwxyz",J="0123456789",Q={DIGIT:J,ALPHA:K,ALPHA_DIGIT:K+K.toUpperCase()+J},tt=(t=16,e=Q.ALPHA_DIGIT)=>{let n="";const{length:i}=e;while(t--)n+=e[Math.random()*i|0];return n};function et(t){return!!(t&&g(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])}const nt=t=>{const e=new Array(10),n=(t,i)=>{if(v(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[i]=t;const r=l(t)?[]:{};return k(t,(t,e)=>{const o=n(t,i+1);!h(o)&&(r[e]=o)}),e[i]=void 0,r}}return t};return n(t,0)},it=s("AsyncFunction"),rt=t=>t&&(v(t)||g(t))&&g(t.then)&&g(t.catch);e["a"]={isArray:l,isArrayBuffer:f,isBuffer:c,isFormData:O,isArrayBufferView:d,isString:p,isNumber:m,isBoolean:y,isObject:v,isPlainObject:b,isUndefined:h,isDate:w,isFile:_,isBlob:x,isRegExp:W,isFunction:g,isStream:S,isURLSearchParams:A,isTypedArray:z,isFileList:M,forEach:k,merge:D,extend:L,trim:I,stripBOM:R,inherits:j,toFlatObject:P,kindOf:a,kindOfTest:s,endsWith:N,toArray:B,forEachEntry:F,matchAll:V,isHTMLForm:H,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:q,freezeMethods:Z,toObjectSet:Y,toCamelCase:G,noop:X,toFiniteNumber:$,findKey:T,global:C,isContextDefined:E,ALPHABET:Q,generateString:tt,isSpecCompliantForm:et,toJSONObject:nt,isAsyncFn:it,isThenable:rt}}).call(this,n("24aa"))},c591:function(t,e,n){"use strict";(function(e){var i,r=n("1c35"),o=r.Buffer,a={};for(i in r)r.hasOwnProperty(i)&&"SlowBuffer"!==i&&"Buffer"!==i&&(a[i]=r[i]);var s=a.Buffer={};for(i in o)o.hasOwnProperty(i)&&"allocUnsafe"!==i&&"allocUnsafeSlow"!==i&&(s[i]=o[i]);if(a.Buffer.prototype=o.prototype,s.from&&s.from!==Uint8Array.from||(s.from=function(t,e,n){if("number"===typeof t)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&"undefined"===typeof t.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return o(t,e,n)}),s.alloc||(s.alloc=function(t,e,n){if("number"!==typeof t)throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var i=o(t);return e&&0!==e.length?"string"===typeof n?i.fill(e,n):i.fill(e):i.fill(0),i}),!a.kStringMaxLength)try{a.kStringMaxLength=e.binding("buffer").kStringMaxLength}catch(u){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),t.exports=a}).call(this,n("4362"))},c607:function(t,e,n){var i=n("83ab"),r=n("fce3"),o=n("c6b6"),a=n("edd0"),s=n("69f3").get,u=RegExp.prototype,l=TypeError;i&&r&&a(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if("RegExp"===o(this))return!!s(this).dotAll;throw l("Incompatible receiver, RegExp required")}}})},c65b:function(t,e,n){var i=n("40d5"),r=Function.prototype.call;t.exports=i?r.bind(r):function(){return r.apply(r,arguments)}},c6b6:function(t,e,n){var i=n("e330"),r=i({}.toString),o=i("".slice);t.exports=function(t){return o(r(t),8,-1)}},c6cd:function(t,e,n){var i=n("da84"),r=n("6374"),o="__core-js_shared__",a=i[o]||r(o,{});t.exports=a},c6d2:function(t,e,n){"use strict";var i=n("23e7"),r=n("c65b"),o=n("c430"),a=n("5e77"),s=n("1626"),u=n("dcc3"),l=n("e163"),h=n("d2bb"),c=n("d44e"),f=n("9112"),d=n("cb2d"),p=n("b622"),g=n("3f8c"),m=n("ae93"),v=a.PROPER,y=a.CONFIGURABLE,b=m.IteratorPrototype,w=m.BUGGY_SAFARI_ITERATORS,_=p("iterator"),x="keys",M="values",S="entries",O=function(){return this};t.exports=function(t,e,n,a,p,m,A){u(n,e,a);var I,k,T,C=function(t){if(t===p&&j)return j;if(!w&&t in L)return L[t];switch(t){case x:return function(){return new n(this,t)};case M:return function(){return new n(this,t)};case S:return function(){return new n(this,t)}}return function(){return new n(this)}},E=e+" Iterator",D=!1,L=t.prototype,R=L[_]||L["@@iterator"]||p&&L[p],j=!w&&R||C(p),P="Array"==e&&L.entries||R;if(P&&(I=l(P.call(new t)),I!==Object.prototype&&I.next&&(o||l(I)===b||(h?h(I,b):s(I[_])||d(I,_,O)),c(I,E,!0,!0),o&&(g[E]=O))),v&&p==M&&R&&R.name!==M&&(!o&&y?f(L,"name",M):(D=!0,j=function(){return r(R,this)})),p)if(k={values:C(M),keys:m?j:C(x),entries:C(S)},A)for(T in k)(w||D||!(T in L))&&d(L,T,k[T]);else i({target:e,proto:!0,forced:w||D},k);return o&&!A||L[_]===j||d(L,_,j,{name:p}),g[e]=j,k}},c7eb:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0"),n("b636"),n("944a"),n("0c47"),n("23dc"),n("3410"),n("d9e2"),n("14d9"),n("159b"),n("b0c0"),n("131a"),n("1f68"),n("fb6a");var i=n("53ca");function r(){ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ +r=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,e,n){t[e]=n.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function h(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(C){h=function(t,e,n){return t[e]=n}}function c(t,e,n,i){var r=e&&e.prototype instanceof p?e:p,a=Object.create(r.prototype),s=new I(i||[]);return o(a,"_invoke",{value:M(t,n,s)}),a}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(C){return{type:"throw",arg:C}}}t.wrap=c;var d={};function p(){}function g(){}function m(){}var v={};h(v,s,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(k([])));b&&b!==e&&n.call(b,s)&&(v=b);var w=m.prototype=p.prototype=Object.create(v);function _(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function r(o,a,s,u){var l=f(t[o],t,a);if("throw"!==l.type){var h=l.arg,c=h.value;return c&&"object"==Object(i["a"])(c)&&n.call(c,"__await")?e.resolve(c.__await).then((function(t){r("next",t,s,u)}),(function(t){r("throw",t,s,u)})):e.resolve(c).then((function(t){h.value=t,s(h)}),(function(t){return r("throw",t,s,u)}))}u(l.arg)}var a;o(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function M(t,e,n){var i="suspendedStart";return function(r,o){if("executing"===i)throw new Error("Generator is already running");if("completed"===i){if("throw"===r)throw o;return T()}for(n.method=r,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===i)throw i="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i="executing";var u=f(t,e,n);if("normal"===u.type){if(i=n.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i="completed",n.method="throw",n.arg=u.arg)}}}function S(t,e){var n=e.method,i=t.iterator[n];if(void 0===i)return e.delegate=null,"throw"===n&&t.iterator["return"]&&(e.method="return",e.arg=void 0,S(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var r=f(i,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,d;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function k(t){if(t){var e=t[s];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,r=function e(){for(;++i=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),u=n.call(o,"finallyLoc");if(s&&u){if(this.prev=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var r=i.arg;A(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:k(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}},c8d2:function(t,e,n){var i=n("5e77").PROPER,r=n("d039"),o=n("5899"),a="​…᠎";t.exports=function(t){return r((function(){return!!o[t]()||a[t]()!==a||i&&o[t].name!==t}))}},c901:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},ca84:function(t,e,n){var i=n("e330"),r=n("1a2d"),o=n("fc6a"),a=n("4d64").indexOf,s=n("d012"),u=i([].push);t.exports=function(t,e){var n,i=o(t),l=0,h=[];for(n in i)!r(s,n)&&r(i,n)&&u(h,n);while(e.length>l)r(i,n=e[l++])&&(~a(h,n)||u(h,n));return h}},caad:function(t,e,n){"use strict";var i=n("23e7"),r=n("4d64").includes,o=n("d039"),a=n("44d2"),s=o((function(){return!Array(1).includes()}));i({target:"Array",proto:!0,forced:s},{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("includes")},cb2d:function(t,e,n){var i=n("1626"),r=n("9bf2"),o=n("13d2"),a=n("6374");t.exports=function(t,e,n,s){s||(s={});var u=s.enumerable,l=void 0!==s.name?s.name:e;if(i(n)&&o(n,l,s),s.global)u?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(u=!0):delete t[e]}catch(h){}u?t[e]=n:r.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},cc12:function(t,e,n){var i=n("da84"),r=n("861d"),o=i.document,a=r(o)&&r(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cc15:function(t,e,n){var i=n("b367")("wks"),r=n("8b1a"),o=n("ef08").Symbol,a="function"==typeof o,s=t.exports=function(t){return i[t]||(i[t]=a&&o[t]||(a?o:r)("Symbol."+t))};s.store=i},cc98:function(t,e,n){"use strict";var i=n("23e7"),r=n("c430"),o=n("4738").CONSTRUCTOR,a=n("d256"),s=n("d066"),u=n("1626"),l=n("cb2d"),h=a&&a.prototype;if(i({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(t){return this.then(void 0,t)}}),!r&&u(a)){var c=s("Promise").prototype["catch"];h["catch"]!==c&&l(h,"catch",c,{unsafe:!0})}},cca6:function(t,e,n){var i=n("23e7"),r=n("60da");i({target:"Object",stat:!0,arity:2,forced:Object.assign!==r},{assign:r})},cd91:function(t){t.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},cdce:function(t,e,n){var i=n("da84"),r=n("1626"),o=i.WeakMap;t.exports=r(o)&&/native code/.test(String(o))},cdf9:function(t,e,n){var i=n("825a"),r=n("861d"),o=n("f069");t.exports=function(t,e){if(i(t),r(e)&&e.constructor===t)return e;var n=o.f(t),a=n.resolve;return a(e),n.promise}},ce7a:function(t,e,n){var i=n("9c0e"),r=n("0983"),o=n("5a94")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},cee4:function(t,e,n){"use strict";var i=n("c532"),r=n("1d2b"),o=n("e467");function a(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function s(t,e){this._pairs=[],t&&Object(o["a"])(t,this,e)}const u=s.prototype;u.append=function(t,e){this._pairs.push([t,e])},u.toString=function(t){const e=t?function(e){return t.call(this,e,a)}:a;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var l=s;function h(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function c(t,e,n){if(!e)return t;const r=n&&n.encode||h,o=n&&n.serialize;let a;if(a=o?o(e,n):i["a"].isURLSearchParams(e)?e.toString():new l(e,n).toString(r),a){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+a}return t}class f{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){i["a"].forEach(this.handlers,(function(e){null!==e&&t(e)}))}}var d=f,p=n("7917"),g={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},m="undefined"!==typeof URLSearchParams?URLSearchParams:l,v="undefined"!==typeof FormData?FormData:null,y="undefined"!==typeof Blob?Blob:null;const b=(()=>{let t;return("undefined"===typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),w=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)();var _={isBrowser:!0,classes:{URLSearchParams:m,FormData:v,Blob:y},isStandardBrowserEnv:b,isStandardBrowserWebWorkerEnv:w,protocols:["http","https","file","blob","url","data"]};function x(t,e){return Object(o["a"])(t,new _.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return _.isNode&&i["a"].isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function M(t){return i["a"].matchAll(/\w+|\[(\w*)]/g,t).map(t=>"[]"===t[0]?"":t[1]||t[0])}function S(t){const e={},n=Object.keys(t);let i;const r=n.length;let o;for(i=0;i=t.length;if(a=!a&&i["a"].isArray(r)?r.length:a,u)return i["a"].hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!s;r[a]&&i["a"].isObject(r[a])||(r[a]=[]);const l=e(t,n,r[a],o);return l&&i["a"].isArray(r[a])&&(r[a]=S(r[a])),!s}if(i["a"].isFormData(t)&&i["a"].isFunction(t.entries)){const n={};return i["a"].forEachEntry(t,(t,i)=>{e(M(t),i,n,0)}),n}return null}var A=O;const I={"Content-Type":void 0};function k(t,e,n){if(i["a"].isString(t))try{return(e||JSON.parse)(t),i["a"].trim(t)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(t)}const T={transitional:g,adapter:["xhr","http"],transformRequest:[function(t,e){const n=e.getContentType()||"",r=n.indexOf("application/json")>-1,a=i["a"].isObject(t);a&&i["a"].isHTMLForm(t)&&(t=new FormData(t));const s=i["a"].isFormData(t);if(s)return r&&r?JSON.stringify(A(t)):t;if(i["a"].isArrayBuffer(t)||i["a"].isBuffer(t)||i["a"].isStream(t)||i["a"].isFile(t)||i["a"].isBlob(t))return t;if(i["a"].isArrayBufferView(t))return t.buffer;if(i["a"].isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return x(t,this.formSerializer).toString();if((u=i["a"].isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return Object(o["a"])(u?{"files[]":t}:t,e&&new e,this.formSerializer)}}return a||r?(e.setContentType("application/json",!1),k(t)):t}],transformResponse:[function(t){const e=this.transitional||T.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(t&&i["a"].isString(t)&&(n&&!this.responseType||r)){const n=e&&e.silentJSONParsing,i=!n&&r;try{return JSON.parse(t)}catch(o){if(i){if("SyntaxError"===o.name)throw p["a"].from(o,p["a"].ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:_.classes.FormData,Blob:_.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i["a"].forEach(["delete","get","head"],(function(t){T.headers[t]={}})),i["a"].forEach(["post","put","patch"],(function(t){T.headers[t]=i["a"].merge(I)}));var C=T;const E=i["a"].toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var D=t=>{const e={};let n,i,r;return t&&t.split("\n").forEach((function(t){r=t.indexOf(":"),n=t.substring(0,r).trim().toLowerCase(),i=t.substring(r+1).trim(),!n||e[n]&&E[n]||("set-cookie"===n?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)})),e};const L=Symbol("internals");function R(t){return t&&String(t).trim().toLowerCase()}function j(t){return!1===t||null==t?t:i["a"].isArray(t)?t.map(j):String(t)}function P(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;while(i=n.exec(t))e[i[1]]=i[2];return e}const N=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function B(t,e,n,r,o){return i["a"].isFunction(r)?r.call(this,e,n):(o&&(e=n),i["a"].isString(e)?i["a"].isString(r)?-1!==e.indexOf(r):i["a"].isRegExp(r)?r.test(e):void 0:void 0)}function z(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,e,n)=>e.toUpperCase()+n)}function F(t,e){const n=i["a"].toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(t,n,r){return this[i].call(this,e,t,n,r)},configurable:!0})})}class V{constructor(t){t&&this.set(t)}set(t,e,n){const r=this;function o(t,e,n){const o=R(e);if(!o)throw new Error("header name must be a non-empty string");const a=i["a"].findKey(r,o);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||e]=j(t))}const a=(t,e)=>i["a"].forEach(t,(t,n)=>o(t,n,e));return i["a"].isPlainObject(t)||t instanceof this.constructor?a(t,e):i["a"].isString(t)&&(t=t.trim())&&!N(t)?a(D(t),e):null!=t&&o(e,t,n),this}get(t,e){if(t=R(t),t){const n=i["a"].findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return P(t);if(i["a"].isFunction(e))return e.call(this,t,n);if(i["a"].isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=R(t),t){const n=i["a"].findKey(this,t);return!(!n||void 0===this[n]||e&&!B(this,this[n],n,e))}return!1}delete(t,e){const n=this;let r=!1;function o(t){if(t=R(t),t){const o=i["a"].findKey(n,t);!o||e&&!B(n,n[o],o,e)||(delete n[o],r=!0)}}return i["a"].isArray(t)?t.forEach(o):o(t),r}clear(t){const e=Object.keys(this);let n=e.length,i=!1;while(n--){const r=e[n];t&&!B(this,this[r],r,t,!0)||(delete this[r],i=!0)}return i}normalize(t){const e=this,n={};return i["a"].forEach(this,(r,o)=>{const a=i["a"].findKey(n,o);if(a)return e[a]=j(r),void delete e[o];const s=t?z(o):String(o).trim();s!==o&&delete e[o],e[s]=j(r),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return i["a"].forEach(this,(n,r)=>{null!=n&&!1!==n&&(e[r]=t&&i["a"].isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(t=>n.set(t)),n}static accessor(t){const e=this[L]=this[L]={accessors:{}},n=e.accessors,r=this.prototype;function o(t){const e=R(t);n[e]||(F(r,t),n[e]=!0)}return i["a"].isArray(t)?t.forEach(o):o(t),this}}V.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),i["a"].freezeMethods(V.prototype),i["a"].freezeMethods(V);var H=V;function G(t,e){const n=this||C,r=e||n,o=H.from(r.headers);let a=r.data;return i["a"].forEach(t,(function(t){a=t.call(n,a,o.normalize(),e?e.status:void 0)})),o.normalize(),a}function U(t){return!(!t||!t.__CANCEL__)}function W(t,e,n){p["a"].call(this,null==t?"canceled":t,p["a"].ERR_CANCELED,e,n),this.name="CanceledError"}i["a"].inherits(W,p["a"],{__CANCEL__:!0});var q=W,Z=n("4581");function Y(t,e,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(new p["a"]("Request failed with status code "+n.status,[p["a"].ERR_BAD_REQUEST,p["a"].ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}var X=_.isStandardBrowserEnv?function(){return{write:function(t,e,n,r,o,a){const s=[];s.push(t+"="+encodeURIComponent(e)),i["a"].isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i["a"].isString(r)&&s.push("path="+r),i["a"].isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function $(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function K(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}function J(t,e){return t&&!$(e)?K(t,e):e}var Q=_.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function r(n){let i=n;return t&&(e.setAttribute("href",i),i=e.href),e.setAttribute("href",i),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=r(window.location.href),function(t){const e=i["a"].isString(t)?r(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return function(){return!0}}();function tt(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function et(t,e){t=t||10;const n=new Array(t),i=new Array(t);let r,o=0,a=0;return e=void 0!==e?e:1e3,function(s){const u=Date.now(),l=i[a];r||(r=u),n[o]=s,i[o]=u;let h=a,c=0;while(h!==o)c+=n[h++],h%=t;if(o=(o+1)%t,o===a&&(a=(a+1)%t),u-r{const o=r.loaded,a=r.lengthComputable?r.total:void 0,s=o-n,u=i(s),l=o<=a;n=o;const h={loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&l?(a-o)/u:void 0,event:r};h[e?"download":"upload"]=!0,t(h)}}const rt="undefined"!==typeof XMLHttpRequest;var ot=rt&&function(t){return new Promise((function(e,n){let r=t.data;const o=H.from(t.headers).normalize(),a=t.responseType;let s;function u(){t.cancelToken&&t.cancelToken.unsubscribe(s),t.signal&&t.signal.removeEventListener("abort",s)}i["a"].isFormData(r)&&(_.isStandardBrowserEnv||_.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.setContentType("multipart/form-data;",!1));let l=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",n=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.set("Authorization","Basic "+btoa(e+":"+n))}const h=J(t.baseURL,t.url);function f(){if(!l)return;const i=H.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders()),r=a&&"text"!==a&&"json"!==a?l.response:l.responseText,o={data:r,status:l.status,statusText:l.statusText,headers:i,config:t,request:l};Y((function(t){e(t),u()}),(function(t){n(t),u()}),o),l=null}if(l.open(t.method.toUpperCase(),c(h,t.params,t.paramsSerializer),!0),l.timeout=t.timeout,"onloadend"in l?l.onloadend=f:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(f)},l.onabort=function(){l&&(n(new p["a"]("Request aborted",p["a"].ECONNABORTED,t,l)),l=null)},l.onerror=function(){n(new p["a"]("Network Error",p["a"].ERR_NETWORK,t,l)),l=null},l.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const i=t.transitional||g;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new p["a"](e,i.clarifyTimeoutError?p["a"].ETIMEDOUT:p["a"].ECONNABORTED,t,l)),l=null},_.isStandardBrowserEnv){const e=(t.withCredentials||Q(h))&&t.xsrfCookieName&&X.read(t.xsrfCookieName);e&&o.set(t.xsrfHeaderName,e)}void 0===r&&o.setContentType(null),"setRequestHeader"in l&&i["a"].forEach(o.toJSON(),(function(t,e){l.setRequestHeader(e,t)})),i["a"].isUndefined(t.withCredentials)||(l.withCredentials=!!t.withCredentials),a&&"json"!==a&&(l.responseType=t.responseType),"function"===typeof t.onDownloadProgress&&l.addEventListener("progress",it(t.onDownloadProgress,!0)),"function"===typeof t.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",it(t.onUploadProgress)),(t.cancelToken||t.signal)&&(s=e=>{l&&(n(!e||e.type?new q(null,t,l):e),l.abort(),l=null)},t.cancelToken&&t.cancelToken.subscribe(s),t.signal&&(t.signal.aborted?s():t.signal.addEventListener("abort",s)));const d=tt(h);d&&-1===_.protocols.indexOf(d)?n(new p["a"]("Unsupported protocol "+d+":",p["a"].ERR_BAD_REQUEST,t)):l.send(r||null)}))};const at={http:Z["a"],xhr:ot};i["a"].forEach(at,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var st={getAdapter:t=>{t=i["a"].isArray(t)?t:[t];const{length:e}=t;let n,r;for(let o=0;ot instanceof H?t.toJSON():t;function ct(t,e){e=e||{};const n={};function r(t,e,n){return i["a"].isPlainObject(t)&&i["a"].isPlainObject(e)?i["a"].merge.call({caseless:n},t,e):i["a"].isPlainObject(e)?i["a"].merge({},e):i["a"].isArray(e)?e.slice():e}function o(t,e,n){return i["a"].isUndefined(e)?i["a"].isUndefined(t)?void 0:r(void 0,t,n):r(t,e,n)}function a(t,e){if(!i["a"].isUndefined(e))return r(void 0,e)}function s(t,e){return i["a"].isUndefined(e)?i["a"].isUndefined(t)?void 0:r(void 0,t):r(void 0,e)}function u(n,i,o){return o in e?r(n,i):o in t?r(void 0,n):void 0}const l={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:u,headers:(t,e)=>o(ht(t),ht(e),!0)};return i["a"].forEach(Object.keys(Object.assign({},t,e)),(function(r){const a=l[r]||o,s=a(t[r],e[r],r);i["a"].isUndefined(s)&&a!==u||(n[r]=s)})),n}const ft="1.4.0",dt={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{dt[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const pt={};function gt(t,e,n){if("object"!==typeof t)throw new p["a"]("options must be an object",p["a"].ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let r=i.length;while(r-- >0){const o=i[r],a=e[o];if(a){const e=t[o],n=void 0===e||a(e,o,t);if(!0!==n)throw new p["a"]("option "+o+" must be "+n,p["a"].ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new p["a"]("Unknown option "+o,p["a"].ERR_BAD_OPTION)}}dt.transitional=function(t,e,n){function i(t,e){return"[Axios v"+ft+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,r,o)=>{if(!1===t)throw new p["a"](i(r," has been removed"+(e?" in "+e:"")),p["a"].ERR_DEPRECATED);return e&&!pt[r]&&(pt[r]=!0,console.warn(i(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,o)}};var mt={assertOptions:gt,validators:dt};const vt=mt.validators;class yt{constructor(t){this.defaults=t,this.interceptors={request:new d,response:new d}}request(t,e){"string"===typeof t?(e=e||{},e.url=t):e=t||{},e=ct(this.defaults,e);const{transitional:n,paramsSerializer:r,headers:o}=e;let a;void 0!==n&&mt.assertOptions(n,{silentJSONParsing:vt.transitional(vt.boolean),forcedJSONParsing:vt.transitional(vt.boolean),clarifyTimeoutError:vt.transitional(vt.boolean)},!1),null!=r&&(i["a"].isFunction(r)?e.paramsSerializer={serialize:r}:mt.assertOptions(r,{encode:vt.function,serialize:vt.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase(),a=o&&i["a"].merge(o.common,o[e.method]),a&&i["a"].forEach(["delete","get","head","post","put","patch","common"],t=>{delete o[t]}),e.headers=H.concat(a,o);const s=[];let u=!0;this.interceptors.request.forEach((function(t){"function"===typeof t.runWhen&&!1===t.runWhen(e)||(u=u&&t.synchronous,s.unshift(t.fulfilled,t.rejected))}));const l=[];let h;this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)}));let c,f=0;if(!u){const t=[lt.bind(this),void 0];t.unshift.apply(t,s),t.push.apply(t,l),c=t.length,h=Promise.resolve(e);while(f{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0)n._listeners[e](t);n._listeners=null}),this.promise.then=t=>{let e;const i=new Promise(t=>{n.subscribe(t),e=t}).then(t);return i.cancel=function(){n.unsubscribe(e)},i},t((function(t,i,r){n.reason||(n.reason=new q(t,i,r),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;const e=new wt((function(e){t=e}));return{token:e,cancel:t}}}var _t=wt;function xt(t){return function(e){return t.apply(null,e)}}function Mt(t){return i["a"].isObject(t)&&!0===t.isAxiosError}const St={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(St).forEach(([t,e])=>{St[e]=t});var Ot=St;function At(t){const e=new bt(t),n=Object(r["a"])(bt.prototype.request,e);return i["a"].extend(n,bt.prototype,e,{allOwnKeys:!0}),i["a"].extend(n,e,null,{allOwnKeys:!0}),n.create=function(e){return At(ct(t,e))},n}const It=At(C);It.Axios=bt,It.CanceledError=q,It.CancelToken=_t,It.isCancel=U,It.VERSION=ft,It.toFormData=o["a"],It.AxiosError=p["a"],It.Cancel=It.CanceledError,It.all=function(t){return Promise.all(t)},It.spread=xt,It.isAxiosError=Mt,It.mergeConfig=ct,It.AxiosHeaders=H,It.formToJSON=t=>A(i["a"].isHTMLForm(t)?new FormData(t):t),It.HttpStatusCode=Ot,It.default=It;e["a"]=It},cf35:function(t,e,n){"use strict";(function(e,i){var r;t.exports=T,T.ReadableState=k;n("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=n("f12a"),s=n("1c35").Buffer,u=("undefined"!==typeof e?e:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function l(t){return s.from(t)}function h(t){return s.isBuffer(t)||t instanceof u}var c,f=n(8);c=f&&f.debuglog?f.debuglog("stream"):function(){};var d,p,g,m=n("22ab"),v=n("9019"),y=n("05f0"),b=y.getHighWaterMark,w=n("d113").codes,_=w.ERR_INVALID_ARG_TYPE,x=w.ERR_STREAM_PUSH_AFTER_EOF,M=w.ERR_METHOD_NOT_IMPLEMENTED,S=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n("3fb5")(T,a);var O=v.errorOrDestroy,A=["error","close","destroy","pause","resume"];function I(t,e,n){if("function"===typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}function k(t,e,i){r=r||n("5e7d"),t=t||{},"boolean"!==typeof i&&(i=e instanceof r),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=b(this,t,"readableHighWaterMark",i),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=n("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function T(t){if(r=r||n("5e7d"),!(this instanceof T))return new T(t);var e=this instanceof r;this._readableState=new k(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function C(t,e,n,i,r){c("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,P(t,a);else if(r||(o=D(a,e)),o)O(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=l(e)),i)a.endEmitted?O(t,new S):E(t,a,e,!0);else if(a.ended)O(t,new x);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!n?(e=a.decoder.write(e),a.objectMode||0!==e.length?E(t,a,e,!1):z(t,a)):E(t,a,e,!1)}else i||(a.reading=!1,z(t,a));return!a.ended&&(a.length=L?t=L:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function j(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function P(t,e){if(c("onEofChunk"),!e.ended){if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,e.sync?N(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,B(t)))}}function N(t){var e=t._readableState;c("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(c("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(B,t))}function B(t){var e=t._readableState;c("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,q(t)}function z(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(F,t,e))}function F(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function G(t){c("readable nexttick read 0"),t.read(0)}function U(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(W,t,e))}function W(t,e){c("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),q(t),e.flowing&&!e.reading&&t.read(0)}function q(t){var e=t._readableState;c("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?n=e.buffer.shift():!t||t>=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):n=e.buffer.consume(t,e.decoder),n);var n}function Y(t){var e=t._readableState;c("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(X,e,t))}function X(t,e){if(c("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var n=e._writableState;(!n||n.autoDestroy&&n.finished)&&e.destroy()}}function $(t,e){for(var n=0,i=t.length;n=e.highWaterMark:e.length>0)||e.ended))return c("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Y(this):N(this),null;if(t=j(t,e),0===t&&e.ended)return 0===e.length&&Y(this),null;var i,r=e.needReadable;return c("need readable",r),(0===e.length||e.length-t0?Z(t,e):null,null===i?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&Y(this)),null!==i&&this.emit("data",i),i},T.prototype._read=function(t){O(this,new M("_read()"))},T.prototype.pipe=function(t,e){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=t;break;case 1:r.pipes=[r.pipes,t];break;default:r.pipes.push(t);break}r.pipesCount+=1,c("pipe count=%d opts=%j",r.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,s=a?l:y;function u(t,e){c("onunpipe"),t===n&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function l(){c("onend"),t.end()}r.endEmitted?i.nextTick(s):n.once("end",s),t.on("unpipe",u);var h=V(n);t.on("drain",h);var f=!1;function d(){c("cleanup"),t.removeListener("close",m),t.removeListener("finish",v),t.removeListener("drain",h),t.removeListener("error",g),t.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",y),n.removeListener("data",p),f=!0,!r.awaitDrain||t._writableState&&!t._writableState.needDrain||h()}function p(e){c("ondata");var i=t.write(e);c("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===t||r.pipesCount>1&&-1!==$(r.pipes,t))&&!f&&(c("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function g(e){c("onerror",e),y(),t.removeListener("error",g),0===o(t,"error")&&O(t,e)}function m(){t.removeListener("finish",v),y()}function v(){c("onfinish"),t.removeListener("close",m),y()}function y(){c("unpipe"),n.unpipe(t)}return n.on("data",p),I(t,"error",g),t.once("close",m),t.once("finish",v),t.emit("pipe",n),r.flowing||(c("pipe resume"),n.resume()),t},T.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,n)),this;if(!t){var i=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==r.flowing&&this.resume()):"readable"===t&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,c("on readable",r.length,r.reading),r.length?N(this):r.reading||i.nextTick(G,this))),n},T.prototype.addListener=T.prototype.on,T.prototype.removeListener=function(t,e){var n=a.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(H,this),n},T.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(H,this),e},T.prototype.resume=function(){var t=this._readableState;return t.flowing||(c("resume"),t.flowing=!t.readableListening,U(this,t)),t.paused=!1,this},T.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},T.prototype.wrap=function(t){var e=this,n=this._readableState,i=!1;for(var r in t.on("end",(function(){if(c("wrapped end"),n.decoder&&!n.ended){var t=n.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(r){if(c("wrapped data"),n.decoder&&(r=n.decoder.write(r)),(!n.objectMode||null!==r&&void 0!==r)&&(n.objectMode||r&&r.length)){var o=e.push(r);o||(i=!0,t.pause())}})),t)void 0===this[r]&&"function"===typeof t[r]&&(this[r]=function(e){return function(){return t[e].apply(t,arguments)}}(r));for(var o=0;o>6],r=0===(32&n);if(31===(31&n)){let i=n;n=0;while(128===(128&i)){if(i=t.readUInt8(e),t.isError(i))return i;n<<=7,n|=127&i}}else n&=31;const o=s.tag[n];return{cls:i,primitive:r,tag:n,tagStr:o}}function c(t,e,n){let i=t.readUInt8(n);if(t.isError(i))return i;if(!e&&128===i)return null;if(0===(128&i))return i;const r=127&i;if(r>4)return t.error("length octect is too long");i=0;for(let o=0;o=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(t,e,n){var i=s(t,n);return n-1>=e&&(i|=s(t,n-1)<<4),i}function l(t,e,n,i){for(var r=0,o=Math.min(t.length,n),a=e;a=49?s-49+10:s>=17?s-17+10:s}return r}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"===typeof t)return this._initNumber(t,e,n);if("object"===typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var r=0;"-"===t[0]&&(r++,this.negative=1),r=0;r-=3)a=t[r]|t[r-1]<<8|t[r-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,n){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var i=0;i=e;i-=2)r=u(t,e,i)<=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8;else{var s=t.length-e;for(i=s%2===0?e+1:e;i=18?(o-=18,a+=1,this.words[a]|=r>>>26):o+=8}this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=e)i++;i--,r=r/e|0;for(var o=t.length-n,a=o%i,s=Math.min(o,o-a)+n,u=0,h=n;h1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t){for(var e=new Array(t.bitLength()),n=0;n>>r}return e}function p(t,e,n){n.negative=e.negative^t.negative;var i=t.length+e.length|0;n.length=i,i=i-1|0;var r=0|t.words[0],o=0|e.words[0],a=r*o,s=67108863&a,u=a/67108864|0;n.words[0]=s;for(var l=1;l>>26,c=67108863&u,f=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=f;d++){var p=l-d|0;r=0|t.words[p],o=0|e.words[d],a=r*o+c,h+=a/67108864|0,c=67108863&a}n.words[l]=0|c,u=0|h}return 0!==u?n.words[l]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var r=0,o=0,a=0;a>>24-r&16777215,n=0!==o||a!==this.length-1?h[6-u.length]+u+n:u+n,r+=2,r>=26&&(r-=26,a--)}0!==o&&(n=o.toString(16)+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=c[t],d=f[t];n="";var p=this.clone();p.negative=0;while(!p.isZero()){var g=p.modn(d).toString(t);p=p.idivn(d),n=p.isZero()?g+n:h[l-g.length]+g+n}this.isZero()&&(n="0"+n);while(n.length%e!==0)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,l=new t(o),h=this.clone();if(u){for(s=0;!h.isZero();s++)a=h.andln(255),h.iushrn(8),l[s]=a;for(;s=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0===(8191&e)&&(n+=13,e>>>=13),0===(127&e)&&(n+=7,e>>>=7),0===(15&e)&&(n+=4,e>>>=4),0===(3&e)&&(n+=2,e>>>=2),0===(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;nt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var n=t/26|0,r=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(n=this,i=t):(n=t,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,i,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=t):(n=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,g=d>>>13,m=0|a[2],v=8191&m,y=m>>>13,b=0|a[3],w=8191&b,_=b>>>13,x=0|a[4],M=8191&x,S=x>>>13,O=0|a[5],A=8191&O,I=O>>>13,k=0|a[6],T=8191&k,C=k>>>13,E=0|a[7],D=8191&E,L=E>>>13,R=0|a[8],j=8191&R,P=R>>>13,N=0|a[9],B=8191&N,z=N>>>13,F=0|s[0],V=8191&F,H=F>>>13,G=0|s[1],U=8191&G,W=G>>>13,q=0|s[2],Z=8191&q,Y=q>>>13,X=0|s[3],$=8191&X,K=X>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,it=et>>>13,rt=0|s[6],ot=8191&rt,at=rt>>>13,st=0|s[7],ut=8191&st,lt=st>>>13,ht=0|s[8],ct=8191&ht,ft=ht>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19,i=Math.imul(c,V),r=Math.imul(c,H),r=r+Math.imul(f,V)|0,o=Math.imul(f,H);var mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,i=Math.imul(p,V),r=Math.imul(p,H),r=r+Math.imul(g,V)|0,o=Math.imul(g,H),i=i+Math.imul(c,U)|0,r=r+Math.imul(c,W)|0,r=r+Math.imul(f,U)|0,o=o+Math.imul(f,W)|0;var vt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,V),r=Math.imul(v,H),r=r+Math.imul(y,V)|0,o=Math.imul(y,H),i=i+Math.imul(p,U)|0,r=r+Math.imul(p,W)|0,r=r+Math.imul(g,U)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(c,Z)|0,r=r+Math.imul(c,Y)|0,r=r+Math.imul(f,Z)|0,o=o+Math.imul(f,Y)|0;var yt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(w,V),r=Math.imul(w,H),r=r+Math.imul(_,V)|0,o=Math.imul(_,H),i=i+Math.imul(v,U)|0,r=r+Math.imul(v,W)|0,r=r+Math.imul(y,U)|0,o=o+Math.imul(y,W)|0,i=i+Math.imul(p,Z)|0,r=r+Math.imul(p,Y)|0,r=r+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(c,$)|0,r=r+Math.imul(c,K)|0,r=r+Math.imul(f,$)|0,o=o+Math.imul(f,K)|0;var bt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(M,V),r=Math.imul(M,H),r=r+Math.imul(S,V)|0,o=Math.imul(S,H),i=i+Math.imul(w,U)|0,r=r+Math.imul(w,W)|0,r=r+Math.imul(_,U)|0,o=o+Math.imul(_,W)|0,i=i+Math.imul(v,Z)|0,r=r+Math.imul(v,Y)|0,r=r+Math.imul(y,Z)|0,o=o+Math.imul(y,Y)|0,i=i+Math.imul(p,$)|0,r=r+Math.imul(p,K)|0,r=r+Math.imul(g,$)|0,o=o+Math.imul(g,K)|0,i=i+Math.imul(c,Q)|0,r=r+Math.imul(c,tt)|0,r=r+Math.imul(f,Q)|0,o=o+Math.imul(f,tt)|0;var wt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(A,V),r=Math.imul(A,H),r=r+Math.imul(I,V)|0,o=Math.imul(I,H),i=i+Math.imul(M,U)|0,r=r+Math.imul(M,W)|0,r=r+Math.imul(S,U)|0,o=o+Math.imul(S,W)|0,i=i+Math.imul(w,Z)|0,r=r+Math.imul(w,Y)|0,r=r+Math.imul(_,Z)|0,o=o+Math.imul(_,Y)|0,i=i+Math.imul(v,$)|0,r=r+Math.imul(v,K)|0,r=r+Math.imul(y,$)|0,o=o+Math.imul(y,K)|0,i=i+Math.imul(p,Q)|0,r=r+Math.imul(p,tt)|0,r=r+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(c,nt)|0,r=r+Math.imul(c,it)|0,r=r+Math.imul(f,nt)|0,o=o+Math.imul(f,it)|0;var _t=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(T,V),r=Math.imul(T,H),r=r+Math.imul(C,V)|0,o=Math.imul(C,H),i=i+Math.imul(A,U)|0,r=r+Math.imul(A,W)|0,r=r+Math.imul(I,U)|0,o=o+Math.imul(I,W)|0,i=i+Math.imul(M,Z)|0,r=r+Math.imul(M,Y)|0,r=r+Math.imul(S,Z)|0,o=o+Math.imul(S,Y)|0,i=i+Math.imul(w,$)|0,r=r+Math.imul(w,K)|0,r=r+Math.imul(_,$)|0,o=o+Math.imul(_,K)|0,i=i+Math.imul(v,Q)|0,r=r+Math.imul(v,tt)|0,r=r+Math.imul(y,Q)|0,o=o+Math.imul(y,tt)|0,i=i+Math.imul(p,nt)|0,r=r+Math.imul(p,it)|0,r=r+Math.imul(g,nt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(c,ot)|0,r=r+Math.imul(c,at)|0,r=r+Math.imul(f,ot)|0,o=o+Math.imul(f,at)|0;var xt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(D,V),r=Math.imul(D,H),r=r+Math.imul(L,V)|0,o=Math.imul(L,H),i=i+Math.imul(T,U)|0,r=r+Math.imul(T,W)|0,r=r+Math.imul(C,U)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul(A,Z)|0,r=r+Math.imul(A,Y)|0,r=r+Math.imul(I,Z)|0,o=o+Math.imul(I,Y)|0,i=i+Math.imul(M,$)|0,r=r+Math.imul(M,K)|0,r=r+Math.imul(S,$)|0,o=o+Math.imul(S,K)|0,i=i+Math.imul(w,Q)|0,r=r+Math.imul(w,tt)|0,r=r+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,i=i+Math.imul(v,nt)|0,r=r+Math.imul(v,it)|0,r=r+Math.imul(y,nt)|0,o=o+Math.imul(y,it)|0,i=i+Math.imul(p,ot)|0,r=r+Math.imul(p,at)|0,r=r+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(c,ut)|0,r=r+Math.imul(c,lt)|0,r=r+Math.imul(f,ut)|0,o=o+Math.imul(f,lt)|0;var Mt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul(j,V),r=Math.imul(j,H),r=r+Math.imul(P,V)|0,o=Math.imul(P,H),i=i+Math.imul(D,U)|0,r=r+Math.imul(D,W)|0,r=r+Math.imul(L,U)|0,o=o+Math.imul(L,W)|0,i=i+Math.imul(T,Z)|0,r=r+Math.imul(T,Y)|0,r=r+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul(A,$)|0,r=r+Math.imul(A,K)|0,r=r+Math.imul(I,$)|0,o=o+Math.imul(I,K)|0,i=i+Math.imul(M,Q)|0,r=r+Math.imul(M,tt)|0,r=r+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,i=i+Math.imul(w,nt)|0,r=r+Math.imul(w,it)|0,r=r+Math.imul(_,nt)|0,o=o+Math.imul(_,it)|0,i=i+Math.imul(v,ot)|0,r=r+Math.imul(v,at)|0,r=r+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,i=i+Math.imul(p,ut)|0,r=r+Math.imul(p,lt)|0,r=r+Math.imul(g,ut)|0,o=o+Math.imul(g,lt)|0,i=i+Math.imul(c,ct)|0,r=r+Math.imul(c,ft)|0,r=r+Math.imul(f,ct)|0,o=o+Math.imul(f,ft)|0;var St=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(B,V),r=Math.imul(B,H),r=r+Math.imul(z,V)|0,o=Math.imul(z,H),i=i+Math.imul(j,U)|0,r=r+Math.imul(j,W)|0,r=r+Math.imul(P,U)|0,o=o+Math.imul(P,W)|0,i=i+Math.imul(D,Z)|0,r=r+Math.imul(D,Y)|0,r=r+Math.imul(L,Z)|0,o=o+Math.imul(L,Y)|0,i=i+Math.imul(T,$)|0,r=r+Math.imul(T,K)|0,r=r+Math.imul(C,$)|0,o=o+Math.imul(C,K)|0,i=i+Math.imul(A,Q)|0,r=r+Math.imul(A,tt)|0,r=r+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,i=i+Math.imul(M,nt)|0,r=r+Math.imul(M,it)|0,r=r+Math.imul(S,nt)|0,o=o+Math.imul(S,it)|0,i=i+Math.imul(w,ot)|0,r=r+Math.imul(w,at)|0,r=r+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,i=i+Math.imul(v,ut)|0,r=r+Math.imul(v,lt)|0,r=r+Math.imul(y,ut)|0,o=o+Math.imul(y,lt)|0,i=i+Math.imul(p,ct)|0,r=r+Math.imul(p,ft)|0,r=r+Math.imul(g,ct)|0,o=o+Math.imul(g,ft)|0,i=i+Math.imul(c,pt)|0,r=r+Math.imul(c,gt)|0,r=r+Math.imul(f,pt)|0,o=o+Math.imul(f,gt)|0;var Ot=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(B,U),r=Math.imul(B,W),r=r+Math.imul(z,U)|0,o=Math.imul(z,W),i=i+Math.imul(j,Z)|0,r=r+Math.imul(j,Y)|0,r=r+Math.imul(P,Z)|0,o=o+Math.imul(P,Y)|0,i=i+Math.imul(D,$)|0,r=r+Math.imul(D,K)|0,r=r+Math.imul(L,$)|0,o=o+Math.imul(L,K)|0,i=i+Math.imul(T,Q)|0,r=r+Math.imul(T,tt)|0,r=r+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul(A,nt)|0,r=r+Math.imul(A,it)|0,r=r+Math.imul(I,nt)|0,o=o+Math.imul(I,it)|0,i=i+Math.imul(M,ot)|0,r=r+Math.imul(M,at)|0,r=r+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,i=i+Math.imul(w,ut)|0,r=r+Math.imul(w,lt)|0,r=r+Math.imul(_,ut)|0,o=o+Math.imul(_,lt)|0,i=i+Math.imul(v,ct)|0,r=r+Math.imul(v,ft)|0,r=r+Math.imul(y,ct)|0,o=o+Math.imul(y,ft)|0,i=i+Math.imul(p,pt)|0,r=r+Math.imul(p,gt)|0,r=r+Math.imul(g,pt)|0,o=o+Math.imul(g,gt)|0;var At=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(B,Z),r=Math.imul(B,Y),r=r+Math.imul(z,Z)|0,o=Math.imul(z,Y),i=i+Math.imul(j,$)|0,r=r+Math.imul(j,K)|0,r=r+Math.imul(P,$)|0,o=o+Math.imul(P,K)|0,i=i+Math.imul(D,Q)|0,r=r+Math.imul(D,tt)|0,r=r+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,i=i+Math.imul(T,nt)|0,r=r+Math.imul(T,it)|0,r=r+Math.imul(C,nt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul(A,ot)|0,r=r+Math.imul(A,at)|0,r=r+Math.imul(I,ot)|0,o=o+Math.imul(I,at)|0,i=i+Math.imul(M,ut)|0,r=r+Math.imul(M,lt)|0,r=r+Math.imul(S,ut)|0,o=o+Math.imul(S,lt)|0,i=i+Math.imul(w,ct)|0,r=r+Math.imul(w,ft)|0,r=r+Math.imul(_,ct)|0,o=o+Math.imul(_,ft)|0,i=i+Math.imul(v,pt)|0,r=r+Math.imul(v,gt)|0,r=r+Math.imul(y,pt)|0,o=o+Math.imul(y,gt)|0;var It=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(B,$),r=Math.imul(B,K),r=r+Math.imul(z,$)|0,o=Math.imul(z,K),i=i+Math.imul(j,Q)|0,r=r+Math.imul(j,tt)|0,r=r+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,i=i+Math.imul(D,nt)|0,r=r+Math.imul(D,it)|0,r=r+Math.imul(L,nt)|0,o=o+Math.imul(L,it)|0,i=i+Math.imul(T,ot)|0,r=r+Math.imul(T,at)|0,r=r+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul(A,ut)|0,r=r+Math.imul(A,lt)|0,r=r+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,i=i+Math.imul(M,ct)|0,r=r+Math.imul(M,ft)|0,r=r+Math.imul(S,ct)|0,o=o+Math.imul(S,ft)|0,i=i+Math.imul(w,pt)|0,r=r+Math.imul(w,gt)|0,r=r+Math.imul(_,pt)|0,o=o+Math.imul(_,gt)|0;var kt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(B,Q),r=Math.imul(B,tt),r=r+Math.imul(z,Q)|0,o=Math.imul(z,tt),i=i+Math.imul(j,nt)|0,r=r+Math.imul(j,it)|0,r=r+Math.imul(P,nt)|0,o=o+Math.imul(P,it)|0,i=i+Math.imul(D,ot)|0,r=r+Math.imul(D,at)|0,r=r+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,i=i+Math.imul(T,ut)|0,r=r+Math.imul(T,lt)|0,r=r+Math.imul(C,ut)|0,o=o+Math.imul(C,lt)|0,i=i+Math.imul(A,ct)|0,r=r+Math.imul(A,ft)|0,r=r+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0,i=i+Math.imul(M,pt)|0,r=r+Math.imul(M,gt)|0,r=r+Math.imul(S,pt)|0,o=o+Math.imul(S,gt)|0;var Tt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(B,nt),r=Math.imul(B,it),r=r+Math.imul(z,nt)|0,o=Math.imul(z,it),i=i+Math.imul(j,ot)|0,r=r+Math.imul(j,at)|0,r=r+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,i=i+Math.imul(D,ut)|0,r=r+Math.imul(D,lt)|0,r=r+Math.imul(L,ut)|0,o=o+Math.imul(L,lt)|0,i=i+Math.imul(T,ct)|0,r=r+Math.imul(T,ft)|0,r=r+Math.imul(C,ct)|0,o=o+Math.imul(C,ft)|0,i=i+Math.imul(A,pt)|0,r=r+Math.imul(A,gt)|0,r=r+Math.imul(I,pt)|0,o=o+Math.imul(I,gt)|0;var Ct=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(B,ot),r=Math.imul(B,at),r=r+Math.imul(z,ot)|0,o=Math.imul(z,at),i=i+Math.imul(j,ut)|0,r=r+Math.imul(j,lt)|0,r=r+Math.imul(P,ut)|0,o=o+Math.imul(P,lt)|0,i=i+Math.imul(D,ct)|0,r=r+Math.imul(D,ft)|0,r=r+Math.imul(L,ct)|0,o=o+Math.imul(L,ft)|0,i=i+Math.imul(T,pt)|0,r=r+Math.imul(T,gt)|0,r=r+Math.imul(C,pt)|0,o=o+Math.imul(C,gt)|0;var Et=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(B,ut),r=Math.imul(B,lt),r=r+Math.imul(z,ut)|0,o=Math.imul(z,lt),i=i+Math.imul(j,ct)|0,r=r+Math.imul(j,ft)|0,r=r+Math.imul(P,ct)|0,o=o+Math.imul(P,ft)|0,i=i+Math.imul(D,pt)|0,r=r+Math.imul(D,gt)|0,r=r+Math.imul(L,pt)|0,o=o+Math.imul(L,gt)|0;var Dt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,i=Math.imul(B,ct),r=Math.imul(B,ft),r=r+Math.imul(z,ct)|0,o=Math.imul(z,ft),i=i+Math.imul(j,pt)|0,r=r+Math.imul(j,gt)|0,r=r+Math.imul(P,pt)|0,o=o+Math.imul(P,gt)|0;var Lt=(l+i|0)+((8191&r)<<13)|0;l=(o+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,i=Math.imul(B,pt),r=Math.imul(B,gt),r=r+Math.imul(z,pt)|0,o=Math.imul(z,gt);var Rt=(l+i|0)+((8191&r)<<13)|0;return l=(o+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=vt,u[2]=yt,u[3]=bt,u[4]=wt,u[5]=_t,u[6]=xt,u[7]=Mt,u[8]=St,u[9]=Ot,u[10]=At,u[11]=It,u[12]=kt,u[13]=Tt,u[14]=Ct,u[15]=Et,u[16]=Dt,u[17]=Lt,u[18]=Rt,0!==l&&(u[19]=l,n.length++),n};function m(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var i=0,r=0,o=0;o>>26)|0,r+=a>>>26,a&=67108863}n.words[o]=s,i=a,a=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}function v(t,e,n){var i=new y;return i.mulp(t,e,n)}function y(t,e){this.x=t,this.y=e}Math.imul||(g=p),o.prototype.mulTo=function(t,e){var n,i=this.length+t.length;return n=10===this.length&&10===t.length?g(this,t,e):i<63?p(this,t,e):i<1024?m(this,t,e):v(this,t,e),n},y.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,i=0;i>=1;return i},y.prototype.permute=function(t,e,n,i,r,o){for(var a=0;a>>=1)r++;return 1<>>=13,n[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=r/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=d(t);if(0===e.length)return new o(1);for(var n=this,i=0;i=0);var e,n=t%26,r=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(e=0;e>>26-n}a&&(this.words[e]=a,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,l=0;l=0&&(0!==h||l>=r);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&s}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return i(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,n=(t-e)/26,r=1<=0);var e=t%26,n=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var r=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=this.length-t.length,i=this.clone(),r=t,a=0|r.words[r.length-1],s=this._countBits(a);n=26-s,0!==n&&(r=r.ushln(n),i.iushln(n),a=0|r.words[r.length-1]);var u,l=i.length-r.length;if("mod"!==e){u=new o(null),u.length=l+1,u.words=new Array(u.length);for(var h=0;h=0;f--){var d=67108864*(0|i.words[r.length+f])+(0|i.words[r.length+f-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(r,d,f);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(r,1,f),i.isZero()||(i.negative^=1);u&&(u.words[f]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==n&&i.iushrn(n),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,n){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(r=s.div.neg()),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(t)),{div:r,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(r=s.div.neg()),{div:r,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),r=t.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,n=0,r=this.length-1;r>=0;r--)n=(e*n+(0|this.words[r]))%t;return n},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*e;this.words[n]=r/t|0,e=r%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r=new o(1),a=new o(0),s=new o(0),u=new o(1),l=0;while(e.isEven()&&n.isEven())e.iushrn(1),n.iushrn(1),++l;var h=n.clone(),c=e.clone();while(!e.isZero()){for(var f=0,d=1;0===(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0){e.iushrn(f);while(f-- >0)(r.isOdd()||a.isOdd())&&(r.iadd(h),a.isub(c)),r.iushrn(1),a.iushrn(1)}for(var p=0,g=1;0===(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0){n.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(h),u.isub(c)),s.iushrn(1),u.iushrn(1)}e.cmp(n)>=0?(e.isub(n),r.isub(s),a.isub(u)):(n.isub(e),s.isub(r),u.isub(a))}return{a:s,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();var r,a=new o(1),s=new o(0),u=n.clone();while(e.cmpn(1)>0&&n.cmpn(1)>0){for(var l=0,h=1;0===(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0){e.iushrn(l);while(l-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var c=0,f=1;0===(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0){n.iushrn(c);while(c-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(n)>=0?(e.isub(n),a.isub(s)):(n.isub(e),s.isub(a))}return r=0===e.cmpn(1)?a:s,r.cmpn(0)<0&&r.iadd(t),r},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var i=0;e.isEven()&&n.isEven();i++)e.iushrn(1),n.iushrn(1);do{while(e.isEven())e.iushrn(1);while(n.isEven())n.iushrn(1);var r=e.cmp(n);if(r<0){var o=e;e=n,n=o}else if(0===r||0===n.cmpn(1))break;e.isub(n)}while(1);return n.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,n=(t-e)/26,r=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),i(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|t.words[n];if(i!==r){ir&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new O(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var b={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){O.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),n=this.imulK(n),n=n.iadd(this.tmp),e=n.bitLength()}while(e>this.n);var i=e0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(_,w),_.prototype.split=function(t,e){for(var n=4194303,i=Math.min(t.length,9),r=0;r>>22,o=a}o>>>=22,t.words[r-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n>>=26,t.words[n]=r,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(b[t])return b[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new x;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return b[t]=e,e},O.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},O.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},O.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},O.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},O.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},O.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},O.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},O.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},O.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},O.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},O.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},O.prototype.isqr=function(t){return this.imul(t,t.clone())},O.prototype.sqr=function(t){return this.mul(t,t)},O.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}var r=this.m.subn(1),a=0;while(!r.isZero()&&0===r.andln(1))a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),u=s.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();h=new o(2*h*h).toRed(this);while(0!==this.pow(h,l).cmp(u))h.redIAdd(u);var c=this.pow(h,r),f=this.pow(t,r.addn(1).iushrn(1)),d=this.pow(t,r),p=a;while(0!==d.cmp(s)){for(var g=d,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m=0;r--){for(var h=e.words[r],c=l-1;c>=0;c--){var f=h>>c&1;a!==i[0]&&(a=this.sqr(a)),0!==f||0!==s?(s<<=1,s|=f,u++,(u===n||0===r&&0===c)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}l=26}return a},O.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},O.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},r(A,O),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),a=r;return r.cmp(this.m)>=0?a=r.isub(this.m):r.cmpn(0)<0&&(a=r.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,n("7ebd")(t))},d113:function(t,e,n){"use strict";function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var r={};function o(t,e,n){function o(t,n,i){return"string"===typeof e?e:e(t,n,i)}n||(n=Error);var a=function(t){function e(e,n,i){return t.call(this,o(e,n,i))||this}return i(e,t),e}(n);a.prototype.name=n.name,a.prototype.code=t,r[t]=a}function a(t,e){if(Array.isArray(t)){var n=t.length;return t=t.map((function(t){return String(t)})),n>2?"one of ".concat(e," ").concat(t.slice(0,n-1).join(", "),", or ")+t[n-1]:2===n?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,n){return t.substr(!n||n<0?0:+n,e.length)===e}function u(t,e,n){return(void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}function l(t,e,n){return"number"!==typeof n&&(n=0),!(n+e.length>t.length)&&-1!==t.indexOf(e,n)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,n){var i,r;if("string"===typeof e&&s(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be",u(t," argument"))r="The ".concat(t," ").concat(i," ").concat(a(e,"type"));else{var o=l(t,".")?"property":"argument";r='The "'.concat(t,'" ').concat(o," ").concat(i," ").concat(a(e,"type"))}return r+=". Received type ".concat(typeof n),r}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=r},d16a:function(t,e,n){var i=n("fc5e"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},d17b:function(t,e,n){t.exports=n("e372").Transform},d1c8:function(t,e,n){"use strict";const i=n("3fb5");function r(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.Reporter=r,r.prototype.isError=function(t){return t instanceof o},r.prototype.save=function(){const t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},r.prototype.restore=function(t){const e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},r.prototype.enterKey=function(t){return this._reporterState.path.push(t)},r.prototype.exitKey=function(t){const e=this._reporterState;e.path=e.path.slice(0,t-1)},r.prototype.leaveKey=function(t,e,n){const i=this._reporterState;this.exitKey(t),null!==i.obj&&(i.obj[e]=n)},r.prototype.path=function(){return this._reporterState.path.join("/")},r.prototype.enterObject=function(){const t=this._reporterState,e=t.obj;return t.obj={},e},r.prototype.leaveObject=function(t){const e=this._reporterState,n=e.obj;return e.obj=t,n},r.prototype.error=function(t){let e;const n=this._reporterState,i=t instanceof o;if(e=i?t:new o(n.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!n.options.partial)throw e;return i||n.errors.push(e),e},r.prototype.wrapResult=function(t){const e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},i(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},d1e7:function(t,e,n){"use strict";var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!i.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:i},d256:function(t,e,n){var i=n("da84");t.exports=i.Promise},d28b:function(t,e,n){var i=n("e065");i("iterator")},d2bb:function(t,e,n){var i=n("7282"),r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=i(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(a){}return function(n,i){return r(n),o(i),e?t(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var i=n("00ee"),r=n("cb2d"),o=n("b041");i||r(Object.prototype,"toString",o,{unsafe:!0})},d424:function(t,e,n){"use strict";var i=n("3fb5"),r=n("8707").Buffer,o=n("6430"),a=r.alloc(128),s=64;function u(t,e){o.call(this,"digest"),"string"===typeof e&&(e=r.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length=this._maxSize&&a>0){var u=n.head;n.remove(u),delete r[u.key],o=u.value,this._lastRemovedEntry=u}s?s.value=e:s=new i(e),s.key=t,n.insertEntry(s),r[t]=s}return o},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}();e["a"]=o},d58f:function(t,e,n){var i=n("59ed"),r=n("7b0b"),o=n("44ad"),a=n("07fa"),s=TypeError,u=function(t){return function(e,n,u,l){i(n);var h=r(e),c=o(h),f=a(h),d=t?f-1:0,p=t?-1:1;if(u<2)while(1){if(d in c){l=c[d],d+=p;break}if(d+=p,t?d<0:f<=d)throw s("Reduce of empty array with no initial value")}for(;t?d>=0:f>d;d+=p)d in c&&(l=n(l,c[d],d,h));return l}};t.exports={left:u(!1),right:u(!0)}},d6d6:function(t,e){var n=TypeError;t.exports=function(t,e){if(t1?arguments[1]:void 0)}})},d86b:function(t,e,n){var i=n("d039");t.exports=i((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},d9b5:function(t,e,n){var i=n("d066"),r=n("1626"),o=n("3a9b"),a=n("fdbf"),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return r(e)&&o(e.prototype,s(t))}},d9e2:function(t,e,n){var i=n("23e7"),r=n("da84"),o=n("2ba4"),a=n("e5cb"),s="WebAssembly",u=r[s],l=7!==Error("e",{cause:7}).cause,h=function(t,e){var n={};n[t]=a(t,e,l),i({global:!0,constructor:!0,arity:1,forced:l},n)},c=function(t,e){if(u&&u[t]){var n={};n[t]=a(s+"."+t,e,l),i({target:s,stat:!0,constructor:!0,arity:1,forced:l},n)}};h("Error",(function(t){return function(e){return o(t,this,arguments)}})),h("EvalError",(function(t){return function(e){return o(t,this,arguments)}})),h("RangeError",(function(t){return function(e){return o(t,this,arguments)}})),h("ReferenceError",(function(t){return function(e){return o(t,this,arguments)}})),h("SyntaxError",(function(t){return function(e){return o(t,this,arguments)}})),h("TypeError",(function(t){return function(e){return o(t,this,arguments)}})),h("URIError",(function(t){return function(e){return o(t,this,arguments)}})),c("CompileError",(function(t){return function(e){return o(t,this,arguments)}})),c("LinkError",(function(t){return function(e){return o(t,this,arguments)}})),c("RuntimeError",(function(t){return function(e){return o(t,this,arguments)}}))},d9f5:function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),o=n("c65b"),a=n("e330"),s=n("c430"),u=n("83ab"),l=n("04f8"),h=n("d039"),c=n("1a2d"),f=n("3a9b"),d=n("825a"),p=n("fc6a"),g=n("a04b"),m=n("577e"),v=n("5c6c"),y=n("7c73"),b=n("df75"),w=n("241c"),_=n("057f"),x=n("7418"),M=n("06cf"),S=n("9bf2"),O=n("37e8"),A=n("d1e7"),I=n("cb2d"),k=n("edd0"),T=n("5692"),C=n("f772"),E=n("d012"),D=n("90e3"),L=n("b622"),R=n("e538"),j=n("e065"),P=n("57b9"),N=n("d44e"),B=n("69f3"),z=n("b727").forEach,F=C("hidden"),V="Symbol",H="prototype",G=B.set,U=B.getterFor(V),W=Object[H],q=r.Symbol,Z=q&&q[H],Y=r.TypeError,X=r.QObject,$=M.f,K=S.f,J=_.f,Q=A.f,tt=a([].push),et=T("symbols"),nt=T("op-symbols"),it=T("wks"),rt=!X||!X[H]||!X[H].findChild,ot=u&&h((function(){return 7!=y(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(t,e,n){var i=$(W,e);i&&delete W[e],K(t,e,n),i&&t!==W&&K(W,e,i)}:K,at=function(t,e){var n=et[t]=y(Z);return G(n,{type:V,tag:t,description:e}),u||(n.description=e),n},st=function(t,e,n){t===W&&st(nt,e,n),d(t);var i=g(e);return d(n),c(et,i)?(n.enumerable?(c(t,F)&&t[F][i]&&(t[F][i]=!1),n=y(n,{enumerable:v(0,!1)})):(c(t,F)||K(t,F,v(1,{})),t[F][i]=!0),ot(t,i,n)):K(t,i,n)},ut=function(t,e){d(t);var n=p(e),i=b(n).concat(dt(n));return z(i,(function(e){u&&!o(ht,n,e)||st(t,e,n[e])})),t},lt=function(t,e){return void 0===e?y(t):ut(y(t),e)},ht=function(t){var e=g(t),n=o(Q,this,e);return!(this===W&&c(et,e)&&!c(nt,e))&&(!(n||!c(this,e)||!c(et,e)||c(this,F)&&this[F][e])||n)},ct=function(t,e){var n=p(t),i=g(e);if(n!==W||!c(et,i)||c(nt,i)){var r=$(n,i);return!r||!c(et,i)||c(n,F)&&n[F][i]||(r.enumerable=!0),r}},ft=function(t){var e=J(p(t)),n=[];return z(e,(function(t){c(et,t)||c(E,t)||tt(n,t)})),n},dt=function(t){var e=t===W,n=J(e?nt:p(t)),i=[];return z(n,(function(t){!c(et,t)||e&&!c(W,t)||tt(i,et[t])})),i};l||(q=function(){if(f(Z,this))throw Y("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?m(arguments[0]):void 0,e=D(t),n=function(t){this===W&&o(n,nt,t),c(this,F)&&c(this[F],e)&&(this[F][e]=!1),ot(this,e,v(1,t))};return u&&rt&&ot(W,e,{configurable:!0,set:n}),at(e,t)},Z=q[H],I(Z,"toString",(function(){return U(this).tag})),I(q,"withoutSetter",(function(t){return at(D(t),t)})),A.f=ht,S.f=st,O.f=ut,M.f=ct,w.f=_.f=ft,x.f=dt,R.f=function(t){return at(L(t),t)},u&&(k(Z,"description",{configurable:!0,get:function(){return U(this).description}}),s||I(W,"propertyIsEnumerable",ht,{unsafe:!0}))),i({global:!0,constructor:!0,wrap:!0,forced:!l,sham:!l},{Symbol:q}),z(b(it),(function(t){j(t)})),i({target:V,stat:!0,forced:!l},{useSetter:function(){rt=!0},useSimple:function(){rt=!1}}),i({target:"Object",stat:!0,forced:!l,sham:!u},{create:lt,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:ct}),i({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:ft}),P(),N(q,V),E[F]=!0},da3e:function(t,e){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=n,n.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)}},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||this||Function("return this")()}).call(this,n("24aa"))},dbb4:function(t,e,n){var i=n("23e7"),r=n("83ab"),o=n("56ef"),a=n("fc6a"),s=n("06cf"),u=n("8418");i({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(t){var e,n,i=a(t),r=s.f,l=o(i),h={},c=0;while(l.length>c)n=r(i,e=l[c++]),void 0!==n&&u(h,e,n);return h}})},dc14:function(t,e,n){"use strict";(function(e,i){var r=n("966d");function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){P(e,t)}}t.exports=b;var a,s=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?setImmediate:r.nextTick;b.WritableState=y;var u=Object.create(n("3a7c"));u.inherits=n("3fb5");var l={deprecate:n("b7d1")},h=n("429b"),c=n("a8f0").Buffer,f=("undefined"!==typeof i?i:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function d(t){return c.from(t)}function p(t){return c.isBuffer(t)||t instanceof f}var g,m=n("4681");function v(){}function y(t,e){a=a||n("b19a"),t=t||{};var i=e instanceof a;this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var r=t.highWaterMark,s=t.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i&&(s||0===s)?s:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===t.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){I(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function b(t){if(a=a||n("b19a"),!g.call(b,this)&&!(this instanceof a))return new b(t);this._writableState=new y(t,this),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),h.call(this)}function w(t,e){var n=new Error("write after end");t.emit("error",n),r.nextTick(e,n)}function _(t,e,n,i){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"===typeof n||void 0===n||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),r.nextTick(i,a),o=!1),o}function x(t,e,n){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=c.from(e,n)),e}function M(t,e,n,i,r,o){if(!n){var a=x(e,i,r);i!==a&&(n=!0,r="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(t,e,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(t,e,n){var i=this._writableState;"function"===typeof t?(n=t,t=null,e=null):"function"===typeof e&&(n=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||j(this,i,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),b.prototype.destroy=m.destroy,b.prototype._undestroy=m.undestroy,b.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,n("4362"),n("24aa"))},dc4a:function(t,e,n){var i=n("59ed"),r=n("7234");t.exports=function(t,e){var n=t[e];return r(n)?void 0:i(n)}},dcc3:function(t,e,n){"use strict";var i=n("ae93").IteratorPrototype,r=n("7c73"),o=n("5c6c"),a=n("d44e"),s=n("3f8c"),u=function(){return this};t.exports=function(t,e,n,l){var h=e+" Iterator";return t.prototype=r(i,{next:o(+!l,n)}),a(t,h,!1,!0),s[h]=u,t}},ddb0:function(t,e,n){var i=n("da84"),r=n("fdbc"),o=n("785a"),a=n("e260"),s=n("9112"),u=n("b622"),l=u("iterator"),h=u("toStringTag"),c=a.values,f=function(t,e){if(t){if(t[l]!==c)try{s(t,l,c)}catch(i){t[l]=c}if(t[h]||s(t,h,e),r[e])for(var n in a)if(t[n]!==a[n])try{s(t,n,a[n])}catch(i){t[n]=a[n]}}};for(var d in r)f(i[d]&&i[d].prototype,d);f(o,"DOMTokenList")},df75:function(t,e,n){var i=n("ca84"),r=n("7839");t.exports=Object.keys||function(t){return i(t,r)}},df7c:function(t,e,n){(function(t){function n(t,e){for(var n=0,i=t.length-1;i>=0;i--){var r=t[i];"."===r?t.splice(i,1):".."===r?(t.splice(i,1),n++):n&&(t.splice(i,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function i(t){"string"!==typeof t&&(t+="");var e,n=0,i=-1,r=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!r){n=e+1;break}}else-1===i&&(r=!1,i=e+1);return-1===i?"":t.slice(n,i)}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],i=0;i=-1&&!i;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,i="/"===a.charAt(0))}return e=n(r(e.split("/"),(function(t){return!!t})),!i).join("/"),(i?"/":"")+e||"."},e.normalize=function(t){var i=e.isAbsolute(t),a="/"===o(t,-1);return t=n(r(t.split("/"),(function(t){return!!t})),!i).join("/"),t||i||(t="."),t&&a&&(t+="/"),(i?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,n){function i(t){for(var e=0;e=0;n--)if(""!==t[n])break;return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var r=i(t.split("/")),o=i(n.split("/")),a=Math.min(r.length,o.length),s=a,u=0;u=1;--o)if(e=t.charCodeAt(o),47===e){if(!r){i=o;break}}else r=!1;return-1===i?n?"/":".":n&&1===i?"/":t.slice(0,i)},e.basename=function(t,e){var n=i(t);return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,n=0,i=-1,r=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===i&&(r=!1,i=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!r){n=a+1;break}}return-1===e||-1===i||0===o||1===o&&e===i-1&&e===n+1?"":t.slice(e,i)};var o="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)}}).call(this,n("4362"))},dfe5:function(t,e){},e017:function(t,e,n){(function(e){(function(e,n){t.exports=n()})(0,(function(){"use strict";var t=function(t){var e=t.id,n=t.viewBox,i=t.content;this.id=e,this.viewBox=n,this.content=i};t.prototype.stringify=function(){return this.content},t.prototype.toString=function(){return this.stringify()},t.prototype.destroy=function(){var t=this;["id","viewBox","content"].forEach((function(e){return delete t[e]}))};var n=function(t){var e=!!document.importNode,n=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement;return e?document.importNode(n,!0):n};"undefined"!==typeof window?window:"undefined"!==typeof e||"undefined"!==typeof self&&self;function i(t,e){return e={exports:{}},t(e,e.exports),e.exports}var r=i((function(t,e){(function(e,n){t.exports=n()})(0,(function(){function t(t){var e=t&&"object"===typeof t;return e&&"[object RegExp]"!==Object.prototype.toString.call(t)&&"[object Date]"!==Object.prototype.toString.call(t)}function e(t){return Array.isArray(t)?[]:{}}function n(n,i){var r=i&&!0===i.clone;return r&&t(n)?o(e(n),n,i):n}function i(e,i,r){var a=e.slice();return i.forEach((function(i,s){"undefined"===typeof a[s]?a[s]=n(i,r):t(i)?a[s]=o(e[s],i,r):-1===e.indexOf(i)&&a.push(n(i,r))})),a}function r(e,i,r){var a={};return t(e)&&Object.keys(e).forEach((function(t){a[t]=n(e[t],r)})),Object.keys(i).forEach((function(s){t(i[s])&&e[s]?a[s]=o(e[s],i[s],r):a[s]=n(i[s],r)})),a}function o(t,e,o){var a=Array.isArray(e),s=o||{arrayMerge:i},u=s.arrayMerge||i;return a?Array.isArray(t)?u(t,e,o):n(e,o):r(t,e,o)}return o.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,n){return o(t,n,e)}))},o}))})),o=i((function(t,e){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};e.default=n,t.exports=e.default})),a=function(t){return Object.keys(t).map((function(e){var n=t[e].toString().replace(/"/g,""");return e+'="'+n+'"'})).join(" ")},s=o.svg,u=o.xlink,l={};l[s.name]=s.uri,l[u.name]=u.uri;var h=function(t,e){void 0===t&&(t="");var n=r(l,e||{}),i=a(n);return""+t+""},c=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={isMounted:{}};return i.isMounted.get=function(){return!!this.node},e.createFromExistingNode=function(t){return new e({id:t.getAttribute("id"),viewBox:t.getAttribute("viewBox"),content:t.outerHTML})},e.prototype.destroy=function(){this.isMounted&&this.unmount(),t.prototype.destroy.call(this)},e.prototype.mount=function(t){if(this.isMounted)return this.node;var e="string"===typeof t?document.querySelector(t):t,n=this.render();return this.node=n,e.appendChild(n),n},e.prototype.render=function(){var t=this.stringify();return n(h(t)).childNodes[0]},e.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(e.prototype,i),e}(t);return c}))}).call(this,n("24aa"))},e01a:function(t,e,n){"use strict";var i=n("23e7"),r=n("83ab"),o=n("da84"),a=n("e330"),s=n("1a2d"),u=n("1626"),l=n("3a9b"),h=n("577e"),c=n("edd0"),f=n("e893"),d=o.Symbol,p=d&&d.prototype;if(r&&u(d)&&(!("description"in p)||void 0!==d().description)){var g={},m=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:h(arguments[0]),e=l(p,this)?new d(t):void 0===t?d():d(t);return""===t&&(g[e]=!0),e};f(m,d),m.prototype=p,p.constructor=m;var v="Symbol(test)"==String(d("test")),y=a(p.valueOf),b=a(p.toString),w=/^Symbol\((.*)\)[^)]+$/,_=a("".replace),x=a("".slice);c(p,"description",{configurable:!0,get:function(){var t=y(this);if(s(g,t))return"";var e=b(t),n=v?x(e,7,-1):_(e,w,"$1");return""===n?void 0:n}}),i({global:!0,constructor:!0,forced:!0},{Symbol:m})}},e065:function(t,e,n){var i=n("428f"),r=n("1a2d"),o=n("e538"),a=n("9bf2").f;t.exports=function(t){var e=i.Symbol||(i.Symbol={});r(e,t)||a(e,t,{value:o.f(t)})}},e07b:function(t,e,n){var i=n("5a76"),r=n("b5ca"),o=n("69f2"),a=n("8707").Buffer,s=n("7d2a"),u=n("9f9d"),l=n("8be6"),h=a.alloc(128),c={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(t,e,n){var i=d(t),r="sha512"===t||"sha384"===t?128:64;e.length>r?e=i(e):e.length=e.length?(t.target=void 0,l(void 0,!0)):l("keys"==n?i:"values"==n?e[i]:[i,e[i]],!1)}),"values");var g=o.Arguments=o.Array;if(r("keys"),r("values"),r("entries"),!h&&c&&"values"!==g.name)try{s(g,"name",{value:"values"})}catch(m){}},e267:function(t,e,n){var i=n("e330"),r=n("e8b5"),o=n("1626"),a=n("c6b6"),s=n("577e"),u=i([].push);t.exports=function(t){if(o(t))return t;if(r(t)){for(var e=t.length,n=[],i=0;iy&&f(i,arguments[y]),i}));if(S.prototype=x,"Error"!==w?s?s(S,M):u(S,M,{name:!0}):p&&v in _&&(l(S,_,v),l(S,_,"prepareStackTrace")),u(S,_),!g)try{x.name!==w&&o(x,"name",w),x.constructor=S}catch(O){}return S}}},e666:function(t,e,n){"use strict";(function(e){var i=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=l;var r=n("4250"),o=n("19ea");n("3fb5")(l,r);for(var a=i(o.prototype),s=0;s0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var n=t._getDoubles(),i=o(e,1,this._bitLength),r=(1<=a;h--)u=(u<<1)+i[h];l.push(u)}for(var c=this.jpoint(null,null,null),f=this.jpoint(null,null,null),d=r;d>0;d--){for(a=0;a=0;l--){for(var h=0;l>=0&&0===a[l];l--)h++;if(l>=0&&h++,u=u.dblp(h),l<0)break;var c=a[l];s(0!==c),u="affine"===t.type?c>0?u.mixedAdd(r[c-1>>1]):u.mixedAdd(r[-c-1>>1].neg()):c>0?u.add(r[c-1>>1]):u.add(r[-c-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,n,i,r){var s,u,l,h=this._wnafT1,c=this._wnafT2,f=this._wnafT3,d=0;for(s=0;s=1;s-=2){var g=s-1,m=s;if(1===h[g]&&1===h[m]){var v=[e[g],null,null,e[m]];0===e[g].y.cmp(e[m].y)?(v[1]=e[g].add(e[m]),v[2]=e[g].toJ().mixedAdd(e[m].neg())):0===e[g].y.cmp(e[m].y.redNeg())?(v[1]=e[g].toJ().mixedAdd(e[m]),v[2]=e[g].add(e[m].neg())):(v[1]=e[g].toJ().mixedAdd(e[m]),v[2]=e[g].toJ().mixedAdd(e[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],b=a(n[g],n[m]);for(d=Math.max(b[0].length,d),f[g]=new Array(d),f[m]=new Array(d),u=0;u=0;s--){var S=0;while(s>=0){var O=!0;for(u=0;u=0&&S++,x=x.dblp(S),s<0)break;for(u=0;u0?l=c[u][A-1>>1]:A<0&&(l=c[u][-A-1>>1].neg()),x="affine"===l.type?x.mixedAdd(l):x.add(l))}}for(s=0;s=Math.ceil((t.bitLength()+1)/e.step)},l.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],i=this,r=0;r=this._delta8){t=this.pending;var n=t.length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=i.join32(t,0,t.length-n,this.endian);for(var r=0;r>>24&255,i[r++]=t>>>16&255,i[r++]=t>>>8&255,i[r++]=255&t}else for(i[r++]=255&t,i[r++]=t>>>8&255,i[r++]=t>>>16&255,i[r++]=t>>>24&255,i[r++]=0,i[r++]=0,i[r++]=0,i[r++]=0,o=8;o(r>>1)-1?(r>>1)-u:u,o.isubn(s)):s=0,i[a]=s,o.iushrn(1)}return i}function u(t,e){var n=[[],[]];t=t.clone(),e=e.clone();var i,r=0,o=0;while(t.cmpn(-r)>0||e.cmpn(-o)>0){var a,s,u=t.andln(3)+r&3,l=e.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),0===(1&u)?a=0:(i=t.andln(7)+r&7,a=3!==i&&5!==i||2!==l?u:-u),n[0].push(a),0===(1&l)?s=0:(i=e.andln(7)+o&7,s=3!==i&&5!==i||2!==u?l:-l),n[1].push(s),2*r===a+1&&(r=1-r),2*o===s+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return n}function l(t,e,n){var i="_"+e;t.prototype[e]=function(){return void 0!==this[i]?this[i]:this[i]=n.call(this)}}function h(t){return"string"===typeof t?i.toArray(t,"hex"):t}function c(t){return new r(t,"hex","le")}i.assert=o,i.toArray=a.toArray,i.zero2=a.zero2,i.toHex=a.toHex,i.encode=a.encode,i.getNAF=s,i.getJSF=u,i.cachedProperty=l,i.parseBytes=h,i.intFromLE=c},f460:function(t,e,n){var i=n("98e6"),r=n("8707").Buffer;function o(t){var e=r.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){var n,a=r.alloc(0),s=0;while(a.length>>32-e}function l(t,e,n,i,r,o,a){return u(t+(e&n|~e&i)+r+o|0,a)+e|0}function h(t,e,n,i,r,o,a){return u(t+(e&i|n&~i)+r+o|0,a)+e|0}function c(t,e,n,i,r,o,a){return u(t+(e^n^i)+r+o|0,a)+e|0}function f(t,e,n,i,r,o,a){return u(t+(n^(e|~i))+r+o|0,a)+e|0}i(s,r),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var n=this._a,i=this._b,r=this._c,o=this._d;n=l(n,i,r,o,t[0],3614090360,7),o=l(o,n,i,r,t[1],3905402710,12),r=l(r,o,n,i,t[2],606105819,17),i=l(i,r,o,n,t[3],3250441966,22),n=l(n,i,r,o,t[4],4118548399,7),o=l(o,n,i,r,t[5],1200080426,12),r=l(r,o,n,i,t[6],2821735955,17),i=l(i,r,o,n,t[7],4249261313,22),n=l(n,i,r,o,t[8],1770035416,7),o=l(o,n,i,r,t[9],2336552879,12),r=l(r,o,n,i,t[10],4294925233,17),i=l(i,r,o,n,t[11],2304563134,22),n=l(n,i,r,o,t[12],1804603682,7),o=l(o,n,i,r,t[13],4254626195,12),r=l(r,o,n,i,t[14],2792965006,17),i=l(i,r,o,n,t[15],1236535329,22),n=h(n,i,r,o,t[1],4129170786,5),o=h(o,n,i,r,t[6],3225465664,9),r=h(r,o,n,i,t[11],643717713,14),i=h(i,r,o,n,t[0],3921069994,20),n=h(n,i,r,o,t[5],3593408605,5),o=h(o,n,i,r,t[10],38016083,9),r=h(r,o,n,i,t[15],3634488961,14),i=h(i,r,o,n,t[4],3889429448,20),n=h(n,i,r,o,t[9],568446438,5),o=h(o,n,i,r,t[14],3275163606,9),r=h(r,o,n,i,t[3],4107603335,14),i=h(i,r,o,n,t[8],1163531501,20),n=h(n,i,r,o,t[13],2850285829,5),o=h(o,n,i,r,t[2],4243563512,9),r=h(r,o,n,i,t[7],1735328473,14),i=h(i,r,o,n,t[12],2368359562,20),n=c(n,i,r,o,t[5],4294588738,4),o=c(o,n,i,r,t[8],2272392833,11),r=c(r,o,n,i,t[11],1839030562,16),i=c(i,r,o,n,t[14],4259657740,23),n=c(n,i,r,o,t[1],2763975236,4),o=c(o,n,i,r,t[4],1272893353,11),r=c(r,o,n,i,t[7],4139469664,16),i=c(i,r,o,n,t[10],3200236656,23),n=c(n,i,r,o,t[13],681279174,4),o=c(o,n,i,r,t[0],3936430074,11),r=c(r,o,n,i,t[3],3572445317,16),i=c(i,r,o,n,t[6],76029189,23),n=c(n,i,r,o,t[9],3654602809,4),o=c(o,n,i,r,t[12],3873151461,11),r=c(r,o,n,i,t[15],530742520,16),i=c(i,r,o,n,t[2],3299628645,23),n=f(n,i,r,o,t[0],4096336452,6),o=f(o,n,i,r,t[7],1126891415,10),r=f(r,o,n,i,t[14],2878612391,15),i=f(i,r,o,n,t[5],4237533241,21),n=f(n,i,r,o,t[12],1700485571,6),o=f(o,n,i,r,t[3],2399980690,10),r=f(r,o,n,i,t[10],4293915773,15),i=f(i,r,o,n,t[1],2240044497,21),n=f(n,i,r,o,t[8],1873313359,6),o=f(o,n,i,r,t[15],4264355552,10),r=f(r,o,n,i,t[6],2734768916,15),i=f(i,r,o,n,t[13],1309151649,21),n=f(n,i,r,o,t[4],4149444226,6),o=f(o,n,i,r,t[11],3174756917,10),r=f(r,o,n,i,t[2],718787259,15),i=f(i,r,o,n,t[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+i|0,this._c=this._c+r|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},f5df:function(t,e,n){var i=n("00ee"),r=n("1626"),o=n("c6b6"),a=n("b622"),s=a("toStringTag"),u=Object,l="Arguments"==o(function(){return arguments}()),h=function(t,e){try{return t[e]}catch(n){}};t.exports=i?o:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=h(e=u(t),s))?n:l?o(e):"Object"==(i=o(e))&&r(e.callee)?"Arguments":i}},f5df1:function(t,e,n){},f772:function(t,e,n){var i=n("5692"),r=n("90e3"),o=i("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},f83c:function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},f893:function(t,e,n){t.exports={default:n("8119"),__esModule:!0}},faa1:function(t,e,n){"use strict";var i,r="object"===typeof Reflect?Reflect:null,o=r&&"function"===typeof r.apply?r.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};function a(t){console&&console.warn&&console.warn(t)}i=r&&"function"===typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,t.exports.once=w,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var l=10;function h(t){if("function"!==typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function c(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function f(t,e,n,i){var r,o,s;if(h(n),o=t._events,void 0===o?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),s=o[e]),void 0===s)s=o[e]=n,++t._eventsCount;else if("function"===typeof s?s=o[e]=i?[n,s]:[s,n]:i?s.unshift(n):s.push(n),r=c(t),r>0&&s.length>r&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,a(u)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,n){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},r=d.bind(i);return r.listener=n,i.wrapFn=r,r}function g(t,e,n){var i=t._events;if(void 0===i)return[];var r=i[e];return void 0===r?[]:"function"===typeof r?n?[r.listener||r]:[r]:n?b(r):v(r,r.length)}function m(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"===typeof n)return 1;if(void 0!==n)return n.length}return 0}function v(t,e){for(var n=new Array(e),i=0;i0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=r[t];if(void 0===u)return!1;if("function"===typeof u)o(u,this,e);else{var l=u.length,h=v(u,l);for(n=0;n=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,r=o;break}if(r<0)return this;0===r?n.shift():y(n,r),1===n.length&&(i[t]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",t,a||e)}return this},u.prototype.off=u.prototype.removeListener,u.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,void 0===n)return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var r,o=Object.keys(n);for(i=0;i=0;i--)this.removeListener(t,e[i]);return this},u.prototype.listeners=function(t){return g(this,t,!0)},u.prototype.rawListeners=function(t){return g(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},u.prototype.listenerCount=m,u.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},faf5:function(t,e,n){t.exports=!n("0bad")&&!n("4b8b")((function(){return 7!=Object.defineProperty(n("05f5")("div"),"a",{get:function(){return 7}}).a}))},fb6a:function(t,e,n){"use strict";var i=n("23e7"),r=n("e8b5"),o=n("68ee"),a=n("861d"),s=n("23cb"),u=n("07fa"),l=n("fc6a"),h=n("8418"),c=n("b622"),f=n("1dde"),d=n("f36a"),p=f("slice"),g=c("species"),m=Array,v=Math.max;i({target:"Array",proto:!0,forced:!p},{slice:function(t,e){var n,i,c,f=l(this),p=u(f),y=s(t,p),b=s(void 0===e?p:e,p);if(r(f)&&(n=f.constructor,o(n)&&(n===m||r(n.prototype))?n=void 0:a(n)&&(n=n[g],null===n&&(n=void 0)),n===m||void 0===n))return d(f,y,b);for(i=new(void 0===n?m:n)(v(b-y,0)),c=0;y0;return h(t,a,s,(function(t){i||(i=t),t&&o.forEach(c),a||(o.forEach(c),r(i))}))}));return e.reduce(f)}t.exports=p},fc5e:function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},fc6a:function(t,e,n){var i=n("44ad"),r=n("1d80");t.exports=function(t){return i(r(t))}},fcd4:function(t,e,n){e.f=n("cc15")},fce3:function(t,e,n){var i=n("d039"),r=n("da84"),o=r.RegExp;t.exports=i((function(){var t=o(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)}))},fda6:function(t,e,n){var i=n("8947"),r=n("4228"),o=n("e85f");function a(){return Object.keys(o)}e.createCipher=e.Cipher=i.createCipher,e.createCipheriv=e.Cipheriv=i.createCipheriv,e.createDecipher=e.Decipher=r.createDecipher,e.createDecipheriv=e.Decipheriv=r.createDecipheriv,e.listCiphers=e.getCiphers=a},fdac:function(t,e,n){var i;function r(t){this.rand=t}if(t.exports=function(t){return i||(i=new r(null)),i.generate(t)},t.exports.Rand=r,r.prototype.generate=function(t){return this._rand(t)},r.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),n=0;n Date: Tue, 23 May 2023 23:22:08 +0800 Subject: [PATCH 34/58] Refactor the code to build the kernel layer (#1322) --- .../core/util/ThreadPoolPropertyKey.java | 9 +- .../adapter-plugins/pom.xml | 20 ++ .../{ => mode/config}/apollo-plugin/pom.xml | 4 +- .../apollo/boot/ApolloPluginBootService.java | 0 .../apollo/define/ApolloInstrumentation.java | 0 .../DefaultConfigConstructorInterceptor.java | 0 .../cn.hippo4j.agent.core.boot.BootService | 0 .../src/main/resources/hippo4j-plugin.def | 0 .../hippo4j-agent-plugin/mode/config/pom.xml | 18 ++ agent/hippo4j-agent-plugin/mode/pom.xml | 18 ++ agent/hippo4j-agent-plugin/pom.xml | 5 +- .../spring-plugins/pom.xml | 10 +- .../pom.xml | 6 +- ...ynamicThreadPoolChangeHandlerSpring1x.java | 19 +- ...tPublishingRunListenerInstrumentation.java | 0 .../EventPublishingFinishedInterceptor.java | 0 .../src/main/resources/hippo4j-plugin.def | 0 .../pom.xml | 9 +- ...ynamicThreadPoolChangeHandlerSpring2x.java | 15 +- ...tPublishingRunListenerInstrumentation.java | 0 .../EventPublishingStartedInterceptor.java | 3 +- .../src/main/resources/hippo4j-plugin.def | 0 .../spring-plugin-common/pom.xml | 24 +- ...tDynamicThreadPoolChangeHandlerSpring.java | 226 +++--------------- .../SpringThreadPoolRegisterSupport.java | 45 ++-- .../pom.xml | 2 +- .../ThreadPoolExecutorInstrumentation.java | 0 ...lExecutorConstructorMethodInterceptor.java | 4 +- .../src/main/resources/hippo4j-plugin.def | 0 .../executor/ThreadPoolExecutorHolder.java | 27 +-- .../executor/ThreadPoolInstanceRegistry.java | 36 ++- .../support/RejectedPolicyTypeEnum.java | 1 - .../design/AbstractSubjectCenter.java | 7 +- .../api/BootstrapPropertiesInterface.java | 14 -- .../dynamic/api/ThreadPoolDynamicRefresh.java | 10 + kernel/dynamic/core/pom.xml | 13 + .../manage/GlobalConfigThreadPoolManage.java | 5 +- .../manage/GlobalThreadPoolManage.java | 70 ++++++ kernel/dynamic/mode/config/pom.xml | 5 + .../mode/config/parser/YamlConfigParser.java | 4 + .../AdapterExecutorProperties.java | 2 +- .../BootstrapConfigProperties.java | 9 +- .../config/properties}/MonitorProperties.java | 10 +- .../properties}/NotifyPlatformProperties.java | 2 +- .../properties}/WebExecutorProperties.java | 2 +- ...bstractConfigThreadPoolDynamicRefresh.java | 5 +- .../DynamicThreadPoolRefreshListener.java | 113 +++++++++ .../ConfigHandlerAutoConfiguration.java | 4 +- ...otstrapConfigPropertiesBinderAdapter.java} | 4 +- .../config/ConfigHandlerConfiguration.java | 3 +- .../DynamicThreadPoolAutoConfiguration.java | 3 +- .../SpringBootstrapConfigProperties.java} | 15 +- .../monitor/ThreadPoolMonitorExecutor.java | 4 +- .../notify/ConfigModeNotifyConfigBuilder.java | 6 +- .../starter/parser/ConfigFileTypeEnum.java | 72 ------ .../starter/parser/ConfigParser.java | 52 ---- .../starter/parser/ConfigParserHandler.java | 63 ----- .../parser/PropertiesConfigParser.java | 44 ---- .../starter/parser/YamlConfigParser.java | 48 ---- ...bstractConfigThreadPoolDynamicRefresh.java | 4 +- .../refresher/ApolloRefresherHandler.java | 2 +- ...otstrapConfigPropertiesBinderAdapter.java} | 4 +- .../refresher/EtcdRefresherHandler.java | 2 +- .../refresher/NacosCloudRefresherHandler.java | 2 +- .../refresher/NacosRefresherHandler.java | 2 +- .../refresher/ZookeeperRefresherHandler.java | 2 +- .../AdapterExecutorsRefreshListener.java | 2 +- .../DynamicThreadPoolRefreshListener.java | 12 +- .../Hippo4jConfigDynamicRefreshEvent.java | 2 +- .../event/PlatformsRefreshListener.java | 2 +- .../event/WebExecutorRefreshListener.java | 4 +- .../DynamicThreadPoolAdapterRegister.java | 4 +- .../DynamicThreadPoolConfigService.java | 3 +- .../DynamicThreadPoolPostProcessor.java | 10 +- ...AdaptedThreadPoolDestroyPostProcessor.java | 2 +- .../DynamicThreadPoolPostProcessor.java | 5 +- .../AbstractBuildThreadPoolTemplate.java | 37 +-- .../AbstractDynamicExecutorSupport.java | 177 -------------- .../support/FastThreadPoolExecutor.java | 84 ------- .../core/executor/support/TaskQueue.java | 73 ------ .../executor/support/ThreadPoolBuilder.java | 15 +- .../support/ThreadPoolExecutorTemplate.java | 105 -------- .../adpter/DynamicThreadPoolAdapter.java | 5 +- .../DynamicThreadPoolAdapterChoose.java | 16 +- .../adpter/ThreadPoolTaskExecutorAdapter.java | 8 +- .../support/adpter/ZipkinExecutorAdapter.java | 3 +- .../spi/DynamicThreadPoolAdapterSPI.java | 4 +- .../AbstractBuildThreadPoolTemplateTest.java | 22 +- .../support/FastThreadPoolExecutorTest.java | 98 -------- 89 files changed, 500 insertions(+), 1301 deletions(-) create mode 100644 agent/hippo4j-agent-plugin/adapter-plugins/pom.xml rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/pom.xml (85%) rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java (100%) rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java (100%) rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java (100%) rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService (100%) rename agent/hippo4j-agent-plugin/{ => mode/config}/apollo-plugin/src/main/resources/hippo4j-plugin.def (100%) create mode 100644 agent/hippo4j-agent-plugin/mode/config/pom.xml create mode 100644 agent/hippo4j-agent-plugin/mode/pom.xml rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-1.x-plugin => spring-boot-1x-plugin}/pom.xml (88%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-1.x-plugin => spring-boot-1x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java (84%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-1.x-plugin => spring-boot-1x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java (100%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-1.x-plugin => spring-boot-1x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java (100%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-1.x-plugin => spring-boot-1x-plugin}/src/main/resources/hippo4j-plugin.def (100%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-2.x-plugin => spring-boot-2x-plugin}/pom.xml (77%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-2.x-plugin => spring-boot-2x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java (73%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-2.x-plugin => spring-boot-2x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java (100%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-2.x-plugin => spring-boot-2x-plugin}/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java (98%) rename agent/hippo4j-agent-plugin/spring-plugins/{spring-boot-2.x-plugin => spring-boot-2x-plugin}/src/main/resources/hippo4j-plugin.def (100%) rename agent/hippo4j-agent-plugin/{thread-pool-plugin => threadpool-plugin}/pom.xml (92%) rename agent/hippo4j-agent-plugin/{thread-pool-plugin => threadpool-plugin}/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java (100%) rename agent/hippo4j-agent-plugin/{thread-pool-plugin => threadpool-plugin}/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java (95%) rename agent/hippo4j-agent-plugin/{thread-pool-plugin => threadpool-plugin}/src/main/resources/hippo4j-plugin.def (100%) rename agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java => infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java (58%) rename agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java => infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java (56%) rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java => kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java (94%) create mode 100644 kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java rename {starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties}/AdapterExecutorProperties.java (95%) rename {starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties}/BootstrapConfigProperties.java (90%) rename {starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties}/MonitorProperties.java (81%) rename {starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties}/NotifyPlatformProperties.java (95%) rename {starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config => kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties}/WebExecutorProperties.java (96%) create mode 100644 kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java rename starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/{SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java => SpringBoot1xBootstrapConfigPropertiesBinderAdapter.java} (95%) rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/{parser/AbstractConfigParser.java => config/SpringBootstrapConfigProperties.java} (66%) delete mode 100644 starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigFileTypeEnum.java delete mode 100644 starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParser.java delete mode 100644 starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java delete mode 100644 starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java delete mode 100644 starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/{DefaultBootstrapConfigPropertiesBinderAdapt.java => DefaultBootstrapConfigPropertiesBinderAdapter.java} (90%) delete mode 100644 threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java delete mode 100644 threadpool/core/src/main/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutor.java delete mode 100644 threadpool/core/src/main/java/cn/hippo4j/core/executor/support/TaskQueue.java delete mode 100644 threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolExecutorTemplate.java delete mode 100644 threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java diff --git a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java index 89148adb..aa493f9e 100644 --- a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java +++ b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/util/ThreadPoolPropertyKey.java @@ -20,13 +20,20 @@ package cn.hippo4j.agent.core.util; public interface ThreadPoolPropertyKey { String THREAD_POOL_ID = "threadPoolId"; + String CORE_POOL_SIZE = "corePoolSize"; + String MAXIMUM_POOL_SIZE = "maximumPoolSize"; + String ALLOW_CORE_THREAD_TIME_OUT = "allowCoreThreadTimeOut"; + String KEEP_ALIVE_TIME = "keepAliveTime"; + String BLOCKING_QUEUE = "blockingQueue"; + String QUEUE_CAPACITY = "queueCapacity"; - String THREAD_NAME_PREFIX = "threadNamePrefix"; + String REJECTED_HANDLER = "rejectedHandler"; + String EXECUTE_TIME_OUT = "executeTimeOut"; } diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml new file mode 100644 index 00000000..82fb0249 --- /dev/null +++ b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-agent-plugin + 2.0.0-SNAPSHOT + + + hippo4j-agent-adapter-plugins + + + 8 + 8 + UTF-8 + + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/pom.xml b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml similarity index 85% rename from agent/hippo4j-agent-plugin/apollo-plugin/pom.xml rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml index c50abc5e..f1cce5e5 100644 --- a/agent/hippo4j-agent-plugin/apollo-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml @@ -5,11 +5,11 @@ 4.0.0 cn.hippo4j - hippo4j-agent-plugin + hippo4j-agent-config-mode ${revision} - apollo-plugin + hippo4j-agent-config-apollo-plugin 1.9.1 diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java similarity index 100% rename from agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java similarity index 100% rename from agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java similarity index 100% rename from agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService similarity index 100% rename from agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService diff --git a/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agent/hippo4j-agent-plugin/mode/config/pom.xml b/agent/hippo4j-agent-plugin/mode/config/pom.xml new file mode 100644 index 00000000..d0414050 --- /dev/null +++ b/agent/hippo4j-agent-plugin/mode/config/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-agent-mode + ${revision} + + + hippo4j-agent-config-mode + pom + + + apollo-plugin + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/mode/pom.xml b/agent/hippo4j-agent-plugin/mode/pom.xml new file mode 100644 index 00000000..39a427e5 --- /dev/null +++ b/agent/hippo4j-agent-plugin/mode/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-agent-plugin + ${revision} + + + hippo4j-agent-mode + pom + + + config + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/pom.xml b/agent/hippo4j-agent-plugin/pom.xml index 934aea83..c7312efb 100644 --- a/agent/hippo4j-agent-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/pom.xml @@ -13,8 +13,9 @@ pom spring-plugins - thread-pool-plugin - apollo-plugin + threadpool-plugin + mode + adapter-plugins diff --git a/agent/hippo4j-agent-plugin/spring-plugins/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/pom.xml index 200bfd2a..d6855dbe 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/pom.xml @@ -9,11 +9,12 @@ ${revision} - spring-plugins + hippo4j-agent-spring-plugins pom + - spring-boot-1.x-plugin - spring-boot-2.x-plugin + spring-boot-1x-plugin + spring-boot-2x-plugin spring-plugin-common @@ -26,10 +27,9 @@ cn.hippo4j - spring-plugin-common + hippo4j-agent-spring-plugin-common ${project.version} - \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml similarity index 88% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml index 16c822b3..1605aaf0 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml @@ -5,11 +5,11 @@ 4.0.0 cn.hippo4j - spring-plugins + hippo4j-agent-spring-plugins ${revision} - spring-boot-1.x-plugin + hippo4j-agent-spring-boot-1x-plugin 1.5.22.RELEASE @@ -31,7 +31,7 @@ cn.hippo4j - spring-plugin-common + hippo4j-agent-spring-plugin-common provided diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java similarity index 84% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java index 96f1139b..dc97aaa8 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/DynamicThreadPoolChangeHandlerSpring1x.java @@ -17,15 +17,15 @@ package cn.hippo4j.agent.plugin.spring.boot.v1; -import cn.hippo4j.agent.plugin.spring.common.support.AbstractDynamicThreadPoolChangeHandlerSpring; import cn.hippo4j.common.toolkit.MapUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.AbstractConfigThreadPoolDynamicRefresh; +import lombok.RequiredArgsConstructor; import org.springframework.beans.PropertyValues; import org.springframework.beans.support.ResourceEditorRegistrar; import org.springframework.boot.bind.CustomPropertyNamePatternsMatcher; import org.springframework.boot.bind.RelaxedDataBinder; import org.springframework.boot.bind.RelaxedNames; -import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.env.MapPropertySource; import org.springframework.core.env.MutablePropertySources; @@ -34,18 +34,18 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import static cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapt.getNames; +import static cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapter.getNames; /** * Dynamic thread pool change handler spring 1x */ -public class DynamicThreadPoolChangeHandlerSpring1x extends AbstractDynamicThreadPoolChangeHandlerSpring { +@RequiredArgsConstructor +public class DynamicThreadPoolChangeHandlerSpring1x extends AbstractConfigThreadPoolDynamicRefresh { - public DynamicThreadPoolChangeHandlerSpring1x(ConfigurableApplicationContext context) { - super(context); - } + private final ConfigurableApplicationContext applicationContext; - protected BootstrapConfigProperties bindProperties(Map configInfo, ApplicationContext applicationContext) { + @Override + public BootstrapConfigProperties buildBootstrapProperties(Map configInfo) { BootstrapConfigProperties bindableCoreProperties = new BootstrapConfigProperties(); if (MapUtil.isEmpty(configInfo)) { return bindableCoreProperties; @@ -68,5 +68,4 @@ public class DynamicThreadPoolChangeHandlerSpring1x extends AbstractDynamicThrea dataBinder.bind(propertyValues); return bindableCoreProperties; } - } diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java similarity index 100% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/define/EventPublishingRunListenerInstrumentation.java diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java similarity index 100% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1.x-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml similarity index 77% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml index 8bd9ae25..5eb55742 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml @@ -5,11 +5,11 @@ 4.0.0 cn.hippo4j - spring-plugins + hippo4j-agent-spring-plugins ${revision} - spring-boot-2.x-plugin + hippo4j-agent-spring-boot-2x-plugin jar @@ -19,7 +19,7 @@ cn.hippo4j - spring-plugin-common + hippo4j-agent-spring-plugin-common provided @@ -32,8 +32,9 @@ cn.hippo4j - hippo4j-threadpool-config-spring-boot-starter + hippo4j-threadpool-dynamic-mode-config ${project.version} + provided \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java similarity index 73% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java index 019c3988..f490618c 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java @@ -17,27 +17,22 @@ package cn.hippo4j.agent.plugin.spring.boot.v2; -import cn.hippo4j.agent.plugin.spring.common.support.AbstractDynamicThreadPoolChangeHandlerSpring; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.AbstractConfigThreadPoolDynamicRefresh; import org.springframework.boot.context.properties.bind.Bindable; import org.springframework.boot.context.properties.bind.Binder; import org.springframework.boot.context.properties.source.ConfigurationPropertySource; import org.springframework.boot.context.properties.source.MapConfigurationPropertySource; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ConfigurableApplicationContext; import java.util.Map; /** * Dynamic thread pool change handler spring 2x */ -public class DynamicThreadPoolChangeHandlerSpring2x extends AbstractDynamicThreadPoolChangeHandlerSpring { +public class DynamicThreadPoolChangeHandlerSpring2x extends AbstractConfigThreadPoolDynamicRefresh { - public DynamicThreadPoolChangeHandlerSpring2x(ConfigurableApplicationContext context) { - super(context); - } - - protected BootstrapConfigProperties bindProperties(Map configInfo, ApplicationContext applicationContext) { + @Override + public BootstrapConfigProperties buildBootstrapProperties(Map configInfo) { BootstrapConfigProperties bindableBootstrapConfigProperties = new BootstrapConfigProperties(); ConfigurationPropertySource sources = new MapConfigurationPropertySource(configInfo); Binder binder = new Binder(sources); diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java similarity index 100% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/define/EventPublishingRunListenerInstrumentation.java diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java similarity index 98% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java index eabdf409..0aa9cc1e 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java @@ -51,9 +51,8 @@ public class EventPublishingStartedInterceptor implements InstanceMethodsAroundI return ret; } SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); - ThreadPoolDynamicRefresh dynamicRefresh = new DynamicThreadPoolChangeHandlerSpring2x(context); + ThreadPoolDynamicRefresh dynamicRefresh = new DynamicThreadPoolChangeHandlerSpring2x(); dynamicRefresh.registerListener(); - return ret; } diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2.x-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml index 6d9de61c..7ac42387 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml @@ -5,11 +5,11 @@ 4.0.0 cn.hippo4j - spring-plugins + hippo4j-agent-spring-plugins ${revision} - spring-plugin-common + hippo4j-agent-spring-plugin-common @@ -17,44 +17,36 @@ spring-core provided - + + org.springframework + spring-context + provided + org.projectlombok lombok provided - org.slf4j slf4j-api - com.ctrip.framework.apollo apollo-client provided - cn.hippo4j hippo4j-threadpool-dynamic-api ${project.version} provided - - - cn.hippo4j - hippo4j-threadpool-core - ${project.version} - provided - - cn.hippo4j - hippo4j-threadpool-dynamic-mode-config + hippo4j-threadpool-dynamic-core ${project.version} provided - \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java index 6c77eee3..9cf071a0 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java @@ -17,20 +17,8 @@ package cn.hippo4j.agent.plugin.spring.common.support; -import cn.hippo4j.agent.core.registry.AgentThreadPoolExecutorHolder; -import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; -import cn.hippo4j.agent.core.util.ThreadPoolPropertyKey; import cn.hippo4j.agent.plugin.spring.common.conf.SpringBootConfig; -import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; -import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; -import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; -import cn.hippo4j.common.model.executor.ExecutorProperties; -import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; -import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigFileTypeEnum; -import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigParserHandler; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.ConfigFile; import com.ctrip.framework.apollo.ConfigService; @@ -38,13 +26,10 @@ import com.ctrip.framework.apollo.core.enums.ConfigFileFormat; import com.ctrip.framework.apollo.model.ConfigChange; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ConfigurableApplicationContext; -import java.util.*; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static cn.hippo4j.agent.core.conf.Constants.SPRING_BOOT_CONFIG_PREFIX; @@ -55,14 +40,7 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDynamicThreadPoolChangeHandlerSpring.class); - private final ConfigurableApplicationContext applicationContext; - - public AbstractDynamicThreadPoolChangeHandlerSpring(ConfigurableApplicationContext context) { - this.applicationContext = context; - } - public void registerListener() { - List apolloNamespaces = SpringBootConfig.Spring.Dynamic.Thread_Pool.Apollo.NAMESPACE; String namespace = apolloNamespaces.get(0); String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; @@ -78,179 +56,49 @@ public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements Th String newValue = change.getNewValue(); newChangeValueMap.put(each, newValue); }); - dynamicRefresh(configFile.getContent(), newChangeValueMap, applicationContext); + dynamicRefresh(configFile.getContent(), newChangeValueMap); }; config.addChangeListener(configChangeListener); LOGGER.info("[Hippo4j-Agent] Dynamic thread pool refresher, add apollo listener success. namespace: {}", namespace); } - private void dynamicRefresh(String configContent, Map newValueChangeMap, ApplicationContext context) { + public void dynamicRefresh(String configContent, Map newValueChangeMap) { try { - String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; - - Map afterConfigMap = ConfigParserHandler.getInstance().parseConfig(configContent, - ConfigFileTypeEnum.of(configFileType)); - if (CollectionUtil.isNotEmpty(newValueChangeMap)) { - Optional.ofNullable(afterConfigMap).ifPresent(each -> each.putAll(newValueChangeMap)); - } + // String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; + // + // Map afterConfigMap = ConfigParserHandler.getInstance().parseConfig(configContent, + // ConfigFileTypeEnum.of(configFileType)); + // if (CollectionUtil.isNotEmpty(newValueChangeMap)) { + // Optional.ofNullable(afterConfigMap).ifPresent(each -> each.putAll(newValueChangeMap)); + // } // TODO - /* - * BootstrapConfigProperties afterConfigProperties = bindProperties(afterConfigMap, context); - * - * List executors = afterConfigProperties.getExecutors(); for (ExecutorProperties afterProperties : executors) { String threadPoolId = - * afterProperties.getThreadPoolId(); AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); if (holder.isEmpty() || - * holder.getExecutor() == null) { continue; } ExecutorProperties beforeProperties = convert(holder.getProperties()); - * - * if (!checkConsistency(threadPoolId, beforeProperties, afterProperties)) { continue; } - * - * dynamicRefreshPool(beforeProperties, afterProperties); holder.setProperties(failDefaultExecutorProperties(beforeProperties, afterProperties)); // do refresh. - * ChangeParameterNotifyRequest changeRequest = buildChangeRequest(beforeProperties, afterProperties); LOGGER.info(CHANGE_THREAD_POOL_TEXT, threadPoolId, String.format(CHANGE_DELIMITER, - * beforeProperties.getCorePoolSize(), changeRequest.getNowCorePoolSize()), String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), changeRequest.getNowMaximumPoolSize()), - * String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), changeRequest.getNowQueueCapacity()), String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), - * changeRequest.getNowKeepAliveTime()), String.format(CHANGE_DELIMITER, beforeProperties.getExecuteTimeOut(), changeRequest.getNowExecuteTimeOut()), String.format(CHANGE_DELIMITER, - * beforeProperties.getRejectedHandler(), changeRequest.getNowRejectedName()), String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), - * changeRequest.getNowAllowsCoreThreadTimeOut())); } - */ + // BootstrapConfigProperties afterConfigProperties = bindProperties(afterConfigMap, context); + // + // List executors = afterConfigProperties.getExecutors(); + // for (ExecutorProperties afterProperties : executors) { + // String threadPoolId = + // afterProperties.getThreadPoolId(); + // AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); + // if (holder.isEmpty() || + // holder.getExecutor() == null) { + // continue; + // } + // ExecutorProperties beforeProperties = convert(holder.getProperties()); + // if (!checkConsistency(threadPoolId, beforeProperties, afterProperties)) { + // continue; + // } + // dynamicRefreshPool(beforeProperties, afterProperties); + // holder.setProperties(failDefaultExecutorProperties(beforeProperties, afterProperties)); // do refresh. + // ChangeParameterNotifyRequest changeRequest = buildChangeRequest(beforeProperties, afterProperties); + // LOGGER.info(CHANGE_THREAD_POOL_TEXT, threadPoolId, String.format(CHANGE_DELIMITER, + // beforeProperties.getCorePoolSize(), changeRequest.getNowCorePoolSize()), String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), changeRequest.getNowMaximumPoolSize()), + // String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), changeRequest.getNowQueueCapacity()), String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), + // changeRequest.getNowKeepAliveTime()), String.format(CHANGE_DELIMITER, beforeProperties.getExecuteTimeOut(), changeRequest.getNowExecuteTimeOut()), String.format(CHANGE_DELIMITER, + // beforeProperties.getRejectedHandler(), changeRequest.getNowRejectedName()), String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), + // changeRequest.getNowAllowsCoreThreadTimeOut())); + // } } catch (Exception ex) { LOGGER.error("[Hippo4j-Agent] config mode dynamic refresh failed.", ex); } } - - /** - * Dynamic refresh pool. - */ - private void dynamicRefreshPool(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { - AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(afterProperties.getThreadPoolId()); - ThreadPoolExecutor executor = holder.getExecutor(); - if (afterProperties.getMaximumPoolSize() != null && afterProperties.getCorePoolSize() != null) { - ThreadPoolExecutorUtil.safeSetPoolSize(executor, afterProperties.getCorePoolSize(), afterProperties.getMaximumPoolSize()); - } else { - if (afterProperties.getMaximumPoolSize() != null) { - executor.setMaximumPoolSize(afterProperties.getMaximumPoolSize()); - } - if (afterProperties.getCorePoolSize() != null) { - executor.setCorePoolSize(afterProperties.getCorePoolSize()); - } - } - if (afterProperties.getAllowCoreThreadTimeOut() != null && !Objects.equals(beforeProperties.getAllowCoreThreadTimeOut(), afterProperties.getAllowCoreThreadTimeOut())) { - executor.allowCoreThreadTimeOut(afterProperties.getAllowCoreThreadTimeOut()); - } - if (afterProperties.getExecuteTimeOut() != null && !Objects.equals(beforeProperties.getExecuteTimeOut(), afterProperties.getExecuteTimeOut())) { - if (executor instanceof DynamicThreadPoolExecutor) { - ((DynamicThreadPoolExecutor) executor).setExecuteTimeOut(afterProperties.getExecuteTimeOut()); - } - } - if (afterProperties.getRejectedHandler() != null && !Objects.equals(beforeProperties.getRejectedHandler(), afterProperties.getRejectedHandler())) { - RejectedExecutionHandler rejectedExecutionHandler = RejectedPolicyTypeEnum.createPolicy(afterProperties.getRejectedHandler()); - executor.setRejectedExecutionHandler(rejectedExecutionHandler); - } - if (afterProperties.getKeepAliveTime() != null && !Objects.equals(beforeProperties.getKeepAliveTime(), afterProperties.getKeepAliveTime())) { - executor.setKeepAliveTime(afterProperties.getKeepAliveTime(), TimeUnit.SECONDS); - } - if (afterProperties.getQueueCapacity() != null && !Objects.equals(beforeProperties.getQueueCapacity(), afterProperties.getQueueCapacity()) - && Objects.equals(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE.getName(), executor.getQueue().getClass().getSimpleName())) { - if (executor.getQueue() instanceof ResizableCapacityLinkedBlockingQueue) { - ResizableCapacityLinkedBlockingQueue queue = (ResizableCapacityLinkedBlockingQueue) executor.getQueue(); - queue.setCapacity(afterProperties.getQueueCapacity()); - } else { - LOGGER.warn("The queue length cannot be modified. Queue type mismatch. Current queue type: {}", executor.getQueue().getClass().getSimpleName()); - } - } - } - - /** - * Fail default executor properties. - * - * @param beforeProperties old properties - * @param afterProperties new properties - * @return executor properties - */ - private Properties failDefaultExecutorProperties(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { - return convert(ExecutorProperties.builder() - .corePoolSize(Optional.ofNullable(afterProperties.getCorePoolSize()).orElse(beforeProperties.getCorePoolSize())) - .maximumPoolSize(Optional.ofNullable(afterProperties.getMaximumPoolSize()).orElse(beforeProperties.getMaximumPoolSize())) - .blockingQueue(afterProperties.getBlockingQueue()) - .queueCapacity(Optional.ofNullable(afterProperties.getQueueCapacity()).orElse(beforeProperties.getQueueCapacity())) - .keepAliveTime(Optional.ofNullable(afterProperties.getKeepAliveTime()).orElse(beforeProperties.getKeepAliveTime())) - .executeTimeOut(Optional.ofNullable(afterProperties.getExecuteTimeOut()).orElse(beforeProperties.getExecuteTimeOut())) - .rejectedHandler(Optional.ofNullable(afterProperties.getRejectedHandler()).orElse(beforeProperties.getRejectedHandler())) - .allowCoreThreadTimeOut(Optional.ofNullable(afterProperties.getAllowCoreThreadTimeOut()).orElse(beforeProperties.getAllowCoreThreadTimeOut())) - .threadPoolId(beforeProperties.getThreadPoolId()) - .build()); - } - - private ExecutorProperties convert(Properties properties) { - return ExecutorProperties.builder() - .threadPoolId((String) properties.get(ThreadPoolPropertyKey.THREAD_POOL_ID)) - .corePoolSize((Integer) properties.get(ThreadPoolPropertyKey.CORE_POOL_SIZE)) - .maximumPoolSize((Integer) properties.get(ThreadPoolPropertyKey.MAXIMUM_POOL_SIZE)) - .allowCoreThreadTimeOut((Boolean) properties.get(ThreadPoolPropertyKey.ALLOW_CORE_THREAD_TIME_OUT)) - .keepAliveTime((Long) properties.get(ThreadPoolPropertyKey.KEEP_ALIVE_TIME)) - .blockingQueue((String) properties.get(ThreadPoolPropertyKey.BLOCKING_QUEUE)) - .queueCapacity((Integer) properties.get(ThreadPoolPropertyKey.QUEUE_CAPACITY)) - .threadNamePrefix((String) properties.get(ThreadPoolPropertyKey.THREAD_NAME_PREFIX)) - .rejectedHandler((String) properties.get(ThreadPoolPropertyKey.REJECTED_HANDLER)) - .executeTimeOut((Long) properties.get(ThreadPoolPropertyKey.EXECUTE_TIME_OUT)) - .build(); - } - - private Properties convert(ExecutorProperties executorProperties) { - Properties properties = new Properties(); - Optional.ofNullable(executorProperties.getCorePoolSize()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.CORE_POOL_SIZE, v)); - Optional.ofNullable(executorProperties.getMaximumPoolSize()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.MAXIMUM_POOL_SIZE, v)); - Optional.ofNullable(executorProperties.getBlockingQueue()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.BLOCKING_QUEUE, v)); - Optional.ofNullable(executorProperties.getQueueCapacity()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.QUEUE_CAPACITY, v)); - Optional.ofNullable(executorProperties.getKeepAliveTime()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.KEEP_ALIVE_TIME, v)); - Optional.ofNullable(executorProperties.getExecuteTimeOut()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.EXECUTE_TIME_OUT, v)); - Optional.ofNullable(executorProperties.getRejectedHandler()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.REJECTED_HANDLER, v)); - Optional.ofNullable(executorProperties.getAllowCoreThreadTimeOut()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.ALLOW_CORE_THREAD_TIME_OUT, v)); - Optional.ofNullable(executorProperties.getThreadPoolId()).ifPresent(v -> properties.put(ThreadPoolPropertyKey.THREAD_POOL_ID, v)); - return properties; - } - - /** - * Construct change parameter notify request instance. - * - * @param beforeProperties old properties - * @param afterProperties new properties - * @return instance - */ - /* - * private ChangeParameterNotifyRequest buildChangeRequest(ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { ChangeParameterNotifyRequest changeParameterNotifyRequest = - * ChangeParameterNotifyRequest.builder() .beforeCorePoolSize(beforeProperties.getCorePoolSize()) .beforeMaximumPoolSize(beforeProperties.getMaximumPoolSize()) - * .beforeAllowsCoreThreadTimeOut(beforeProperties.getAllowCoreThreadTimeOut()) .beforeKeepAliveTime(beforeProperties.getKeepAliveTime()) .beforeQueueCapacity(beforeProperties.getQueueCapacity()) - * .beforeRejectedName(beforeProperties.getRejectedHandler()) .beforeExecuteTimeOut(beforeProperties.getExecuteTimeOut()) .blockingQueueName(afterProperties.getBlockingQueue()) - * .nowCorePoolSize(Optional.ofNullable(afterProperties.getCorePoolSize()).orElse(beforeProperties.getCorePoolSize())) - * .nowMaximumPoolSize(Optional.ofNullable(afterProperties.getMaximumPoolSize()).orElse(beforeProperties.getMaximumPoolSize())) - * .nowAllowsCoreThreadTimeOut(Optional.ofNullable(afterProperties.getAllowCoreThreadTimeOut()).orElse(beforeProperties.getAllowCoreThreadTimeOut())) - * .nowKeepAliveTime(Optional.ofNullable(afterProperties.getKeepAliveTime()).orElse(beforeProperties.getKeepAliveTime())) - * .nowQueueCapacity(Optional.ofNullable(afterProperties.getQueueCapacity()).orElse(beforeProperties.getQueueCapacity())) - * .nowRejectedName(Optional.ofNullable(afterProperties.getRejectedHandler()).orElse(beforeProperties.getRejectedHandler())) - * .nowExecuteTimeOut(Optional.ofNullable(afterProperties.getExecuteTimeOut()).orElse(beforeProperties.getExecuteTimeOut())) .build(); - * changeParameterNotifyRequest.setThreadPoolId(beforeProperties.getThreadPoolId()); return changeParameterNotifyRequest; } - */ - - /** - * Check consistency. - * - * @param threadPoolId - * @param afterProperties - */ - private boolean checkConsistency(String threadPoolId, ExecutorProperties beforeProperties, ExecutorProperties afterProperties) { - AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); - if (holder.isEmpty() || holder.getExecutor() == null) { - return false; - } - ThreadPoolExecutor executor = holder.getExecutor(); - return (afterProperties.getCorePoolSize() != null && !Objects.equals(beforeProperties.getCorePoolSize(), afterProperties.getCorePoolSize())) - || (afterProperties.getMaximumPoolSize() != null && !Objects.equals(beforeProperties.getMaximumPoolSize(), afterProperties.getMaximumPoolSize())) - || (afterProperties.getAllowCoreThreadTimeOut() != null && !Objects.equals(beforeProperties.getAllowCoreThreadTimeOut(), afterProperties.getAllowCoreThreadTimeOut())) - || (afterProperties.getExecuteTimeOut() != null && !Objects.equals(beforeProperties.getExecuteTimeOut(), afterProperties.getExecuteTimeOut())) - || (afterProperties.getKeepAliveTime() != null && !Objects.equals(beforeProperties.getKeepAliveTime(), afterProperties.getKeepAliveTime())) - || (afterProperties.getRejectedHandler() != null && !Objects.equals(beforeProperties.getRejectedHandler(), afterProperties.getRejectedHandler())) - || - ((afterProperties.getQueueCapacity() != null && !Objects.equals(beforeProperties.getQueueCapacity(), afterProperties.getQueueCapacity()) - && Objects.equals(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE.getName(), executor.getQueue().getClass().getSimpleName()))); - } - } diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index 65f8601c..0fdb5704 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -17,14 +17,12 @@ package cn.hippo4j.agent.plugin.spring.common.support; -import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; import cn.hippo4j.agent.core.util.ReflectUtil; -import cn.hippo4j.agent.core.util.ThreadPoolPropertyKey; -import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.BooleanUtil; -import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapterChoose; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; @@ -32,10 +30,8 @@ import org.springframework.context.ApplicationContext; import java.lang.reflect.Field; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; /** * Spring thread pool register support @@ -45,7 +41,7 @@ public class SpringThreadPoolRegisterSupport { private static final Logger LOGGER = LoggerFactory.getLogger(SpringThreadPoolRegisterSupport.class); public static void registerThreadPoolInstances(ApplicationContext context) { - Map> earlyConstructMap = AgentThreadPoolInstanceRegistry.getInstance().earlyConstructMap; + Map> earlyConstructMap = ThreadPoolInstanceRegistry.getInstance().earlyConstructMap; for (Map.Entry> entry : earlyConstructMap.entrySet()) { ThreadPoolExecutor enhancedInstance = entry.getKey(); Class declaredClass = entry.getValue(); @@ -69,11 +65,12 @@ public class SpringThreadPoolRegisterSupport { String beanName = entry.getKey(); Executor bean = entry.getValue(); ThreadPoolExecutor executor = null; - if (DynamicThreadPoolAdapterChoose.match(bean)) { - executor = DynamicThreadPoolAdapterChoose.unwrap(bean); - } else { - executor = (ThreadPoolExecutor) bean; - } + // + // if (DynamicThreadPoolAdapterChoose.match(bean)) { + // executor = DynamicThreadPoolAdapterChoose.unwrap(bean); + // } else { + // executor = (ThreadPoolExecutor) bean; + // } if (executor == null) { LOGGER.warn("[Hippo4j-Agent] Thread pool is null, ignore bean registration. beanName={}, beanClass={}", beanName, bean.getClass().getName()); } else { @@ -87,19 +84,15 @@ public class SpringThreadPoolRegisterSupport { if (executor == null) { return; } - // build parameter properties. - Properties properties = new Properties(); - properties.put(ThreadPoolPropertyKey.THREAD_POOL_ID, threadPoolId); - properties.put(ThreadPoolPropertyKey.CORE_POOL_SIZE, executor.getCorePoolSize()); - properties.put(ThreadPoolPropertyKey.MAXIMUM_POOL_SIZE, executor.getMaximumPoolSize()); - properties.put(ThreadPoolPropertyKey.ALLOW_CORE_THREAD_TIME_OUT, BooleanUtil.toBoolean(String.valueOf(executor.allowsCoreThreadTimeOut()))); - properties.put(ThreadPoolPropertyKey.KEEP_ALIVE_TIME, executor.getKeepAliveTime(TimeUnit.MILLISECONDS)); - properties.put(ThreadPoolPropertyKey.BLOCKING_QUEUE, BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName(executor.getQueue().getClass().getSimpleName()).getName()); - properties.put(ThreadPoolPropertyKey.QUEUE_CAPACITY, executor.getQueue().remainingCapacity()); - properties.put(ThreadPoolPropertyKey.THREAD_NAME_PREFIX, threadPoolId); - properties.put(ThreadPoolPropertyKey.REJECTED_HANDLER, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()); - properties.put(ThreadPoolPropertyKey.EXECUTE_TIME_OUT, Constants.EXECUTE_TIME_OUT); - // register executor. - AgentThreadPoolInstanceRegistry.getInstance().putHolder(threadPoolId, executor, properties); + ExecutorProperties executorProperties = ExecutorProperties.builder() + .threadPoolId(threadPoolId) + .corePoolSize(executor.getCorePoolSize()) + .maximumPoolSize(executor.getMaximumPoolSize()) + .allowCoreThreadTimeOut(BooleanUtil.toBoolean(String.valueOf(executor.allowsCoreThreadTimeOut()))) + .blockingQueue(BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName(executor.getQueue().getClass().getSimpleName()).getName()) + .queueCapacity(executor.getQueue().remainingCapacity()) + .rejectedHandler(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()) + .build(); + ThreadPoolInstanceRegistry.getInstance().putHolder(threadPoolId, executor, executorProperties); } } diff --git a/agent/hippo4j-agent-plugin/thread-pool-plugin/pom.xml b/agent/hippo4j-agent-plugin/threadpool-plugin/pom.xml similarity index 92% rename from agent/hippo4j-agent-plugin/thread-pool-plugin/pom.xml rename to agent/hippo4j-agent-plugin/threadpool-plugin/pom.xml index c3fa56bb..b571302e 100644 --- a/agent/hippo4j-agent-plugin/thread-pool-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/threadpool-plugin/pom.xml @@ -9,7 +9,7 @@ ${revision} - thread-pool-plugin + hippo4j-agent-threadpool-plugin diff --git a/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java similarity index 100% rename from agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java rename to agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/define/ThreadPoolExecutorInstrumentation.java diff --git a/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java similarity index 95% rename from agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java rename to agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java index 2061071a..98b671fa 100644 --- a/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java +++ b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java @@ -22,7 +22,7 @@ import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; import cn.hippo4j.agent.core.plugin.interceptor.enhance.EnhancedInstance; import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import cn.hippo4j.agent.core.registry.AgentThreadPoolInstanceRegistry; +import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; import cn.hippo4j.agent.core.util.CollectionUtil; import cn.hippo4j.agent.core.util.StringUtil; import java.util.ArrayList; @@ -52,7 +52,7 @@ public class ThreadPoolExecutorConstructorMethodInterceptor implements InstanceC StackTraceElement declaredClassStackTraceElement = stackTraceElements.get(0); String declaredClassName = declaredClassStackTraceElement.getClassName(); Class declaredClass = Thread.currentThread().getContextClassLoader().loadClass(declaredClassName); - AgentThreadPoolInstanceRegistry.getInstance().earlyConstructMap.put((ThreadPoolExecutor) objInst, declaredClass); + ThreadPoolInstanceRegistry.getInstance().earlyConstructMap.put((ThreadPoolExecutor) objInst, declaredClass); } private List getStackTraceElements() { diff --git a/agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agent/hippo4j-agent-plugin/thread-pool-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/threadpool-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java similarity index 58% rename from agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java index 96478a60..a23eff55 100644 --- a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolExecutorHolder.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java @@ -15,35 +15,30 @@ * limitations under the License. */ -package cn.hippo4j.agent.core.registry; +package cn.hippo4j.common.executor; -import cn.hippo4j.agent.core.logging.api.ILog; -import cn.hippo4j.agent.core.logging.api.LogManager; +import cn.hippo4j.common.model.executor.ExecutorProperties; import lombok.Data; +import lombok.NoArgsConstructor; -import java.util.Properties; import java.util.concurrent.ThreadPoolExecutor; @Data -public class AgentThreadPoolExecutorHolder { +@NoArgsConstructor +public class ThreadPoolExecutorHolder { - private static final ILog LOGGER = LogManager.getLogger(AgentThreadPoolExecutorHolder.class); + public static final ThreadPoolExecutorHolder EMPTY = new ThreadPoolExecutorHolder(); - public static final AgentThreadPoolExecutorHolder EMPTY = new AgentThreadPoolExecutorHolder(); - - private String executorName; + private String threadPoolId; private ThreadPoolExecutor executor; - private Properties properties; - - public AgentThreadPoolExecutorHolder() { - } + private ExecutorProperties executorProperties; - public AgentThreadPoolExecutorHolder(String executorName, ThreadPoolExecutor executor, Properties properties) { - this.executorName = executorName; + public ThreadPoolExecutorHolder(String threadPoolId, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { + this.threadPoolId = threadPoolId; this.executor = executor; - this.properties = properties; + this.executorProperties = executorProperties; } public boolean isEmpty() { diff --git a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java similarity index 56% rename from agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java index ddf3bb43..a1fbcc82 100644 --- a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/registry/AgentThreadPoolInstanceRegistry.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java @@ -15,51 +15,47 @@ * limitations under the License. */ -package cn.hippo4j.agent.core.registry; +package cn.hippo4j.common.executor; -import cn.hippo4j.agent.core.logging.api.ILog; -import cn.hippo4j.agent.core.logging.api.LogManager; +import cn.hippo4j.common.model.executor.ExecutorProperties; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.Map; import java.util.Optional; -import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadPoolExecutor; -public class AgentThreadPoolInstanceRegistry { +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class ThreadPoolInstanceRegistry { - private static final ILog LOGGER = LogManager.getLogger(AgentThreadPoolInstanceRegistry.class); - - private final Map holderMap = new ConcurrentHashMap<>(); + private final Map holderMap = new ConcurrentHashMap<>(); public final Map> earlyConstructMap = new ConcurrentHashMap<>(); - private volatile static AgentThreadPoolInstanceRegistry INSTANCE; - - private AgentThreadPoolInstanceRegistry() { - } + private volatile static ThreadPoolInstanceRegistry INSTANCE; - public static AgentThreadPoolInstanceRegistry getInstance() { + public static ThreadPoolInstanceRegistry getInstance() { if (INSTANCE == null) { - synchronized (AgentThreadPoolInstanceRegistry.class) { + synchronized (ThreadPoolInstanceRegistry.class) { if (INSTANCE == null) { - INSTANCE = new AgentThreadPoolInstanceRegistry(); + INSTANCE = new ThreadPoolInstanceRegistry(); } } } return INSTANCE; } - public Map getHolderMap() { + public Map getHolderMap() { return holderMap; } - public void putHolder(String executorName, ThreadPoolExecutor executor, Properties properties) { - AgentThreadPoolExecutorHolder holder = new AgentThreadPoolExecutorHolder(executorName, executor, properties); + public void putHolder(String executorName, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { + ThreadPoolExecutorHolder holder = new ThreadPoolExecutorHolder(executorName, executor, executorProperties); holderMap.put(executorName, holder); } - public AgentThreadPoolExecutorHolder getHolder(String executorName) { - return Optional.ofNullable(holderMap.get(executorName)).orElse(AgentThreadPoolExecutorHolder.EMPTY); + public ThreadPoolExecutorHolder getHolder(String executorName) { + return Optional.ofNullable(holderMap.get(executorName)).orElse(ThreadPoolExecutorHolder.EMPTY); } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java index c9d9b8fd..0f8c0c69 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java @@ -20,7 +20,6 @@ package cn.hippo4j.common.executor.support; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import lombok.Getter; - import java.util.Collection; import java.util.Objects; import java.util.Optional; diff --git a/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java b/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java index e87f9d72..be8d4242 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java +++ b/infra/common/src/main/java/cn/hippo4j/common/extension/design/AbstractSubjectCenter.java @@ -140,6 +140,11 @@ public class AbstractSubjectCenter { /** * Clear config cache. */ - CLEAR_CONFIG_CACHE + CLEAR_CONFIG_CACHE, + + /** + * Thread-pool dynamic refresh. + */ + THREAD_POOL_DYNAMIC_REFRESH } } diff --git a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java index 2e709940..324cffe6 100644 --- a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java @@ -24,8 +24,6 @@ public interface BootstrapPropertiesInterface { /** * Get enable. - * - * @return */ default Boolean getEnable() { return null; @@ -33,8 +31,6 @@ public interface BootstrapPropertiesInterface { /** * Get username. - * - * @return */ default String getUsername() { return null; @@ -42,8 +38,6 @@ public interface BootstrapPropertiesInterface { /** * Get password. - * - * @return */ default String getPassword() { return null; @@ -51,8 +45,6 @@ public interface BootstrapPropertiesInterface { /** * Get namespace. - * - * @return */ default String getNamespace() { return null; @@ -60,8 +52,6 @@ public interface BootstrapPropertiesInterface { /** * Get item id. - * - * @return */ default String getItemId() { return null; @@ -69,8 +59,6 @@ public interface BootstrapPropertiesInterface { /** * Get server addr. - * - * @return */ default String getServerAddr() { return null; @@ -78,8 +66,6 @@ public interface BootstrapPropertiesInterface { /** * Get banner. - * - * @return */ default Boolean getBanner() { return null; diff --git a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java index 47f4ea05..c1c571be 100644 --- a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/ThreadPoolDynamicRefresh.java @@ -30,6 +30,16 @@ public interface ThreadPoolDynamicRefresh { default void registerListener() { } + /** + * Build thread-pool bootstrap properties. + * + * @param configInfo changed configuration properties + * @return bootstrap properties + */ + default BootstrapPropertiesInterface buildBootstrapProperties(Map configInfo) { + return null; + } + /** * Dynamic refresh of configuration center data changes. * diff --git a/kernel/dynamic/core/pom.xml b/kernel/dynamic/core/pom.xml index 0d3fd4ab..bdede701 100644 --- a/kernel/dynamic/core/pom.xml +++ b/kernel/dynamic/core/pom.xml @@ -10,4 +10,17 @@ hippo4j-threadpool-dynamic-core + + + + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} + + + org.springframework + spring-context + true + + \ No newline at end of file diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java similarity index 94% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java rename to kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java index 70f3a375..4911ac05 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java +++ b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.support; +package cn.hippo4j.threadpool.dynamic.core.executor.manage; import cn.hippo4j.common.model.executor.ExecutorProperties; @@ -24,8 +24,9 @@ import java.util.concurrent.ConcurrentHashMap; /** * Global core thread-pool manage. + * TODO */ -public class GlobalCoreThreadPoolManage { +public class GlobalConfigThreadPoolManage { private static final Map EXECUTOR_PROPERTIES = new ConcurrentHashMap<>(); diff --git a/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java new file mode 100644 index 00000000..de4cc35e --- /dev/null +++ b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.core.executor.manage; + +import cn.hippo4j.common.model.ThreadPoolParameter; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * Global thread-pool manage. + */ +public class GlobalThreadPoolManage { + + /** + * Dynamic thread pool parameter container. + */ + private static final Map POOL_PARAMETER = new ConcurrentHashMap(); + + /** + * Dynamic thread pool wrapper. + */ + private static final Map EXECUTOR_MAP = new ConcurrentHashMap(); + + /** + * Get the dynamic thread pool class. + * + * @param threadPoolId thread-pool id + * @return dynamic thread-pool + */ + public static ThreadPoolExecutor getExecutorService(String threadPoolId) { + return EXECUTOR_MAP.get(threadPoolId); + } + + /** + * Get dynamic thread pool parameters. + * + * @param threadPoolId thread-pool id + * @return thread-pool parameter + */ + public static ThreadPoolParameter getPoolParameter(String threadPoolId) { + return POOL_PARAMETER.get(threadPoolId); + } + + /** + * Register dynamic thread pool parameters. + * + * @param threadPoolId thread-pool id + * @param threadPoolParameter thread-pool parameter + */ + public static void registerPoolParameter(String threadPoolId, ThreadPoolParameter threadPoolParameter) { + POOL_PARAMETER.put(threadPoolId, threadPoolParameter); + } +} diff --git a/kernel/dynamic/mode/config/pom.xml b/kernel/dynamic/mode/config/pom.xml index 310507a0..ed934787 100644 --- a/kernel/dynamic/mode/config/pom.xml +++ b/kernel/dynamic/mode/config/pom.xml @@ -17,5 +17,10 @@ hippo4j-threadpool-dynamic-api ${project.version} + + cn.hippo4j + hippo4j-threadpool-dynamic-core + ${project.version} + \ No newline at end of file diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java index 64aa93ee..1f0c0d3f 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java @@ -30,6 +30,10 @@ public class YamlConfigParser extends AbstractConfigParser { @Override public Map doParse(String content) { // TODO + /* + * if (StringUtils.isEmpty(content)) { return new HashMap<>(1); } YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + * yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes())); return yamlPropertiesFactoryBean.getObject(); + */ return null; } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/AdapterExecutorProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/AdapterExecutorProperties.java similarity index 95% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/AdapterExecutorProperties.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/AdapterExecutorProperties.java index c46d8934..670b17d2 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/AdapterExecutorProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/AdapterExecutorProperties.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.config; +package cn.hippo4j.threadpool.dynamic.mode.config.properties; import lombok.Data; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java similarity index 90% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java index b00dbac0..ea1dc322 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/BootstrapConfigProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java @@ -15,14 +15,13 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.config; +package cn.hippo4j.threadpool.dynamic.mode.config.properties; import cn.hippo4j.common.model.executor.ExecutorProperties; -import cn.hippo4j.config.springboot.starter.parser.ConfigFileTypeEnum; import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; +import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigFileTypeEnum; import lombok.Getter; import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.ArrayList; import java.util.List; @@ -33,7 +32,6 @@ import java.util.Map; */ @Getter @Setter -@ConfigurationProperties(prefix = BootstrapConfigProperties.PREFIX) public class BootstrapConfigProperties implements BootstrapPropertiesInterface { public static final String PREFIX = "spring.dynamic.thread-pool"; @@ -79,7 +77,8 @@ public class BootstrapConfigProperties implements BootstrapPropertiesInterface { private Map etcd; /** - * web config + * Web config + * * @since 1.5.0 */ private WebExecutorProperties web; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/MonitorProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/MonitorProperties.java similarity index 81% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/MonitorProperties.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/MonitorProperties.java index 0c16f160..38cb1ed1 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/MonitorProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/MonitorProperties.java @@ -15,10 +15,8 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.config; +package cn.hippo4j.threadpool.dynamic.mode.config.properties; -import cn.hippo4j.monitor.base.MonitorThreadPoolTypeEnum; -import cn.hippo4j.monitor.base.MonitorTypeEnum; import lombok.Data; /** @@ -35,12 +33,14 @@ public class MonitorProperties { /** * Type of collection thread pool running data. eg: log,micrometer. Multiple can be used at the same time, default micrometer. */ - private String collectTypes = MonitorTypeEnum.MICROMETER.toString().toLowerCase(); + // TODO + private String collectTypes = "micrometer"; /** * Monitor the type of thread pool. eg: dynamic,web,adapter. Can be configured arbitrarily, default dynamic. */ - private String threadPoolTypes = MonitorThreadPoolTypeEnum.DYNAMIC.toString().toLowerCase(); + // TODO + private String threadPoolTypes = "dynamic"; /** * Delay starting data acquisition task. unit: ms diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/NotifyPlatformProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/NotifyPlatformProperties.java similarity index 95% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/NotifyPlatformProperties.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/NotifyPlatformProperties.java index 95a5c0ed..16642130 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/NotifyPlatformProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/NotifyPlatformProperties.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.config; +package cn.hippo4j.threadpool.dynamic.mode.config.properties; import lombok.Data; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/WebExecutorProperties.java similarity index 96% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java rename to kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/WebExecutorProperties.java index c6606af0..ba4d7591 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/WebExecutorProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/WebExecutorProperties.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.config; +package cn.hippo4j.threadpool.dynamic.mode.config.properties; import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; import cn.hippo4j.common.api.IExecutorProperties; diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java index 3eb49ce8..aeef33d5 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -17,7 +17,9 @@ package cn.hippo4j.threadpool.dynamic.mode.config.refresher; +import cn.hippo4j.common.extension.design.AbstractSubjectCenter; import cn.hippo4j.common.toolkit.CollectionUtil; +import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigParserHandler; import lombok.extern.slf4j.Slf4j; @@ -43,8 +45,9 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo if (CollectionUtil.isNotEmpty(newValueChangeMap)) { Optional.ofNullable(configInfo).ifPresent(each -> each.putAll(newValueChangeMap)); } - // BootstrapConfigProperties binderCoreProperties = bootstrapConfigPropertiesBinderAdapt.bootstrapCorePropertiesBinder(configInfo, bootstrapConfigProperties); + BootstrapPropertiesInterface bootstrapProperties = buildBootstrapProperties(configInfo); // publishDynamicThreadPoolEvent(binderCoreProperties); + AbstractSubjectCenter.notify("", null); } catch (Exception ex) { log.error("Hippo4j config mode dynamic refresh failed.", ex); } diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java new file mode 100644 index 00000000..41545e58 --- /dev/null +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.threadpool.dynamic.mode.config.refresher.event; + +import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; +import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; +import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; +import cn.hippo4j.common.extension.design.Observer; +import cn.hippo4j.common.extension.design.ObserverMessage; +import cn.hippo4j.common.model.executor.ExecutorProperties; +import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; +import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalThreadPoolManage; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalConfigThreadPoolManage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import java.util.List; +import java.util.Objects; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; +import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD_POOL_TEXT; + +/** + * Dynamic thread-pool refresh listener. + */ +@Slf4j +@RequiredArgsConstructor +public class DynamicThreadPoolRefreshListener implements Observer { + + @Override + public void accept(ObserverMessage observerMessage) { + BootstrapConfigProperties bindableConfigProperties = observerMessage.message(); + List executors = bindableConfigProperties.getExecutors(); + for (ExecutorProperties properties : executors) { + String threadPoolId = properties.getThreadPoolId(); + dynamicRefreshPool(threadPoolId, properties); + ExecutorProperties beforeProperties = GlobalConfigThreadPoolManage.getProperties(properties.getThreadPoolId()); + log.info(CHANGE_THREAD_POOL_TEXT, + threadPoolId, + String.format(CHANGE_DELIMITER, beforeProperties.getCorePoolSize(), properties.getCorePoolSize()), + String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), properties.getMaximumPoolSize()), + String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), properties.getQueueCapacity()), + String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), properties.getKeepAliveTime()), + String.format(CHANGE_DELIMITER, beforeProperties.getRejectedHandler(), properties.getRejectedHandler()), + String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())); + } + } + + /** + * Dynamic refresh pool. + * + * @param threadPoolId + * @param properties + */ + private void dynamicRefreshPool(String threadPoolId, ExecutorProperties properties) { + ExecutorProperties beforeProperties = GlobalConfigThreadPoolManage.getProperties(properties.getThreadPoolId()); + ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId); + if (properties.getMaximumPoolSize() != null && properties.getCorePoolSize() != null) { + ThreadPoolExecutorUtil.safeSetPoolSize(executor, properties.getCorePoolSize(), properties.getMaximumPoolSize()); + } else { + if (properties.getMaximumPoolSize() != null) { + executor.setMaximumPoolSize(properties.getMaximumPoolSize()); + } + if (properties.getCorePoolSize() != null) { + executor.setCorePoolSize(properties.getCorePoolSize()); + } + } + if (properties.getAllowCoreThreadTimeOut() != null && !Objects.equals(beforeProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())) { + executor.allowCoreThreadTimeOut(properties.getAllowCoreThreadTimeOut()); + } + // TODO + if (properties.getExecuteTimeOut() != null && !Objects.equals(beforeProperties.getExecuteTimeOut(), properties.getExecuteTimeOut())) { + // if (executor instanceof DynamicThreadPoolExecutor) { + // ((DynamicThreadPoolExecutor) executor).setExecuteTimeOut(properties.getExecuteTimeOut()); + // } + } + if (properties.getRejectedHandler() != null && !Objects.equals(beforeProperties.getRejectedHandler(), properties.getRejectedHandler())) { + RejectedExecutionHandler rejectedExecutionHandler = RejectedPolicyTypeEnum.createPolicy(properties.getRejectedHandler()); + executor.setRejectedExecutionHandler(rejectedExecutionHandler); + } + if (properties.getKeepAliveTime() != null && !Objects.equals(beforeProperties.getKeepAliveTime(), properties.getKeepAliveTime())) { + executor.setKeepAliveTime(properties.getKeepAliveTime(), TimeUnit.SECONDS); + } + if (properties.getQueueCapacity() != null && !Objects.equals(beforeProperties.getQueueCapacity(), properties.getQueueCapacity()) + && Objects.equals(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE.getName(), executor.getQueue().getClass().getSimpleName())) { + if (executor.getQueue() instanceof ResizableCapacityLinkedBlockingQueue) { + ResizableCapacityLinkedBlockingQueue queue = (ResizableCapacityLinkedBlockingQueue) executor.getQueue(); + queue.setCapacity(properties.getQueueCapacity()); + } else { + log.warn("The queue length cannot be modified. Queue type mismatch. Current queue type: {}", executor.getQueue().getClass().getSimpleName()); + } + } + } +} diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java index db8eda87..9300ab11 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/config/ConfigHandlerAutoConfiguration.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot1x.starter.config; -import cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapt; +import cn.hippo4j.config.springboot1x.starter.refresher.SpringBoot1xBootstrapConfigPropertiesBinderAdapter; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.bind.RelaxedDataBinder; @@ -31,6 +31,6 @@ public class ConfigHandlerAutoConfiguration { @Bean @ConditionalOnClass(RelaxedDataBinder.class) public BootstrapConfigPropertiesBinderAdapter bootstrapConfigPropertiesBinderAdapter() { - return new SpringBoot1xBootstrapConfigPropertiesBinderAdapt(); + return new SpringBoot1xBootstrapConfigPropertiesBinderAdapter(); } } diff --git a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapter.java similarity index 95% rename from starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java rename to starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapter.java index f6015d22..f07dc976 100644 --- a/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapt.java +++ b/starters/threadpool/config-spring-boot-1x/src/main/java/cn/hippo4j/config/springboot1x/starter/refresher/SpringBoot1xBootstrapConfigPropertiesBinderAdapter.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot1x.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.beans.BeanUtils; @@ -41,7 +41,7 @@ import java.util.Set; /** * Bootstrap core properties binder adapt. */ -public class SpringBoot1xBootstrapConfigPropertiesBinderAdapt implements ApplicationContextAware, BootstrapConfigPropertiesBinderAdapter { +public class SpringBoot1xBootstrapConfigPropertiesBinderAdapter implements ApplicationContextAware, BootstrapConfigPropertiesBinderAdapter { private ApplicationContext applicationContext; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java index 2a426dde..079d0f05 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/ConfigHandlerConfiguration.java @@ -18,6 +18,7 @@ package cn.hippo4j.config.springboot.starter.config; import cn.hippo4j.config.springboot.starter.refresher.*; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import com.alibaba.cloud.nacos.NacosConfigProperties; import com.alibaba.nacos.api.config.ConfigService; @@ -58,7 +59,7 @@ public class ConfigHandlerConfiguration { @Bean @ConditionalOnMissingBean public BootstrapConfigPropertiesBinderAdapter bootstrapConfigPropertiesBinderAdapter() { - return new DefaultBootstrapConfigPropertiesBinderAdapt(); + return new DefaultBootstrapConfigPropertiesBinderAdapter(); } /** diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index d0341186..ca97ebe0 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -42,6 +42,7 @@ import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; import cn.hippo4j.message.service.Hippo4jSendMessageService; import cn.hippo4j.message.service.WebThreadPoolConfigChangeHandler; import cn.hippo4j.springboot.starter.adapter.web.WebAdapterConfiguration; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import lombok.AllArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; @@ -69,7 +70,7 @@ import org.springframework.core.annotation.Order; @AllArgsConstructor @ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnProperty(prefix = BootstrapConfigProperties.PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") -@EnableConfigurationProperties(BootstrapConfigProperties.class) +@EnableConfigurationProperties(SpringBootstrapConfigProperties.class) @Import(ConfigHandlerConfiguration.class) @ImportAutoConfiguration({WebAdapterConfiguration.class, UtilAutoConfiguration.class, MessageConfiguration.class}) public class DynamicThreadPoolAutoConfiguration { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/AbstractConfigParser.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/SpringBootstrapConfigProperties.java similarity index 66% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/AbstractConfigParser.java rename to starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/SpringBootstrapConfigProperties.java index 38b0c162..5c99b900 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/AbstractConfigParser.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/SpringBootstrapConfigProperties.java @@ -15,15 +15,14 @@ * limitations under the License. */ -package cn.hippo4j.config.springboot.starter.parser; +package cn.hippo4j.config.springboot.starter.config; + +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import org.springframework.boot.context.properties.ConfigurationProperties; /** - * Abstract config parser + * Spring bootstrap core properties. */ -public abstract class AbstractConfigParser implements ConfigParser { - - @Override - public boolean supports(ConfigFileTypeEnum type) { - return getConfigFileTypes().contains(type); - } +@ConfigurationProperties(prefix = BootstrapConfigProperties.PREFIX) +public class SpringBootstrapConfigProperties extends BootstrapConfigProperties { } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java index 69621876..e83b6081 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java @@ -29,8 +29,8 @@ import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.executor.ThreadFactoryBuilder; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.config.springboot.starter.config.MonitorProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.MonitorProperties; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.monitor.base.DynamicThreadPoolMonitor; import cn.hippo4j.monitor.base.ThreadPoolMonitor; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java index a7167099..324ba783 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java @@ -23,9 +23,9 @@ import cn.hippo4j.common.model.executor.ExecutorNotifyProperties; import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.config.springboot.starter.config.NotifyPlatformProperties; -import cn.hippo4j.config.springboot.starter.config.WebExecutorProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.NotifyPlatformProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.WebExecutorProperties; import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.service.AlarmControlHandler; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigFileTypeEnum.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigFileTypeEnum.java deleted file mode 100644 index ae727644..00000000 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigFileTypeEnum.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.springboot.starter.parser; - -import lombok.Getter; - -/** - * Config file type enum - */ -@Getter -public enum ConfigFileTypeEnum { - - /** - * PROPERTIES - */ - PROPERTIES("properties"), - - /** - * XML - */ - XML("xml"), - - /** - * JSON - */ - JSON("json"), - - /** - * YML - */ - YML("yml"), - - /** - * YAML - */ - YAML("yaml"), - - /** - * TXT - */ - TXT("txt"); - - private final String value; - - ConfigFileTypeEnum(String value) { - this.value = value; - } - - public static ConfigFileTypeEnum of(String value) { - for (ConfigFileTypeEnum typeEnum : ConfigFileTypeEnum.values()) { - if (typeEnum.value.equals(value)) { - return typeEnum; - } - } - return PROPERTIES; - } -} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParser.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParser.java deleted file mode 100644 index 9b182086..00000000 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParser.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.springboot.starter.parser; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -/** - * Config parser. - */ -public interface ConfigParser { - - /** - * Supports. - * - * @param type - * @return - */ - boolean supports(ConfigFileTypeEnum type); - - /** - * Do parse. - * - * @param content - * @return - * @throws IOException - */ - Map doParse(String content) throws IOException; - - /** - * Get config file types. - * - * @return - */ - List getConfigFileTypes(); -} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java deleted file mode 100644 index 93d394b3..00000000 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.springboot.starter.parser; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.ServiceLoader; - -/** - * Config parser handler. - */ -public final class ConfigParserHandler { - - private static final List PARSERS = new ArrayList<>(); - - private ConfigParserHandler() { - ServiceLoader loader = ServiceLoader.load(ConfigParser.class); - for (ConfigParser configParser : loader) { - PARSERS.add(configParser); - } - PARSERS.add(new PropertiesConfigParser()); - PARSERS.add(new YamlConfigParser()); - } - - public Map parseConfig(String content, ConfigFileTypeEnum type) throws IOException { - for (ConfigParser parser : PARSERS) { - if (parser.supports(type)) { - return parser.doParse(content); - } - } - return Collections.emptyMap(); - } - - public static ConfigParserHandler getInstance() { - return ConfigParserHandlerHolder.INSTANCE; - } - - /** - * Config Parser Handler Holder - */ - private static class ConfigParserHandlerHolder { - - private static final ConfigParserHandler INSTANCE = new ConfigParserHandler(); - } -} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java deleted file mode 100644 index 1a2260df..00000000 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.springboot.starter.parser; - -import cn.hippo4j.common.toolkit.CollectionUtil; - -import java.io.IOException; -import java.io.StringReader; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * Properties config parser. - */ -public class PropertiesConfigParser extends AbstractConfigParser { - - @Override - public Map doParse(String content) throws IOException { - Properties properties = new Properties(); - properties.load(new StringReader(content)); - return properties; - } - - @Override - public List getConfigFileTypes() { - return CollectionUtil.newArrayList(ConfigFileTypeEnum.PROPERTIES); - } -} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java deleted file mode 100644 index e05f8bea..00000000 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.config.springboot.starter.parser; - -import cn.hippo4j.common.toolkit.CollectionUtil; -import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; -import org.springframework.core.io.ByteArrayResource; -import org.springframework.util.StringUtils; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Yaml config parser. - */ -public class YamlConfigParser extends AbstractConfigParser { - - @Override - public Map doParse(String content) { - if (StringUtils.isEmpty(content)) { - return new HashMap<>(1); - } - YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); - yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes())); - return yamlPropertiesFactoryBean.getObject(); - } - - @Override - public List getConfigFileTypes() { - return CollectionUtil.newArrayList(ConfigFileTypeEnum.YML, ConfigFileTypeEnum.YAML); - } -} diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index 417a7a2a..fca575ba 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -18,13 +18,13 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; -import cn.hippo4j.config.springboot.starter.parser.ConfigParserHandler; import cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEvent; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.support.ThreadPoolBuilder; import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.dynamic.mode.config.parser.ConfigParserHandler; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java index ec1a7599..ff839d6e 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.ConfigFile; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapter.java similarity index 90% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java rename to starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapter.java index 4f84edd0..af40d3e2 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapt.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/DefaultBootstrapConfigPropertiesBinderAdapter.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.BootstrapConfigPropertiesBinderAdapter; import org.springframework.boot.context.properties.bind.Bindable; @@ -30,7 +30,7 @@ import java.util.Map; /** * Bootstrap core properties binder adapt. */ -public class DefaultBootstrapConfigPropertiesBinderAdapt implements BootstrapConfigPropertiesBinderAdapter { +public class DefaultBootstrapConfigPropertiesBinderAdapter implements BootstrapConfigPropertiesBinderAdapter { /** * Bootstrap core properties binder. diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java index c4526ec0..b6979c9b 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/EtcdRefresherHandler.java @@ -19,7 +19,7 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import io.etcd.jetcd.ByteSequence; import io.etcd.jetcd.Client; import io.etcd.jetcd.ClientBuilder; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java index 62dd2601..9dcd2eef 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosCloudRefresherHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.core.config.ApplicationContextHolder; import com.alibaba.cloud.nacos.NacosConfigProperties; import com.alibaba.nacos.api.config.ConfigService; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java index 2abaaef2..88e53aae 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/NacosRefresherHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import com.alibaba.nacos.api.annotation.NacosInjected; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.listener.Listener; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index 87f61bfc..62ba302d 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.refresher; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.message.service.GlobalNotifyAlarmManage; import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java index 2b518447..fd197215 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java @@ -23,7 +23,7 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.config.springboot.starter.config.AdapterExecutorProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.AdapterExecutorProperties; import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolAdapterRegister; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java index 9983d594..bd7b959e 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java @@ -23,10 +23,10 @@ import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; -import cn.hippo4j.config.springboot.starter.support.GlobalCoreThreadPoolManage; +import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalConfigThreadPoolManage; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.message.dto.NotifyConfigDTO; @@ -87,8 +87,8 @@ public class DynamicThreadPoolRefreshListener extends AbstractRefreshListener ((DynamicThreadPoolExecutor) each).getThreadPoolId()) // the internal thread pool is also managed by spring, no manual destruction required .filter(applicationContext::containsBeanDefinition) .map(GlobalThreadPoolManage::getExecutorService) diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java index 1f2617c7..a83835a1 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -96,12 +96,11 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { log.error("Failed to create dynamic thread pool in annotation mode.", ex); return bean; } - DynamicThreadPoolExecutor dynamicThreadPoolExecutor; - dynamicThreadPoolExecutor = DynamicThreadPoolAdapterChoose.unwrap(bean); + ThreadPoolExecutor dynamicThreadPoolExecutor = DynamicThreadPoolAdapterChoose.unwrap(bean); if ((dynamicThreadPoolExecutor) == null) { dynamicThreadPoolExecutor = (DynamicThreadPoolExecutor) bean; } - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = new DynamicThreadPoolWrapper(dynamicThreadPoolExecutor.getThreadPoolId(), dynamicThreadPoolExecutor); + DynamicThreadPoolWrapper dynamicThreadPoolWrapper = new DynamicThreadPoolWrapper(((DynamicThreadPoolExecutor) dynamicThreadPoolExecutor).getThreadPoolId(), dynamicThreadPoolExecutor); ThreadPoolExecutor remoteThreadPoolExecutor = fillPoolAndRegister(dynamicThreadPoolWrapper); DynamicThreadPoolAdapterChoose.replace(bean, remoteThreadPoolExecutor); subscribeConfig(dynamicThreadPoolWrapper); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java index 4ae9d3ad..c7f8df03 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplate.java @@ -66,7 +66,7 @@ public class AbstractBuildThreadPoolTemplate { Assert.notNull(initParam); ThreadPoolExecutor executorService; try { - executorService = new ThreadPoolExecutorTemplate(initParam.getCorePoolNum(), + executorService = new ThreadPoolExecutor(initParam.getCorePoolNum(), initParam.getMaximumPoolSize(), initParam.getKeepAliveTime(), initParam.getTimeUnit(), @@ -80,41 +80,6 @@ public class AbstractBuildThreadPoolTemplate { return executorService; } - /** - * Build a fast-consuming task thread pool. - * - * @return fast thread-pool executor - */ - public static ThreadPoolExecutor buildFastPool() { - ThreadPoolInitParam initParam = initParam(); - return buildFastPool(initParam); - } - - /** - * Build a fast-consuming task thread pool. - * - * @param initParam init param - * @return fast thread-pool executor - */ - public static ThreadPoolExecutor buildFastPool(ThreadPoolInitParam initParam) { - TaskQueue taskQueue = new TaskQueue(initParam.getCapacity()); - FastThreadPoolExecutor fastThreadPoolExecutor; - try { - fastThreadPoolExecutor = new FastThreadPoolExecutor(initParam.getCorePoolNum(), - initParam.getMaximumPoolSize(), - initParam.getKeepAliveTime(), - initParam.getTimeUnit(), - taskQueue, - initParam.getThreadFactory(), - initParam.rejectedExecutionHandler); - } catch (IllegalArgumentException ex) { - throw new IllegalArgumentException("Error creating thread pool parameter.", ex); - } - taskQueue.setExecutor(fastThreadPoolExecutor); - fastThreadPoolExecutor.allowCoreThreadTimeOut(initParam.allowCoreThreadTimeOut); - return fastThreadPoolExecutor; - } - /** * Build a dynamic monitor thread-pool. * diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java deleted file mode 100644 index b556ae00..00000000 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/AbstractDynamicExecutorSupport.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.core.executor.support; - -import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; - -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Future; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.RunnableFuture; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * Dynamic executor configuration support. - * - * @deprecated use {@link ThreadPoolExecutorShutdownPlugin} to get thread-pool shutdown support - */ -@Deprecated -@Slf4j -public abstract class AbstractDynamicExecutorSupport extends ThreadPoolExecutor implements InitializingBean, DisposableBean { - - private String threadPoolId; - - private ExecutorService executor; - - private long awaitTerminationMillis; - - private boolean waitForTasksToCompleteOnShutdown; - - public AbstractDynamicExecutorSupport(int corePoolSize, - int maximumPoolSize, - long keepAliveTime, - TimeUnit unit, - boolean waitForTasksToCompleteOnShutdown, - long awaitTerminationMillis, - BlockingQueue workQueue, - String threadPoolId, - ThreadFactory threadFactory, - RejectedExecutionHandler handler) { - super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); - this.threadPoolId = threadPoolId; - this.waitForTasksToCompleteOnShutdown = waitForTasksToCompleteOnShutdown; - this.awaitTerminationMillis = awaitTerminationMillis; - } - - /** - * Create the target {@link java.util.concurrent.ExecutorService} instance. - * Called by {@code afterPropertiesSet}. - * - * @return a new ExecutorService instance - * @see #afterPropertiesSet() - */ - protected abstract ExecutorService initializeExecutor(); - - /** - * Calls {@code initialize()} after the container applied all property values. - * - * @see #initialize() - */ - @Override - public void afterPropertiesSet() { - initialize(); - } - - /** - * Calls {@code shutdown} when the BeanFactory destroys. - * the task executor instance. - * - * @see #shutdown() - */ - @Override - public void destroy() { - shutdownSupport(); - } - - /** - * Set up the ExecutorService. - */ - public void initialize() { - if (log.isInfoEnabled()) { - log.info("Initializing ExecutorService" + (this.threadPoolId != null ? " '" + this.threadPoolId + "'" : "")); - } - - this.executor = initializeExecutor(); - } - - /** - * Set support param. - * - * @param awaitTerminationMillis - * @param waitForTasksToCompleteOnShutdown - */ - public void setSupportParam(long awaitTerminationMillis, boolean waitForTasksToCompleteOnShutdown) { - this.awaitTerminationMillis = awaitTerminationMillis; - this.waitForTasksToCompleteOnShutdown = waitForTasksToCompleteOnShutdown; - } - - /** - * Perform a shutdown on the underlying ExecutorService. - * - * @see java.util.concurrent.ExecutorService#shutdown() - * @see java.util.concurrent.ExecutorService#shutdownNow() - */ - public void shutdownSupport() { - if (log.isInfoEnabled()) { - log.info("Shutting down ExecutorService" + (this.threadPoolId != null ? " '" + this.threadPoolId + "'" : "")); - } - if (this.executor != null) { - if (this.waitForTasksToCompleteOnShutdown) { - this.executor.shutdown(); - } else { - for (Runnable remainingTask : this.executor.shutdownNow()) { - cancelRemainingTask(remainingTask); - } - } - awaitTerminationIfNecessary(this.executor); - } - } - - /** - * Cancel the given remaining task which never commended execution, - * as returned from {@link ExecutorService#shutdownNow()}. - * - * @param task the task to cancel (typically a {@link RunnableFuture}) - * @see #shutdown() - * @see RunnableFuture#cancel(boolean) - * @since 5.0.5 - */ - protected void cancelRemainingTask(Runnable task) { - if (task instanceof Future) { - ((Future) task).cancel(true); - } - } - - /** - * Wait for the executor to terminate, according to the value of the. - */ - private void awaitTerminationIfNecessary(ExecutorService executor) { - if (this.awaitTerminationMillis > 0) { - try { - if (!executor.awaitTermination(this.awaitTerminationMillis, TimeUnit.MILLISECONDS)) { - if (log.isWarnEnabled()) { - log.warn("Timed out while waiting for executor" - + (this.threadPoolId != null ? " '" + this.threadPoolId + "'" : "") + " to terminate."); - } - } - } catch (InterruptedException ex) { - if (log.isWarnEnabled()) { - log.warn("Interrupted while waiting for executor" - + (this.threadPoolId != null ? " '" + this.threadPoolId + "'" : "") + " to terminate."); - } - Thread.currentThread().interrupt(); - } - } - } -} diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutor.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutor.java deleted file mode 100644 index c4e4f569..00000000 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutor.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.core.executor.support; - -import lombok.extern.slf4j.Slf4j; - -import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Fast thread-pool executor. - */ -@Slf4j -public class FastThreadPoolExecutor extends ThreadPoolExecutorTemplate { - - public FastThreadPoolExecutor(int corePoolSize, - int maximumPoolSize, - long keepAliveTime, - TimeUnit unit, - TaskQueue workQueue, - ThreadFactory threadFactory, - RejectedExecutionHandler handler) { - super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); - } - - /** - * Statistics on the number of tasks submitted by the fast consumption thread pool - */ - private final AtomicInteger submittedTaskCount = new AtomicInteger(0); - - /** - * Get submitted task count. - * - * @return submitted task count - */ - public int getSubmittedTaskCount() { - return submittedTaskCount.get(); - } - - @Override - protected void afterExecute(Runnable r, Throwable t) { - submittedTaskCount.decrementAndGet(); - } - - @Override - public void execute(Runnable command) { - submittedTaskCount.incrementAndGet(); - try { - super.execute(command); - } catch (RejectedExecutionException rx) { - final TaskQueue queue = (TaskQueue) super.getQueue(); - try { - if (!queue.retryOffer(command, 0, TimeUnit.MILLISECONDS)) { - submittedTaskCount.decrementAndGet(); - throw new RejectedExecutionException("The blocking queue capacity is full.", rx); - } - } catch (InterruptedException x) { - submittedTaskCount.decrementAndGet(); - throw new RejectedExecutionException(x); - } - } catch (Exception t) { - submittedTaskCount.decrementAndGet(); - throw t; - } - } -} diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/TaskQueue.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/TaskQueue.java deleted file mode 100644 index 9eeedcf9..00000000 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/TaskQueue.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.core.executor.support; - -import lombok.Setter; - -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.TimeUnit; - -/** - * Task queue. - */ -public class TaskQueue extends LinkedBlockingQueue { - - private static final long serialVersionUID = -2635853580887179627L; - - @Setter - private FastThreadPoolExecutor executor; - - public TaskQueue(int capacity) { - super(capacity); - } - - @Override - public boolean offer(Runnable runnable) { - int currentPoolThreadSize = executor.getPoolSize(); - // If a core thread is idle, add the task to the blocking queue, and the core thread will process the task. - if (executor.getSubmittedTaskCount() < currentPoolThreadSize) { - return super.offer(runnable); - } - // The current number of threads in the thread pool is less than the maximum number of threads, and returns false. - // According to the thread pool source code, non-core threads will be created. - if (currentPoolThreadSize < executor.getMaximumPoolSize()) { - return false; - } - // If the current thread pool number is greater than the maximum number of threads, the task is added to the blocking queue. - return super.offer(runnable); - } - - /** - * Retry offer. - * - * @param runnable submit thread pool task - * @param timeout how long to wait before giving up, in units of - * {@code unit} - * @param unit a {@code TimeUnit} determining how to interpret the - * {@code timeout} parameter - * @return - * @throws InterruptedException - */ - public boolean retryOffer(Runnable runnable, long timeout, TimeUnit unit) throws InterruptedException { - if (executor.isShutdown()) { - throw new RejectedExecutionException("Actuator closed!"); - } - return super.offer(runnable, timeout, unit); - } -} diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java index ca174ca0..3d432362 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolBuilder.java @@ -411,16 +411,6 @@ public class ThreadPoolBuilder implements Builder { return AbstractBuildThreadPoolTemplate.buildPool(buildInitParam(builder)); } - /** - * Build a fast thread-pool with {@code builder}. - * - * @param builder thread-pool builder - * @return fast thread-pool executor - */ - private static ThreadPoolExecutor buildFastPool(ThreadPoolBuilder builder) { - return AbstractBuildThreadPoolTemplate.buildFastPool(buildInitParam(builder)); - } - /** * Build a dynamic thread-pool with {@code builder}. * @@ -474,9 +464,6 @@ public class ThreadPoolBuilder implements Builder { @Override public ThreadPoolExecutor build() { - if (isDynamicPool) { - return buildDynamicPool(this); - } - return isFastPool ? buildFastPool(this) : buildPool(this); + return isDynamicPool ? buildDynamicPool(this) : buildPool(this); } } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolExecutorTemplate.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolExecutorTemplate.java deleted file mode 100644 index 8d073065..00000000 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/ThreadPoolExecutorTemplate.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.core.executor.support; - -import cn.hippo4j.common.toolkit.ArrayUtil; - -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * ThreadPool executor template. - */ -public class ThreadPoolExecutorTemplate extends ThreadPoolExecutor { - - public ThreadPoolExecutorTemplate(int corePoolSize, - int maximumPoolSize, - long keepAliveTime, - TimeUnit unit, - BlockingQueue workQueue, - ThreadFactory threadFactory, - RejectedExecutionHandler handler) { - super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); - } - - @Override - public void execute(final Runnable command) { - super.execute(wrap(command, clientTrace())); - } - - @Override - public Future submit(final Runnable task) { - return super.submit(wrap(task, clientTrace())); - } - - @Override - public Future submit(final Callable task) { - return super.submit(wrap(task, clientTrace())); - } - - /** - * Client trace. - * - * @return exception - */ - private Exception clientTrace() { - return new Exception("Tread task root stack trace."); - } - - /** - * Wrapping thread pool tasks. - * - * @param task task - * @param clientStack client stack - * @return wrapped runnable - */ - private Runnable wrap(final Runnable task, final Exception clientStack) { - return () -> { - try { - task.run(); - } catch (Exception e) { - e.setStackTrace(ArrayUtil.addAll(clientStack.getStackTrace(), e.getStackTrace())); - throw e; - } - }; - } - - /** - * Wrapping thread pool tasks. - * - * @param task task - * @param clientStack client stack - * @param computed result - * @return wrapped runnable - */ - private Callable wrap(final Callable task, final Exception clientStack) { - return () -> { - try { - return task.call(); - } catch (Exception e) { - e.setStackTrace(ArrayUtil.addAll(clientStack.getStackTrace(), e.getStackTrace())); - throw e; - } - }; - } -} diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapter.java index 54f97449..6296321e 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapter.java @@ -17,9 +17,8 @@ package cn.hippo4j.core.executor.support.adpter; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; - import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; /** * Dynamic thread pool adapter. @@ -42,7 +41,7 @@ public interface DynamicThreadPoolAdapter { * of dynamic thread pools * @return get the real dynamic thread pool instance */ - DynamicThreadPoolExecutor unwrap(Object executor); + ThreadPoolExecutor unwrap(Object executor); /** * If the {@link DynamicThreadPoolAdapter#match(Object)} conditions are met, diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java index 9dc940e9..cce70f36 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/DynamicThreadPoolAdapterChoose.java @@ -19,14 +19,13 @@ package cn.hippo4j.core.executor.support.adpter; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.support.spi.DynamicThreadPoolAdapterSPI; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; /** * Dynamic thread pool adapter choose. @@ -61,7 +60,7 @@ public class DynamicThreadPoolAdapterChoose { * of dynamic thread pools * @return get the real dynamic thread pool instance */ - public static DynamicThreadPoolExecutor unwrap(Object executor) { + public static ThreadPoolExecutor unwrap(Object executor) { Optional dynamicThreadPoolAdapterOptional = DYNAMIC_THREAD_POOL_ADAPTERS.stream().filter(each -> each.match(executor)).findFirst(); return dynamicThreadPoolAdapterOptional.map(each -> each.unwrap(executor)).orElse(null); } @@ -83,15 +82,14 @@ public class DynamicThreadPoolAdapterChoose { * Load SPI customer adapter. */ private static void loadCustomerAdapter() { - ServiceLoaderRegistry.register(DynamicThreadPoolAdapterSPI.class); - Collection instances = ServiceLoaderRegistry.getSingletonServiceInstances(DynamicThreadPoolAdapterSPI.class); + ServiceLoaderRegistry.register(DynamicThreadPoolAdapter.class); + Collection instances = ServiceLoaderRegistry.getSingletonServiceInstances(DynamicThreadPoolAdapter.class); if (CollectionUtil.isEmpty(instances)) { return; } - for (DynamicThreadPoolAdapterSPI instance : instances) { - DynamicThreadPoolAdapter adapter = instance.adapter(); - if (adapter != null) { - DYNAMIC_THREAD_POOL_ADAPTERS.add(adapter); + for (DynamicThreadPoolAdapter instance : instances) { + if (instance != null) { + DYNAMIC_THREAD_POOL_ADAPTERS.add(instance); } } } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java index 79b6aa22..69e0ec8d 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ThreadPoolTaskExecutorAdapter.java @@ -35,17 +35,11 @@ import java.util.concurrent.TimeUnit; public class ThreadPoolTaskExecutorAdapter implements DynamicThreadPoolAdapter { private static final String EXECUTOR_FIELD_NAME = "threadPoolExecutor"; - private static final String WAIT_FOR_TASKS_TO_COMPLETE_ON_SHUTDOWN = "waitForTasksToCompleteOnShutdown"; - private static final String AWAIT_TERMINATION_MILLIS = "awaitTerminationMillis"; - private static final String TASK_DECORATOR = "taskDecorator"; - private static final String BEAN_NAME = "beanName"; - private static final String QUEUE_CAPACITY = "queueCapacity"; - private static final String MATCH_CLASS_NAME = "ThreadPoolTaskExecutor"; @Override @@ -55,7 +49,7 @@ public class ThreadPoolTaskExecutorAdapter implements DynamicThreadPoolAdapter { } @Override - public DynamicThreadPoolExecutor unwrap(Object executor) { + public ThreadPoolExecutor unwrap(Object executor) { Object unwrap = ReflectUtil.getFieldValue(executor, EXECUTOR_FIELD_NAME); if (unwrap == null) { return null; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java index 12863417..f064e8f7 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/adpter/ZipkinExecutorAdapter.java @@ -25,6 +25,7 @@ import java.lang.reflect.Field; import java.util.Objects; import java.util.Optional; import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; /** * Zipkin thread local executor adapter. @@ -49,7 +50,7 @@ public class ZipkinExecutorAdapter implements DynamicThreadPoolAdapter { } @Override - public DynamicThreadPoolExecutor unwrap(Object executor) { + public ThreadPoolExecutor unwrap(Object executor) { Object unwrap = doUnwrap(executor); if (unwrap instanceof DynamicThreadPoolExecutor) { return (DynamicThreadPoolExecutor) unwrap; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/spi/DynamicThreadPoolAdapterSPI.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/spi/DynamicThreadPoolAdapterSPI.java index 1fe5780d..0b4bbe7d 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/spi/DynamicThreadPoolAdapterSPI.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/support/spi/DynamicThreadPoolAdapterSPI.java @@ -17,8 +17,6 @@ package cn.hippo4j.core.executor.support.spi; -import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapter; - /** * Dynamic thread-pool adapter SPI. */ @@ -32,5 +30,5 @@ public interface DynamicThreadPoolAdapterSPI { /** * Adapter. */ - DynamicThreadPoolAdapter adapter(); + // DynamicThreadPoolAdapter adapter(); } diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java index 0e77555c..2db5ea4e 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/AbstractBuildThreadPoolTemplateTest.java @@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** * test for {@link AbstractBuildThreadPoolTemplate} + * * @author dmego */ public class AbstractBuildThreadPoolTemplateTest { @@ -73,27 +74,6 @@ public class AbstractBuildThreadPoolTemplateTest { } - @Test - public void testBuildFastPool() { - ThreadPoolExecutor executor = AbstractBuildThreadPoolTemplate.buildFastPool(initParam); - AtomicInteger count = new AtomicInteger(0); - executor.submit(() -> { - ThreadUtil.sleep(100L); - return count.incrementAndGet(); - }); - executor.submit(() -> { - ThreadUtil.sleep(100L); - count.incrementAndGet(); - }); - - // waiting for shutdown - executor.shutdown(); - while (!executor.isTerminated()) { - } - Assert.assertEquals(2, count.get()); - - } - @Test public void testBuildDynamicPool() { initParam.setWaitForTasksToCompleteOnShutdown(true); diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java deleted file mode 100644 index f48ff809..00000000 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/support/FastThreadPoolExecutorTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.core.executor.support; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * test for {@link FastThreadPoolExecutor} - */ -public class FastThreadPoolExecutorTest { - - private final static int corePoolSize = 1; - - private final static int capacity = 1; - - private final TaskQueue taskQueue = new TaskQueue<>(capacity); - - private final FastThreadPoolExecutor fastThreadPoolExecutor = new FastThreadPoolExecutor(corePoolSize, - corePoolSize, - 10, - TimeUnit.SECONDS, - taskQueue, - Thread::new, - new ThreadPoolExecutor.AbortPolicy()); - - { - taskQueue.setExecutor(fastThreadPoolExecutor); - } - - @Test - void testSubmittedTaskCount() { - fastThreadPoolExecutor.execute(() -> { - try { - TimeUnit.SECONDS.sleep(2); - } catch (InterruptedException ignored) { - } - }); - - try { - TimeUnit.SECONDS.sleep(1); - } catch (InterruptedException ignored) { - } - Assertions.assertEquals(1, fastThreadPoolExecutor.getSubmittedTaskCount()); - - try { - TimeUnit.SECONDS.sleep(1); - } catch (InterruptedException ignored) { - } - Assertions.assertEquals(0, fastThreadPoolExecutor.getSubmittedTaskCount()); - - // exception - int expected = 0; - for (int i = 0; i <= (corePoolSize + capacity); i++) { - expected++; - try { - fastThreadPoolExecutor.execute(() -> { - synchronized (fastThreadPoolExecutor) { - try { - fastThreadPoolExecutor.wait(); - } catch (InterruptedException ignored) { - } - } - }); - } catch (Exception e) { - expected--; - } - } - - try { - TimeUnit.SECONDS.sleep(1); - } catch (InterruptedException ignored) { - } - Assertions.assertEquals(expected, fastThreadPoolExecutor.getSubmittedTaskCount()); - - synchronized (fastThreadPoolExecutor) { - fastThreadPoolExecutor.notifyAll(); - } - } -} From cfa514bf144ef15f504f238a242e18ffb7a376db Mon Sep 17 00:00:00 2001 From: magestack Date: Tue, 23 May 2023 23:58:22 +0800 Subject: [PATCH 35/58] Update hippo4j-agent-plugin version to revision (#1323) --- agent/hippo4j-agent-plugin/adapter-plugins/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml index 82fb0249..38bfb05c 100644 --- a/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml +++ b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml @@ -6,7 +6,7 @@ cn.hippo4j hippo4j-agent-plugin - 2.0.0-SNAPSHOT + ${revision} hippo4j-agent-adapter-plugins From 1b81e00b5667aa3fd059980dedd5cd28c027cd76 Mon Sep 17 00:00:00 2001 From: yanrongzhen Date: Wed, 24 May 2023 11:01:36 +0800 Subject: [PATCH 36/58] fix agent dist package (#1324) --- .../{mode/config => }/apollo-plugin/pom.xml | 4 ++-- .../apollo/boot/ApolloPluginBootService.java | 0 .../apollo/define/ApolloInstrumentation.java | 0 .../DefaultConfigConstructorInterceptor.java | 0 .../cn.hippo4j.agent.core.boot.BootService | 0 .../src/main/resources/hippo4j-plugin.def | 0 agent/hippo4j-agent-plugin/mode/config/pom.xml | 18 ------------------ agent/hippo4j-agent-plugin/mode/pom.xml | 18 ------------------ agent/hippo4j-agent-plugin/pom.xml | 2 +- 9 files changed, 3 insertions(+), 39 deletions(-) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/pom.xml (85%) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java (100%) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java (100%) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java (100%) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService (100%) rename agent/hippo4j-agent-plugin/{mode/config => }/apollo-plugin/src/main/resources/hippo4j-plugin.def (100%) delete mode 100644 agent/hippo4j-agent-plugin/mode/config/pom.xml delete mode 100644 agent/hippo4j-agent-plugin/mode/pom.xml diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml b/agent/hippo4j-agent-plugin/apollo-plugin/pom.xml similarity index 85% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml rename to agent/hippo4j-agent-plugin/apollo-plugin/pom.xml index f1cce5e5..90f71b3d 100644 --- a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/apollo-plugin/pom.xml @@ -5,11 +5,11 @@ 4.0.0 cn.hippo4j - hippo4j-agent-config-mode + hippo4j-agent-plugin ${revision} - hippo4j-agent-config-apollo-plugin + hippo4j-agent-apollo-plugin 1.9.1 diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java similarity index 100% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/boot/ApolloPluginBootService.java diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java similarity index 100% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/define/ApolloInstrumentation.java diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java similarity index 100% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/java/cn/hippo4j/agent/plugin/apollo/interceptor/DefaultConfigConstructorInterceptor.java diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService similarity index 100% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService diff --git a/agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/hippo4j-plugin.def b/agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def similarity index 100% rename from agent/hippo4j-agent-plugin/mode/config/apollo-plugin/src/main/resources/hippo4j-plugin.def rename to agent/hippo4j-agent-plugin/apollo-plugin/src/main/resources/hippo4j-plugin.def diff --git a/agent/hippo4j-agent-plugin/mode/config/pom.xml b/agent/hippo4j-agent-plugin/mode/config/pom.xml deleted file mode 100644 index d0414050..00000000 --- a/agent/hippo4j-agent-plugin/mode/config/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - cn.hippo4j - hippo4j-agent-mode - ${revision} - - - hippo4j-agent-config-mode - pom - - - apollo-plugin - - \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/mode/pom.xml b/agent/hippo4j-agent-plugin/mode/pom.xml deleted file mode 100644 index 39a427e5..00000000 --- a/agent/hippo4j-agent-plugin/mode/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - cn.hippo4j - hippo4j-agent-plugin - ${revision} - - - hippo4j-agent-mode - pom - - - config - - \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/pom.xml b/agent/hippo4j-agent-plugin/pom.xml index c7312efb..4a3f7954 100644 --- a/agent/hippo4j-agent-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/pom.xml @@ -14,8 +14,8 @@ spring-plugins threadpool-plugin - mode adapter-plugins + apollo-plugin From 618b382401cd6328f268e78a56dfcd0923bf6510 Mon Sep 17 00:00:00 2001 From: magestack Date: Wed, 24 May 2023 20:58:08 +0800 Subject: [PATCH 37/58] Development Agent mode dynamic change (#1325) --- agent/hippo4j-agent-core/pom.xml | 6 +- .../spring-plugins/pom.xml | 10 -- .../spring-boot-1x-plugin/pom.xml | 1 + .../spring-boot-2x-plugin/pom.xml | 7 ++ ...ynamicThreadPoolChangeHandlerSpring2x.java | 37 +++++++ .../boot/SpringBootV2PluginBootService.java | 52 +++++++++ .../EventPublishingStartedInterceptor.java | 4 + .../cn.hippo4j.agent.core.boot.BootService | 17 +++ .../spring-plugin-common/pom.xml | 5 - ...tDynamicThreadPoolChangeHandlerSpring.java | 104 ------------------ .../SpringThreadPoolRegisterSupport.java | 4 +- .../agent/config-apollo/pom.xml | 80 ++++++++++++++ .../AgentConfigApolloExampleApplication.java | 32 ++++++ .../apollo/ThreadPoolConfiguration.java | 55 +++++++++ .../src/main/resources/bootstrap.properties | 33 ++++++ examples/threadpool-example/agent/pom.xml | 22 ++++ examples/threadpool-example/pom.xml | 1 + ...bstractConfigThreadPoolDynamicRefresh.java | 3 +- .../DynamicThreadPoolRefreshListener.java | 76 +++++++++---- 19 files changed, 404 insertions(+), 145 deletions(-) create mode 100644 agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/boot/SpringBootV2PluginBootService.java create mode 100644 agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService delete mode 100644 agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java create mode 100644 examples/threadpool-example/agent/config-apollo/pom.xml create mode 100644 examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/AgentConfigApolloExampleApplication.java create mode 100644 examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/ThreadPoolConfiguration.java create mode 100644 examples/threadpool-example/agent/config-apollo/src/main/resources/bootstrap.properties create mode 100644 examples/threadpool-example/agent/pom.xml diff --git a/agent/hippo4j-agent-core/pom.xml b/agent/hippo4j-agent-core/pom.xml index e020e562..97412d51 100644 --- a/agent/hippo4j-agent-core/pom.xml +++ b/agent/hippo4j-agent-core/pom.xml @@ -77,7 +77,11 @@ cn.hippo4j hippo4j-threadpool-infra-common ${project.version} - provided +
+ + cn.hippo4j + hippo4j-threadpool-dynamic-mode-config + ${project.version} diff --git a/agent/hippo4j-agent-plugin/spring-plugins/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/pom.xml index d6855dbe..42b725b5 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/pom.xml @@ -22,14 +22,4 @@ UTF-8 /.. - - - - - cn.hippo4j - hippo4j-agent-spring-plugin-common - ${project.version} - - - \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml index 1605aaf0..ccec3c7b 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml @@ -33,6 +33,7 @@ cn.hippo4j hippo4j-agent-spring-plugin-common provided + ${project.version} diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml index 5eb55742..dc3d87cf 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/pom.xml @@ -21,6 +21,7 @@ cn.hippo4j hippo4j-agent-spring-plugin-common provided + ${project.version} @@ -36,5 +37,11 @@ ${project.version} provided + + + com.ctrip.framework.apollo + apollo-client + provided + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java index f490618c..bcda15e4 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/DynamicThreadPoolChangeHandlerSpring2x.java @@ -17,20 +17,57 @@ package cn.hippo4j.agent.plugin.spring.boot.v2; +import cn.hippo4j.agent.core.logging.api.ILog; +import cn.hippo4j.agent.core.logging.api.LogManager; +import cn.hippo4j.agent.plugin.spring.common.conf.SpringBootConfig; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.mode.config.refresher.AbstractConfigThreadPoolDynamicRefresh; +import com.ctrip.framework.apollo.Config; +import com.ctrip.framework.apollo.ConfigChangeListener; +import com.ctrip.framework.apollo.ConfigFile; +import com.ctrip.framework.apollo.ConfigService; +import com.ctrip.framework.apollo.core.enums.ConfigFileFormat; +import com.ctrip.framework.apollo.model.ConfigChange; import org.springframework.boot.context.properties.bind.Bindable; import org.springframework.boot.context.properties.bind.Binder; import org.springframework.boot.context.properties.source.ConfigurationPropertySource; import org.springframework.boot.context.properties.source.MapConfigurationPropertySource; +import java.util.HashMap; +import java.util.List; import java.util.Map; +import static cn.hippo4j.agent.core.conf.Constants.SPRING_BOOT_CONFIG_PREFIX; + /** * Dynamic thread pool change handler spring 2x */ public class DynamicThreadPoolChangeHandlerSpring2x extends AbstractConfigThreadPoolDynamicRefresh { + private static ILog LOGGER = LogManager.getLogger(DynamicThreadPoolChangeHandlerSpring2x.class); + + @Override + public void registerListener() { + List apolloNamespaces = SpringBootConfig.Spring.Dynamic.Thread_Pool.Apollo.NAMESPACE; + String namespace = apolloNamespaces.get(0); + String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; + Config config = ConfigService.getConfig(String.format("%s.%s", namespace, configFileType)); + ConfigChangeListener configChangeListener = configChangeEvent -> { + String replacedNamespace = namespace.replaceAll("." + configFileType, ""); + ConfigFileFormat configFileFormat = ConfigFileFormat.fromString(configFileType); + ConfigFile configFile = ConfigService.getConfigFile(replacedNamespace, configFileFormat); + Map newChangeValueMap = new HashMap<>(); + configChangeEvent.changedKeys().stream().filter(each -> each.contains(SPRING_BOOT_CONFIG_PREFIX)).forEach(each -> { + ConfigChange change = configChangeEvent.getChange(each); + String newValue = change.getNewValue(); + newChangeValueMap.put(each, newValue); + }); + dynamicRefresh(configFileType, configFile.getContent(), newChangeValueMap); + }; + config.addChangeListener(configChangeListener); + LOGGER.info("[Hippo4j-Agent] Dynamic thread pool refresher, add apollo listener success. namespace: {}", namespace); + } + @Override public BootstrapConfigProperties buildBootstrapProperties(Map configInfo) { BootstrapConfigProperties bindableBootstrapConfigProperties = new BootstrapConfigProperties(); diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/boot/SpringBootV2PluginBootService.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/boot/SpringBootV2PluginBootService.java new file mode 100644 index 00000000..c9b8c85b --- /dev/null +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/boot/SpringBootV2PluginBootService.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.agent.plugin.spring.boot.v2.boot; + +import cn.hippo4j.agent.core.boot.BootService; +import cn.hippo4j.agent.core.boot.DefaultImplementor; +import cn.hippo4j.agent.core.logging.api.ILog; +import cn.hippo4j.agent.core.logging.api.LogManager; + +/** + * SpringBoot v1 plugin boot service + */ +@DefaultImplementor +public class SpringBootV2PluginBootService implements BootService { + + private static final ILog LOGGER = LogManager.getLogger(SpringBootV2PluginBootService.class); + + @Override + public void prepare() throws Throwable { + + } + + @Override + public void boot() throws Throwable { + LOGGER.info("Loader SpringBootV2PluginBootService..."); + } + + @Override + public void onComplete() throws Throwable { + + } + + @Override + public void shutdown() throws Throwable { + + } +} diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java index 0aa9cc1e..818efb62 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v2/interceptor/EventPublishingStartedInterceptor.java @@ -25,7 +25,9 @@ import cn.hippo4j.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import cn.hippo4j.agent.plugin.spring.boot.v2.DynamicThreadPoolChangeHandlerSpring2x; import cn.hippo4j.agent.plugin.spring.common.support.SpringPropertiesLoader; import cn.hippo4j.agent.plugin.spring.common.support.SpringThreadPoolRegisterSupport; +import cn.hippo4j.common.extension.design.AbstractSubjectCenter; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.dynamic.mode.config.refresher.event.DynamicThreadPoolRefreshListener; import org.springframework.context.ConfigurableApplicationContext; import java.lang.reflect.Method; @@ -53,6 +55,8 @@ public class EventPublishingStartedInterceptor implements InstanceMethodsAroundI SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); ThreadPoolDynamicRefresh dynamicRefresh = new DynamicThreadPoolChangeHandlerSpring2x(); dynamicRefresh.registerListener(); + AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH, + new DynamicThreadPoolRefreshListener()); return ret; } diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService new file mode 100644 index 00000000..687ec9f8 --- /dev/null +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-2x-plugin/src/main/resources/META-INF/services/cn.hippo4j.agent.core.boot.BootService @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cn.hippo4j.agent.plugin.spring.boot.v2.boot.SpringBootV2PluginBootService \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml index 7ac42387..f0336260 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/pom.xml @@ -31,11 +31,6 @@ org.slf4j slf4j-api - - com.ctrip.framework.apollo - apollo-client - provided - cn.hippo4j hippo4j-threadpool-dynamic-api diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java deleted file mode 100644 index 9cf071a0..00000000 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/AbstractDynamicThreadPoolChangeHandlerSpring.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.agent.plugin.spring.common.support; - -import cn.hippo4j.agent.plugin.spring.common.conf.SpringBootConfig; -import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; -import com.ctrip.framework.apollo.ConfigChangeListener; -import com.ctrip.framework.apollo.ConfigFile; -import com.ctrip.framework.apollo.ConfigService; -import com.ctrip.framework.apollo.core.enums.ConfigFileFormat; -import com.ctrip.framework.apollo.model.ConfigChange; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static cn.hippo4j.agent.core.conf.Constants.SPRING_BOOT_CONFIG_PREFIX; - -/** - * Abstract dynamic thread poo change handler spring - */ -public abstract class AbstractDynamicThreadPoolChangeHandlerSpring implements ThreadPoolDynamicRefresh { - - private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDynamicThreadPoolChangeHandlerSpring.class); - - public void registerListener() { - List apolloNamespaces = SpringBootConfig.Spring.Dynamic.Thread_Pool.Apollo.NAMESPACE; - String namespace = apolloNamespaces.get(0); - String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; - - com.ctrip.framework.apollo.Config config = ConfigService.getConfig(String.format("%s.%s", namespace, configFileType)); - ConfigChangeListener configChangeListener = configChangeEvent -> { - String replacedNamespace = namespace.replaceAll("." + configFileType, ""); - ConfigFileFormat configFileFormat = ConfigFileFormat.fromString(configFileType); - ConfigFile configFile = ConfigService.getConfigFile(replacedNamespace, configFileFormat); - Map newChangeValueMap = new HashMap<>(); - configChangeEvent.changedKeys().stream().filter(each -> each.contains(SPRING_BOOT_CONFIG_PREFIX)).forEach(each -> { - ConfigChange change = configChangeEvent.getChange(each); - String newValue = change.getNewValue(); - newChangeValueMap.put(each, newValue); - }); - dynamicRefresh(configFile.getContent(), newChangeValueMap); - }; - config.addChangeListener(configChangeListener); - LOGGER.info("[Hippo4j-Agent] Dynamic thread pool refresher, add apollo listener success. namespace: {}", namespace); - } - - public void dynamicRefresh(String configContent, Map newValueChangeMap) { - try { - // String configFileType = SpringBootConfig.Spring.Dynamic.Thread_Pool.CONFIG_FILE_TYPE; - // - // Map afterConfigMap = ConfigParserHandler.getInstance().parseConfig(configContent, - // ConfigFileTypeEnum.of(configFileType)); - // if (CollectionUtil.isNotEmpty(newValueChangeMap)) { - // Optional.ofNullable(afterConfigMap).ifPresent(each -> each.putAll(newValueChangeMap)); - // } - // TODO - // BootstrapConfigProperties afterConfigProperties = bindProperties(afterConfigMap, context); - // - // List executors = afterConfigProperties.getExecutors(); - // for (ExecutorProperties afterProperties : executors) { - // String threadPoolId = - // afterProperties.getThreadPoolId(); - // AgentThreadPoolExecutorHolder holder = AgentThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); - // if (holder.isEmpty() || - // holder.getExecutor() == null) { - // continue; - // } - // ExecutorProperties beforeProperties = convert(holder.getProperties()); - // if (!checkConsistency(threadPoolId, beforeProperties, afterProperties)) { - // continue; - // } - // dynamicRefreshPool(beforeProperties, afterProperties); - // holder.setProperties(failDefaultExecutorProperties(beforeProperties, afterProperties)); // do refresh. - // ChangeParameterNotifyRequest changeRequest = buildChangeRequest(beforeProperties, afterProperties); - // LOGGER.info(CHANGE_THREAD_POOL_TEXT, threadPoolId, String.format(CHANGE_DELIMITER, - // beforeProperties.getCorePoolSize(), changeRequest.getNowCorePoolSize()), String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), changeRequest.getNowMaximumPoolSize()), - // String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), changeRequest.getNowQueueCapacity()), String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), - // changeRequest.getNowKeepAliveTime()), String.format(CHANGE_DELIMITER, beforeProperties.getExecuteTimeOut(), changeRequest.getNowExecuteTimeOut()), String.format(CHANGE_DELIMITER, - // beforeProperties.getRejectedHandler(), changeRequest.getNowRejectedName()), String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), - // changeRequest.getNowAllowsCoreThreadTimeOut())); - // } - } catch (Exception ex) { - LOGGER.error("[Hippo4j-Agent] config mode dynamic refresh failed.", ex); - } - } -} diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index 0fdb5704..cad4d1c0 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -64,8 +64,8 @@ public class SpringThreadPoolRegisterSupport { for (Map.Entry entry : beansWithAnnotation.entrySet()) { String beanName = entry.getKey(); Executor bean = entry.getValue(); - ThreadPoolExecutor executor = null; - // + ThreadPoolExecutor executor = (ThreadPoolExecutor) bean; + // TODO // if (DynamicThreadPoolAdapterChoose.match(bean)) { // executor = DynamicThreadPoolAdapterChoose.unwrap(bean); // } else { diff --git a/examples/threadpool-example/agent/config-apollo/pom.xml b/examples/threadpool-example/agent/config-apollo/pom.xml new file mode 100644 index 00000000..7a7adfd4 --- /dev/null +++ b/examples/threadpool-example/agent/config-apollo/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-agent-example + ${revision} + + + hippo4j-threadpool-agent-config-apollo-example + + + true + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.ctrip.framework.apollo + apollo-client + + + + org.springframework.cloud + spring-cloud-context + 2.2.5.RELEASE + + + + org.slf4j + slf4j-api + 1.7.21 + + + + io.micrometer + micrometer-registry-prometheus + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + \ No newline at end of file diff --git a/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/AgentConfigApolloExampleApplication.java b/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/AgentConfigApolloExampleApplication.java new file mode 100644 index 00000000..33283990 --- /dev/null +++ b/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/AgentConfigApolloExampleApplication.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.example.agent.config.apollo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Agent config apollo example application. + */ +@SpringBootApplication +public class AgentConfigApolloExampleApplication { + + public static void main(String[] args) { + SpringApplication.run(AgentConfigApolloExampleApplication.class, args); + } +} diff --git a/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/ThreadPoolConfiguration.java b/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/ThreadPoolConfiguration.java new file mode 100644 index 00000000..cec7c3bb --- /dev/null +++ b/examples/threadpool-example/agent/config-apollo/src/main/java/cn/hippo4j/example/agent/config/apollo/ThreadPoolConfiguration.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.example.agent.config.apollo; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +@Configuration +public class ThreadPoolConfiguration { + + // ------------------------------------------------------------------------- + // 未使用 Hippo4j,原始定义线程池创建方式 + // ------------------------------------------------------------------------- + + @Bean + public ThreadPoolExecutor runMessageSendTaskExecutor() { + LinkedBlockingQueue linkedBlockingQueue = new LinkedBlockingQueue<>(1024); + return new ThreadPoolExecutor( + 1, + 10, + 1024, + TimeUnit.SECONDS, + linkedBlockingQueue); + } + + // ------------------------------------------------------------------------- + // 演示 Agent 模式修改线程池 + // ------------------------------------------------------------------------- + + public static final ThreadPoolExecutor RUN_MESSAGE_SEND_TASK_EXECUTOR = new ThreadPoolExecutor( + 1, + 10, + 1024, + TimeUnit.SECONDS, + new LinkedBlockingQueue<>(1024)); +} diff --git a/examples/threadpool-example/agent/config-apollo/src/main/resources/bootstrap.properties b/examples/threadpool-example/agent/config-apollo/src/main/resources/bootstrap.properties new file mode 100644 index 00000000..88187c9c --- /dev/null +++ b/examples/threadpool-example/agent/config-apollo/src/main/resources/bootstrap.properties @@ -0,0 +1,33 @@ +server.port=8092 +server.servlet.context-path=/example +app.id=dynamic-threadpool-example +apollo.meta=http://127.0.0.1:8080 +apollo.autoUpdateInjectedSpringProperties=true +apollo.bootstrap.enabled=true +apollo.bootstrap.namespaces=application +apollo.bootstrap.eagerLoad.enabled=true +# The following parameters are used for testing +env=dev +apollo.configService=http://127.0.0.1:8080 +spring.profiles.active=dev +spring.application.name=hippo4j-config-apollo-spring-boot-starter-example +management.metrics.export.prometheus.enabled=true +management.server.port=29998 +management.endpoints.web.exposure.include=* +spring.dynamic.thread-pool.enable=true +spring.dynamic.thread-pool.banner=true +spring.dynamic.thread-pool.check-state-interval=3 +#spring.dynamic.thread-pool.monitor.enable=true +#spring.dynamic.thread-pool.monitor.collect-types=micrometer +#spring.dynamic.thread-pool.monitor.thread-pool-types=dynamic,web +#spring.dynamic.thread-pool.monitor.initial-delay=10000 +#spring.dynamic.thread-pool.monitor.collect-interval=5000 +#spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT +#spring.dynamic.thread-pool.notify-platforms[0].token=ac0426a5-c712-474c-9bff-72b8b8f5caff +#spring.dynamic.thread-pool.notify-platforms[1].platform=DING +#spring.dynamic.thread-pool.notify-platforms[1].token=56417ebba6a27ca352f0de77a2ae9da66d01f39610b5ee8a6033c60ef9071c55 +#spring.dynamic.thread-pool.notify-platforms[2].platform=LARK +#spring.dynamic.thread-pool.notify-platforms[2].token=2cbf2808-3839-4c26-a04d-fd201dd51f9e +spring.dynamic.thread-pool.apollo.namespace=application +spring.dynamic.thread-pool.config-file-type=properties + diff --git a/examples/threadpool-example/agent/pom.xml b/examples/threadpool-example/agent/pom.xml new file mode 100644 index 00000000..11fbc894 --- /dev/null +++ b/examples/threadpool-example/agent/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-example + ${revision} + + + hippo4j-threadpool-agent-example + pom + + + true + + + + config-apollo + + \ No newline at end of file diff --git a/examples/threadpool-example/pom.xml b/examples/threadpool-example/pom.xml index 8f1f1d05..c25dd9b8 100644 --- a/examples/threadpool-example/pom.xml +++ b/examples/threadpool-example/pom.xml @@ -18,5 +18,6 @@ config example-core server + agent diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java index aeef33d5..f27fc0a5 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -46,8 +46,7 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo Optional.ofNullable(configInfo).ifPresent(each -> each.putAll(newValueChangeMap)); } BootstrapPropertiesInterface bootstrapProperties = buildBootstrapProperties(configInfo); - // publishDynamicThreadPoolEvent(binderCoreProperties); - AbstractSubjectCenter.notify("", null); + AbstractSubjectCenter.notify(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH, () -> bootstrapProperties); } catch (Exception ex) { log.error("Hippo4j config mode dynamic refresh failed.", ex); } diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java index 41545e58..36584c56 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java @@ -17,6 +17,8 @@ package cn.hippo4j.threadpool.dynamic.mode.config.refresher.event; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; @@ -24,11 +26,10 @@ import cn.hippo4j.common.extension.design.Observer; import cn.hippo4j.common.extension.design.ObserverMessage; import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; -import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalConfigThreadPoolManage; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.Objects; @@ -42,38 +43,58 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD /** * Dynamic thread-pool refresh listener. */ -@Slf4j @RequiredArgsConstructor public class DynamicThreadPoolRefreshListener implements Observer { + private static final Logger LOGGER = LoggerFactory.getLogger(DynamicThreadPoolRefreshListener.class); + @Override public void accept(ObserverMessage observerMessage) { BootstrapConfigProperties bindableConfigProperties = observerMessage.message(); List executors = bindableConfigProperties.getExecutors(); for (ExecutorProperties properties : executors) { String threadPoolId = properties.getThreadPoolId(); - dynamicRefreshPool(threadPoolId, properties); - ExecutorProperties beforeProperties = GlobalConfigThreadPoolManage.getProperties(properties.getThreadPoolId()); - log.info(CHANGE_THREAD_POOL_TEXT, - threadPoolId, - String.format(CHANGE_DELIMITER, beforeProperties.getCorePoolSize(), properties.getCorePoolSize()), - String.format(CHANGE_DELIMITER, beforeProperties.getMaximumPoolSize(), properties.getMaximumPoolSize()), - String.format(CHANGE_DELIMITER, beforeProperties.getQueueCapacity(), properties.getQueueCapacity()), - String.format(CHANGE_DELIMITER, beforeProperties.getKeepAliveTime(), properties.getKeepAliveTime()), - String.format(CHANGE_DELIMITER, beforeProperties.getRejectedHandler(), properties.getRejectedHandler()), - String.format(CHANGE_DELIMITER, beforeProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())); + // Check whether the thread pool configuration is empty and whether the parameters have changed + ThreadPoolExecutorHolder executorHolder = ThreadPoolInstanceRegistry.getInstance().getHolder(threadPoolId); + if (executorHolder.isEmpty() || !checkPropertiesConsistency(executorHolder, properties)) { + continue; + } + dynamicRefreshThreadPool(executorHolder, properties); + sendChangeNotificationMessage(executorHolder, properties); + executorHolder.setExecutorProperties(properties); } } /** - * Dynamic refresh pool. + * Check consistency. * - * @param threadPoolId - * @param properties + * @param executorHolder executor holder + * @param properties properties after dynamic thread pool change */ - private void dynamicRefreshPool(String threadPoolId, ExecutorProperties properties) { - ExecutorProperties beforeProperties = GlobalConfigThreadPoolManage.getProperties(properties.getThreadPoolId()); - ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId); + private boolean checkPropertiesConsistency(ThreadPoolExecutorHolder executorHolder, ExecutorProperties properties) { + ExecutorProperties beforeProperties = executorHolder.getExecutorProperties(); + ThreadPoolExecutor executor = executorHolder.getExecutor(); + boolean result = (properties.getCorePoolSize() != null && !Objects.equals(beforeProperties.getCorePoolSize(), properties.getCorePoolSize())) + || (properties.getMaximumPoolSize() != null && !Objects.equals(beforeProperties.getMaximumPoolSize(), properties.getMaximumPoolSize())) + || (properties.getAllowCoreThreadTimeOut() != null && !Objects.equals(beforeProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())) + || (properties.getExecuteTimeOut() != null && !Objects.equals(beforeProperties.getExecuteTimeOut(), properties.getExecuteTimeOut())) + || (properties.getKeepAliveTime() != null && !Objects.equals(beforeProperties.getKeepAliveTime(), properties.getKeepAliveTime())) + || (properties.getRejectedHandler() != null && !Objects.equals(beforeProperties.getRejectedHandler(), properties.getRejectedHandler())) + || + ((properties.getQueueCapacity() != null && !Objects.equals(beforeProperties.getQueueCapacity(), properties.getQueueCapacity()) + && Objects.equals(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE.getName(), executor.getQueue().getClass().getSimpleName()))); + return result; + } + + /** + * Dynamic refresh thread-pool. + * + * @param executorHolder executor holder + * @param properties properties after dynamic thread pool change + */ + private void dynamicRefreshThreadPool(ThreadPoolExecutorHolder executorHolder, ExecutorProperties properties) { + ExecutorProperties beforeProperties = executorHolder.getExecutorProperties(); + ThreadPoolExecutor executor = executorHolder.getExecutor(); if (properties.getMaximumPoolSize() != null && properties.getCorePoolSize() != null) { ThreadPoolExecutorUtil.safeSetPoolSize(executor, properties.getCorePoolSize(), properties.getMaximumPoolSize()); } else { @@ -106,8 +127,21 @@ public class DynamicThreadPoolRefreshListener implements Observer queue = (ResizableCapacityLinkedBlockingQueue) executor.getQueue(); queue.setCapacity(properties.getQueueCapacity()); } else { - log.warn("The queue length cannot be modified. Queue type mismatch. Current queue type: {}", executor.getQueue().getClass().getSimpleName()); + LOGGER.warn("The queue length cannot be modified. Queue type mismatch. Current queue type: {}", executor.getQueue().getClass().getSimpleName()); } } } + + private void sendChangeNotificationMessage(ThreadPoolExecutorHolder executorHolder, ExecutorProperties properties) { + ExecutorProperties executorProperties = executorHolder.getExecutorProperties(); + // TODO log cannot be printed + LOGGER.info(CHANGE_THREAD_POOL_TEXT, + executorHolder.getThreadPoolId(), + String.format(CHANGE_DELIMITER, executorProperties.getCorePoolSize(), properties.getCorePoolSize()), + String.format(CHANGE_DELIMITER, executorProperties.getMaximumPoolSize(), properties.getMaximumPoolSize()), + String.format(CHANGE_DELIMITER, executorProperties.getQueueCapacity(), properties.getQueueCapacity()), + String.format(CHANGE_DELIMITER, executorProperties.getKeepAliveTime(), properties.getKeepAliveTime()), + String.format(CHANGE_DELIMITER, executorProperties.getRejectedHandler(), properties.getRejectedHandler()), + String.format(CHANGE_DELIMITER, executorProperties.getAllowCoreThreadTimeOut(), properties.getAllowCoreThreadTimeOut())); + } } From f46da2b3d339d87f0814671d2d0f318d9911b677 Mon Sep 17 00:00:00 2001 From: lucca suen <72333564+lucca-suen@users.noreply.github.com> Date: Thu, 25 May 2023 16:13:45 +0800 Subject: [PATCH 38/58] Refactor ThreadPoolInstanceRegistry to ThreadPoolRegistry. (#1339) * Refactor ThreadPoolRegistry. * Refactor ThreadPoolInstance Registry to ThreadPoolRegistry. --------- Co-authored-by: lucca --- .../SpringThreadPoolRegisterSupport.java | 8 ++--- ...lExecutorConstructorMethodInterceptor.java | 4 +-- ...eRegistry.java => ThreadPoolRegistry.java} | 33 +++++++------------ .../DynamicThreadPoolRefreshListener.java | 4 +-- 4 files changed, 20 insertions(+), 29 deletions(-) rename infra/common/src/main/java/cn/hippo4j/common/executor/{ThreadPoolInstanceRegistry.java => ThreadPoolRegistry.java} (55%) diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index cad4d1c0..b2d08574 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -18,7 +18,7 @@ package cn.hippo4j.agent.plugin.spring.common.support; import cn.hippo4j.agent.core.util.ReflectUtil; -import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; +import cn.hippo4j.common.executor.ThreadPoolRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.model.executor.ExecutorProperties; @@ -41,8 +41,8 @@ public class SpringThreadPoolRegisterSupport { private static final Logger LOGGER = LoggerFactory.getLogger(SpringThreadPoolRegisterSupport.class); public static void registerThreadPoolInstances(ApplicationContext context) { - Map> earlyConstructMap = ThreadPoolInstanceRegistry.getInstance().earlyConstructMap; - for (Map.Entry> entry : earlyConstructMap.entrySet()) { + Map> referencedClassMap = ThreadPoolRegistry.REFERENCED_CLASS_MAP; + for (Map.Entry> entry : referencedClassMap.entrySet()) { ThreadPoolExecutor enhancedInstance = entry.getKey(); Class declaredClass = entry.getValue(); List declaredFields = ReflectUtil.getStaticFieldsFromType(declaredClass, ThreadPoolExecutor.class); @@ -93,6 +93,6 @@ public class SpringThreadPoolRegisterSupport { .queueCapacity(executor.getQueue().remainingCapacity()) .rejectedHandler(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()) .build(); - ThreadPoolInstanceRegistry.getInstance().putHolder(threadPoolId, executor, executorProperties); + ThreadPoolRegistry.putHolder(threadPoolId, executor, executorProperties); } } diff --git a/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java index 98b671fa..343d05d2 100644 --- a/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java +++ b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java @@ -22,7 +22,7 @@ import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; import cn.hippo4j.agent.core.plugin.interceptor.enhance.EnhancedInstance; import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; +import cn.hippo4j.common.executor.ThreadPoolRegistry; import cn.hippo4j.agent.core.util.CollectionUtil; import cn.hippo4j.agent.core.util.StringUtil; import java.util.ArrayList; @@ -52,7 +52,7 @@ public class ThreadPoolExecutorConstructorMethodInterceptor implements InstanceC StackTraceElement declaredClassStackTraceElement = stackTraceElements.get(0); String declaredClassName = declaredClassStackTraceElement.getClassName(); Class declaredClass = Thread.currentThread().getContextClassLoader().loadClass(declaredClassName); - ThreadPoolInstanceRegistry.getInstance().earlyConstructMap.put((ThreadPoolExecutor) objInst, declaredClass); + ThreadPoolRegistry.REFERENCED_CLASS_MAP.put((ThreadPoolExecutor) objInst, declaredClass); } private List getStackTraceElements() { diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java similarity index 55% rename from infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java index a1fbcc82..bff59cf0 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolInstanceRegistry.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java @@ -27,35 +27,26 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadPoolExecutor; @NoArgsConstructor(access = AccessLevel.PRIVATE) -public class ThreadPoolInstanceRegistry { +public class ThreadPoolRegistry { - private final Map holderMap = new ConcurrentHashMap<>(); + private static final Map HOLDER_MAP = new ConcurrentHashMap<>(); - public final Map> earlyConstructMap = new ConcurrentHashMap<>(); + public static final Map> REFERENCED_CLASS_MAP = new ConcurrentHashMap<>(); - private volatile static ThreadPoolInstanceRegistry INSTANCE; - - public static ThreadPoolInstanceRegistry getInstance() { - if (INSTANCE == null) { - synchronized (ThreadPoolInstanceRegistry.class) { - if (INSTANCE == null) { - INSTANCE = new ThreadPoolInstanceRegistry(); - } - } - } - return INSTANCE; + public static Map getHolderMap() { + return HOLDER_MAP; } - public Map getHolderMap() { - return holderMap; + public static void putHolder(String executorName, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { + ThreadPoolExecutorHolder holder = new ThreadPoolExecutorHolder(executorName, executor, executorProperties); + HOLDER_MAP.put(executorName, holder); } - public void putHolder(String executorName, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { - ThreadPoolExecutorHolder holder = new ThreadPoolExecutorHolder(executorName, executor, executorProperties); - holderMap.put(executorName, holder); + public static ThreadPoolExecutorHolder getHolder(String executorName) { + return Optional.ofNullable(HOLDER_MAP.get(executorName)).orElse(ThreadPoolExecutorHolder.EMPTY); } - public ThreadPoolExecutorHolder getHolder(String executorName) { - return Optional.ofNullable(holderMap.get(executorName)).orElse(ThreadPoolExecutorHolder.EMPTY); + public static Map> getReferencedClassMap() { + return REFERENCED_CLASS_MAP; } } diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java index 36584c56..91df114f 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java @@ -18,7 +18,7 @@ package cn.hippo4j.threadpool.dynamic.mode.config.refresher.event; import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; -import cn.hippo4j.common.executor.ThreadPoolInstanceRegistry; +import cn.hippo4j.common.executor.ThreadPoolRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; @@ -55,7 +55,7 @@ public class DynamicThreadPoolRefreshListener implements Observer Date: Fri, 26 May 2023 09:47:31 +0800 Subject: [PATCH 39/58] feat(infra): add AbstractSubjectCenter test class #1338 (#1340) * feat(infra): add AbstractSubjectCenter test class #1338 1. add SubjectCenter test class 2. add remove observer method 3. add get size for Observers method Co-authored-by: rnmb<19276209+rnmb@users.noreply.github.com> * feat(infra): add AbstractSubjectCenter test class 1. add SubjectCenter test class 2. rollback SubjectCenter method Co-authored-by: rnmb<19276209+rnmb@users.noreply.github.com> --- .../design/AbstractSubjectCenterTest.java | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java b/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java new file mode 100644 index 00000000..44c31294 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java @@ -0,0 +1,146 @@ +package cn.hippo4j.common.extension.design; + +import lombok.Getter; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + +public class AbstractSubjectCenterTest { + + + private Map> OBSERVERS_MAP ; + + private SubjectNotifyListener subjectNotifyListener; + + @Before + public void setUp() throws NoSuchFieldException, IllegalAccessException { + subjectNotifyListener = new SubjectNotifyListener(); + + Field field = AbstractSubjectCenter.class.getDeclaredField("OBSERVERS_MAP"); + field.setAccessible(true); + OBSERVERS_MAP = (Map>) field.get(AbstractSubjectCenter.class); + } + + /** + * test register listener + */ + @Test + public void testDefaultRegister() { + AbstractSubjectCenter.register(subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED.name()); + Assert.assertNotNull(list); + Assert.assertEquals(1, list.size()); + Assert.assertSame(subjectNotifyListener, list.get(0)); + OBSERVERS_MAP.clear(); + } + + /** + * test register listener + */ + @Test + public void testSubjectTypeEnumRegister() { + AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH, subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH.name()); + Assert.assertNotNull(list); + Assert.assertEquals(1, list.size()); + Assert.assertSame(subjectNotifyListener, list.get(0)); + OBSERVERS_MAP.clear(); + } + + /** + * test register listener + */ + @Test + public void testSubjectTypeNameRegister() { + AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH.name(), subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH.name()); + Assert.assertNotNull(list); + Assert.assertEquals(1, list.size()); + Assert.assertSame(subjectNotifyListener, list.get(0)); + OBSERVERS_MAP.clear(); + } + + /** + * test remove listener + */ + @Test + public void testDefaultRemoveListener() { + AbstractSubjectCenter.register(subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED.name()); + Assert.assertNotNull(list); + Assert.assertEquals(1, list.size()); + Assert.assertSame(subjectNotifyListener, list.get(0)); + + AbstractSubjectCenter.remove(subjectNotifyListener); + Assert.assertEquals(0, list.size()); + } + + /** + * test remove listener + */ + @Test + public void testRemoveSubjectTypeNameListener() { + AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH, subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH.name()); + Assert.assertNotNull(list); + Assert.assertEquals(1, list.size()); + Assert.assertSame(subjectNotifyListener, list.get(0)); + + AbstractSubjectCenter.remove(AbstractSubjectCenter.SubjectType.THREAD_POOL_DYNAMIC_REFRESH.name(), subjectNotifyListener); + Assert.assertEquals(0, list.size()); + } + + /** + * test notify + */ + @Test + public void testNotifyBySubjectType() { + AbstractSubjectCenter.register(subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED.name()); + Assert.assertNotNull(list); + + NotifyMessage notifyMessage = new NotifyMessage(); + Assert.assertEquals(0, notifyMessage.getCount().get()); + AbstractSubjectCenter.notify(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED, () -> notifyMessage); + Assert.assertEquals(1, notifyMessage.getCount().get()); + OBSERVERS_MAP.clear(); + } + + /** + * test notify + */ + @Test + public void testNotifyBySubjectTypeName() { + AbstractSubjectCenter.register(subjectNotifyListener); + List list = OBSERVERS_MAP.get(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED.name()); + Assert.assertNotNull(list); + + NotifyMessage notifyMessage = new NotifyMessage(); + Assert.assertEquals(0, notifyMessage.getCount().get()); + AbstractSubjectCenter.notify(AbstractSubjectCenter.SubjectType.SPRING_CONTENT_REFRESHED.name(), () -> notifyMessage); + Assert.assertEquals(1, notifyMessage.getCount().get()); + OBSERVERS_MAP.clear(); + } + + @Getter + private static final class NotifyMessage { + private final AtomicInteger count = new AtomicInteger(0); + } + + /** + * Subject Response Listener + */ + private static final class SubjectNotifyListener implements Observer{ + + @Override + public void accept(ObserverMessage observerMessage) { + observerMessage.message().getCount().incrementAndGet(); + } + } +} From 7692ed83666860ec361e5b932f7bb50a3d1cc26a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=82=AE=E9=80=92=E5=91=98?= <78356082+barret-yzh@users.noreply.github.com> Date: Fri, 26 May 2023 14:38:08 +0800 Subject: [PATCH 40/58] Add test case for ThreadFactoryBuilder (#1341) * Create ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest Methods are covered by multiple unit test cases . Console printing in English * Update ThreadFactoryBuilderTest Add open source protocol. use @before annotation * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest --- .../common/executor/ThreadFactoryBuilderTest | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/ThreadFactoryBuilderTest diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadFactoryBuilderTest b/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadFactoryBuilderTest new file mode 100644 index 00000000..e1344100 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadFactoryBuilderTest @@ -0,0 +1,81 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.hippo4j.common.design.builder; + +import cn.hippo4j.common.design.builder.ThreadFactoryBuilder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import java.util.concurrent.ThreadFactory; +import java.lang.Thread.UncaughtExceptionHandler; + +public class ThreadFactoryBuilderTest { + + ThreadFactoryBuilder builder; + TestUncaughtExceptionHandler uncaughtExceptionHandler; + Thread thread; + + @Before + public void buildThread() { + builder = ThreadFactoryBuilder.builder(); + uncaughtExceptionHandler = new TestUncaughtExceptionHandler(); + builder.uncaughtExceptionHandler(uncaughtExceptionHandler); + builder.prefix("my-thread-factory"); + builder.daemon(true); + builder.priority(Thread.MAX_PRIORITY); + ThreadFactory threadFactory = builder.build(); + thread = threadFactory.newThread(() -> { + System.out.println("Create a new thread."); + }); + thread.start(); + } + + @Test + public void testName() { + Assert.assertEquals("my-thread-factory_0", thread.getName()); + } + + @Test + public void testIsDaemon() { + Assert.assertTrue(thread.isDaemon()); + } + + @Test + public void testExceptionHandler() { + Assert.assertEquals(uncaughtExceptionHandler, thread.getUncaughtExceptionHandler()); + } + + @Test + public void testPriority() { + Assert.assertEquals(Thread.MAX_PRIORITY, thread.getPriority()); + } +} + +class TestUncaughtExceptionHandler implements UncaughtExceptionHandler { + + private volatile boolean exceptionCaught = false; + + @Override + public void uncaughtException(Thread t, Throwable e) { + System.out.println("Exception caught by " + t.getName()); + exceptionCaught = true; + } + + public boolean isExceptionCaught() { + return exceptionCaught; + } +} From ec142d7cc35dd6f0f3e58f65dacaf29de19e6d92 Mon Sep 17 00:00:00 2001 From: rnmb <19276209+rnmb@users.noreply.github.com> Date: Fri, 26 May 2023 15:06:05 +0800 Subject: [PATCH 41/58] feat(infra): add SyncPutQueuePolicyTest test class #1336 (#1344) * feat(infra): add SyncPutQueuePolicyTest test class #1336 1. add SyncPutQueuePolicyTest test class Co-authored-by: rnmb<19276209+rnmb@users.noreply.github.com> * feat(infra): SyncPutQueuePolicyTest #1336 1. Add the open source agreement to the top, and leave a blank line with package Co-authored-by: rnmb<19276209+rnmb@users.noreply.github.com> --- .../support/SyncPutQueuePolicyTest.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicyTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicyTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicyTest.java new file mode 100644 index 00000000..c2f0a359 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/SyncPutQueuePolicyTest.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.executor.support; + +import cn.hippo4j.common.toolkit.ThreadUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.stream.IntStream; + +/** + * Synchronous placement queue policy implementation test + */ +public class SyncPutQueuePolicyTest { + + /** + * test thread pool rejected execution + */ + @Test + public void testRejectedExecution() { + SyncPutQueuePolicy syncPutQueuePolicy = new SyncPutQueuePolicy(); + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, + 60, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1), syncPutQueuePolicy); + threadPoolExecutor.prestartAllCoreThreads(); + + Assert.assertSame(syncPutQueuePolicy, threadPoolExecutor.getRejectedExecutionHandler()); + IntStream.range(0, 4).forEach(s -> { + threadPoolExecutor.execute(() -> ThreadUtil.sleep(200L)); + }); + threadPoolExecutor.shutdown(); + while (!threadPoolExecutor.isTerminated()) { + } + Assert.assertEquals(4, threadPoolExecutor.getCompletedTaskCount()); + } +} From 8ccf6ba22c663de14cfad0f6999e62e35380dc89 Mon Sep 17 00:00:00 2001 From: Annibale Ippolito <101899632+annippolito@users.noreply.github.com> Date: Fri, 26 May 2023 09:07:02 +0200 Subject: [PATCH 42/58] test: Add test case for LogMessage #1331 (#1343) * test: Add test case for LogMessage #1331 * change method signatures in LogMessage tests #1331 --------- Co-authored-by: annippolito --- .../design/AbstractSubjectCenterTest.java | 23 ++++- .../toolkit/logtracing/LogMessageTest.java | 93 +++++++++++++++++++ 2 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java b/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java index 44c31294..74bf2eac 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/extension/design/AbstractSubjectCenterTest.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package cn.hippo4j.common.extension.design; import lombok.Getter; @@ -13,8 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger; public class AbstractSubjectCenterTest { - - private Map> OBSERVERS_MAP ; + private Map> OBSERVERS_MAP; private SubjectNotifyListener subjectNotifyListener; @@ -130,13 +146,14 @@ public class AbstractSubjectCenterTest { @Getter private static final class NotifyMessage { + private final AtomicInteger count = new AtomicInteger(0); } /** * Subject Response Listener */ - private static final class SubjectNotifyListener implements Observer{ + private static final class SubjectNotifyListener implements Observer { @Override public void accept(ObserverMessage observerMessage) { diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java new file mode 100644 index 00000000..3d486bcf --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.toolkit.logtracing; + +import org.apache.logging.log4j.util.Strings; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class LogMessageTest { + + private final static String MESSAGE = "message"; + private final static String THROWABLE_MESSAGE = "throwable message"; + + private LogMessage logMessage; + + @BeforeEach + public void init() { + logMessage = LogMessage.getInstance(); + } + + @Test + void testGetInstanceShouldReturnANewLogMessageInstance() { + final LogMessage newInstance = LogMessage.getInstance(); + assertNotNull(newInstance); + assertNotSame(logMessage, newInstance); + } + + @Test + void testToStringShouldHaveAnEmptyMessage() { + assertEquals(Strings.EMPTY, logMessage.toString()); + } + + @Test + void testSetMsgShouldSetAnewMessageInLogMessage() { + logMessage.setMsg(MESSAGE); + assertEquals(MESSAGE, logMessage.toString()); + } + + @Test + void testMsgShouldContainsMessageAndThrowableMessage() { + final String message = logMessage.msg(MESSAGE, new Throwable(THROWABLE_MESSAGE)); + assertNotNull(message); + assertTrue(message.contains(MESSAGE)); + assertTrue(message.contains(THROWABLE_MESSAGE)); + } + + @Test + void testKvShouldPutKeyAndValue() { + logMessage.kv("key", "value"); + assertEquals("key=value", logMessage.toString()); + } + + @Test + void testKvShouldPutAllKeyAndValuePairs() { + logMessage.kv("key1", "value1"); + logMessage.kv("key2", "value2"); + assertEquals("key1=value1||key2=value2", logMessage.toString()); + } + + @Test + void testToStringShouldPrintMessageAndAllKeyAndValuePairs() { + logMessage.setMsg(MESSAGE); + logMessage.kv("key1", "value1"); + logMessage.kv("key2", "value2"); + assertEquals("messagekey1=value1||key2=value2", logMessage.toString()); + } + + @Test + void testKv2StringShouldPrintMessageAndAllKeyAndValuePairs() { + String result = logMessage.kv2String("key", "value"); + assertEquals("key=value", result); + } +} \ No newline at end of file From 13f35ad7459268e15f463c7a1edbd5e6fd97dce9 Mon Sep 17 00:00:00 2001 From: lucca suen <72333564+lucca-suen@users.noreply.github.com> Date: Fri, 26 May 2023 17:12:35 +0800 Subject: [PATCH 43/58] Add test case for RejectedPolicyTypeEnum (#1345) * test: Add test case for RejectedPolicyTypeEnum * refactor: Add open source protocol for RejectedPolicyTypeEnumTest. --------- Co-authored-by: lucca --- .../support/RejectedPolicyTypeEnumTest.java | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java new file mode 100644 index 00000000..d9e6c1c5 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.executor.support; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +/** + * test for {@link RejectedPolicyTypeEnum} + */ +class RejectedPolicyTypeEnumTest { + + @Test + void testGetType() { + Assertions.assertEquals(1, RejectedPolicyTypeEnum.CALLER_RUNS_POLICY.getType()); + Assertions.assertEquals(2, RejectedPolicyTypeEnum.ABORT_POLICY.getType()); + Assertions.assertEquals(3, RejectedPolicyTypeEnum.DISCARD_POLICY.getType()); + Assertions.assertEquals(4, RejectedPolicyTypeEnum.DISCARD_OLDEST_POLICY.getType()); + Assertions.assertEquals(5, RejectedPolicyTypeEnum.RUNS_OLDEST_TASK_POLICY.getType()); + Assertions.assertEquals(6, RejectedPolicyTypeEnum.SYNC_PUT_QUEUE_POLICY.getType()); + } + + @Test + void testGetName() { + Assertions.assertEquals("CallerRunsPolicy", RejectedPolicyTypeEnum.CALLER_RUNS_POLICY.getName()); + Assertions.assertEquals("AbortPolicy", RejectedPolicyTypeEnum.ABORT_POLICY.getName()); + Assertions.assertEquals("DiscardPolicy", RejectedPolicyTypeEnum.DISCARD_POLICY.getName()); + Assertions.assertEquals("DiscardOldestPolicy", RejectedPolicyTypeEnum.DISCARD_OLDEST_POLICY.getName()); + Assertions.assertEquals("RunsOldestTaskPolicy", RejectedPolicyTypeEnum.RUNS_OLDEST_TASK_POLICY.getName()); + Assertions.assertEquals("SyncPutQueuePolicy", RejectedPolicyTypeEnum.SYNC_PUT_QUEUE_POLICY.getName()); + } + + @Test + void testValues() { + Assertions.assertNotNull(RejectedPolicyTypeEnum.values()); + } + + @Test + void testValueOf() { + Assertions.assertEquals(RejectedPolicyTypeEnum.CALLER_RUNS_POLICY, RejectedPolicyTypeEnum.valueOf("CALLER_RUNS_POLICY")); + Assertions.assertEquals(RejectedPolicyTypeEnum.ABORT_POLICY, RejectedPolicyTypeEnum.valueOf("ABORT_POLICY")); + Assertions.assertEquals(RejectedPolicyTypeEnum.DISCARD_POLICY, RejectedPolicyTypeEnum.valueOf("DISCARD_POLICY")); + Assertions.assertEquals(RejectedPolicyTypeEnum.DISCARD_OLDEST_POLICY, RejectedPolicyTypeEnum.valueOf("DISCARD_OLDEST_POLICY")); + Assertions.assertEquals(RejectedPolicyTypeEnum.RUNS_OLDEST_TASK_POLICY, RejectedPolicyTypeEnum.valueOf("RUNS_OLDEST_TASK_POLICY")); + Assertions.assertEquals(RejectedPolicyTypeEnum.SYNC_PUT_QUEUE_POLICY, RejectedPolicyTypeEnum.valueOf("SYNC_PUT_QUEUE_POLICY")); + } + + @Test + void testCreatePolicy() { + // check legal param: name and type + Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> { + Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy(each.getName())); + Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy(each.getType())); + }); + // check illegal null name + Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy(null)); + // check nonexistent name + Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy("ABC")); + // check nonexistent type + Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy(-1)); + } + + @Test + void testGetRejectedNameByType() { + // check legal range of type + Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> + Assertions.assertEquals(each.getName(), RejectedPolicyTypeEnum.getRejectedNameByType(each.getType()))); + // check illegal range of type + Assertions.assertEquals("AbortPolicy", RejectedPolicyTypeEnum.getRejectedNameByType(-1)); + } + + @Test + void testGetRejectedPolicyTypeEnumByName() { + // check legal range of name + Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> + Assertions.assertEquals(each, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(each.getName()))); + // check illegal name + Assertions.assertEquals(RejectedPolicyTypeEnum.ABORT_POLICY, + RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName("XXX")); + } +} From 1ca11dca09a495e287d8dadafb36ed09af533440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=82=AE=E9=80=92=E5=91=98?= <78356082+barret-yzh@users.noreply.github.com> Date: Fri, 26 May 2023 17:22:55 +0800 Subject: [PATCH 44/58] Add test case for MessageWrapper (#1346) * Create ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest Methods are covered by multiple unit test cases . Console printing in English * Update ThreadFactoryBuilderTest Add open source protocol. use @before annotation * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest * Add test case for MessageWrapper * Update MessageWrapperTest --- .../hippo4j/common/toolkit/MessageWrapperTest | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageWrapperTest diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageWrapperTest b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageWrapperTest new file mode 100644 index 00000000..7a18ea75 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageWrapperTest @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.monitor; + +import cn.hippo4j.common.monitor.MessageTypeEnum; +import cn.hippo4j.common.monitor.MessageWrapper; +import org.junit.Assert; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import java.util.HashMap; +import java.util.Map; +import java.util.Arrays; +import java.util.List; +import java.util.Collections; + +public class MessageWrapperTest { + + private static List> contentParams; + private static Class responseClass; + private static MessageTypeEnum messageType; + private static MessageWrapper messageWrapper; + + @BeforeAll + static void setUp() { + // init data + Map data1 = new HashMap<>(); + data1.put("key1", "value1"); + data1.put("key2", 123); + Map data2 = new HashMap<>(); + data2.put("key3", true); + data2.put("key4", 3.14); + contentParams = Arrays.asList(data1, data2); + responseClass = String.class; + messageType = MessageTypeEnum.DEFAULT; + messageWrapper = new MessageWrapper(contentParams, responseClass, messageType); + } + + @Test + void testGetContentParams() { + Assert.assertEquals(contentParams, messageWrapper.getContentParams()); + } + + @Test + void testGetResponseClass() { + Assert.assertEquals(responseClass, messageWrapper.getResponseClass()); + } + + @Test + void testGetMessageType() { + Assert.assertEquals(messageType, messageWrapper.getMessageType()); + } + + @Test + void testSettersAndGetters() { + List> newContentParams = Collections.singletonList(Collections.emptyMap()); + Class newResponseClass = Integer.class; + MessageTypeEnum newMessageType = MessageTypeEnum.DEFAULT; + messageWrapper.setContentParams(newContentParams); + messageWrapper.setResponseClass(newResponseClass); + messageWrapper.setMessageType(newMessageType); + Assert.assertEquals(newContentParams, messageWrapper.getContentParams()); + Assert.assertEquals(newResponseClass, messageWrapper.getResponseClass()); + Assert.assertEquals(newMessageType, messageWrapper.getMessageType()); + } +} From 0e7e6ec6e76dca2187d5531eb68fef58f44a5cf0 Mon Sep 17 00:00:00 2001 From: Annibale Ippolito <101899632+annippolito@users.noreply.github.com> Date: Fri, 26 May 2023 11:46:02 +0200 Subject: [PATCH 45/58] test: Add test case for RunsOldestTaskPolicy #1335 (#1347) * test: Add test case for RunsOldestTaskPolicy #1335 * make test viewable by codecov #1335 --- .../support/RunsOldestTaskPolicyTest.java | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicyTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicyTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicyTest.java new file mode 100644 index 00000000..0b59807a --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RunsOldestTaskPolicyTest.java @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.executor.support; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class RunsOldestTaskPolicyTest { + + private final RunsOldestTaskPolicy runsOldestTaskPolicy = new RunsOldestTaskPolicy(); + + @Mock + private Runnable runnable; + + @Mock + private Runnable runnableInTheQueue; + + @Mock + private ThreadPoolExecutor threadPoolExecutor; + + @Mock + private BlockingQueue workQueue; + + @Test + public void testRejectedExecutionWhenExecutorIsShutDown() { + when(threadPoolExecutor.isShutdown()).thenReturn(true); + + runsOldestTaskPolicy.rejectedExecution(runnable, threadPoolExecutor); + + verify(threadPoolExecutor, never()).execute(runnable); + verify(runnable, never()).run(); + } + + @Test + public void testRejectedExecutionWhenATaskIsInTheQueueTheExecutorShouldNotExecute() { + when(threadPoolExecutor.isShutdown()).thenReturn(false); + when(threadPoolExecutor.getQueue()).thenReturn(workQueue); + when(workQueue.poll()).thenReturn(runnableInTheQueue); + when(workQueue.offer(runnable)).thenReturn(true); + + runsOldestTaskPolicy.rejectedExecution(runnable, threadPoolExecutor); + + verify(runnableInTheQueue).run(); + verify(threadPoolExecutor, never()).execute(runnable); + verify(runnable, never()).run(); + } + + @Test + public void testRejectedExecutionWhenATaskIsInTheQueueTheExecutorShouldExecute() { + when(threadPoolExecutor.isShutdown()).thenReturn(false); + when(threadPoolExecutor.getQueue()).thenReturn(workQueue); + when(workQueue.poll()).thenReturn(runnableInTheQueue); + when(workQueue.offer(runnable)).thenReturn(false); + + runsOldestTaskPolicy.rejectedExecution(runnable, threadPoolExecutor); + + verify(runnableInTheQueue).run(); + verify(threadPoolExecutor).execute(runnable); + verify(runnable, never()).run(); + } + + @Test + public void testRejectedExecutionWhenATaskIsInTheQueueAndThePollReturnANullValue() { + when(threadPoolExecutor.isShutdown()).thenReturn(false); + when(threadPoolExecutor.getQueue()).thenReturn(workQueue); + when(workQueue.poll()).thenReturn(null); + when(workQueue.offer(runnable)).thenReturn(false); + + runsOldestTaskPolicy.rejectedExecution(runnable, threadPoolExecutor); + + verify(runnableInTheQueue, never()).run(); + verify(threadPoolExecutor).execute(runnable); + verify(runnable, never()).run(); + } +} \ No newline at end of file From 3d3de064388c16ab0a696e93a33ce73a3b8bdcf8 Mon Sep 17 00:00:00 2001 From: Annibale Ippolito <101899632+annippolito@users.noreply.github.com> Date: Sat, 27 May 2023 05:46:27 +0200 Subject: [PATCH 46/58] fix: increase codecov coverage by using junit instead of junit.jupiter (#1349) * increase codecov coverage by using junit instead of junit.jupiter * increase codecov coverage in some other packages * remove blank line --- .../java/cn/hippo4j/common/MockitoTests.java | 16 ++++++------ .../support/BlockingQueueTypeEnumTest.java | 16 ++++++------ .../support/RejectedPolicyTypeEnumTest.java | 24 ++++++++---------- .../common/function/NoArgsConsumerTest.java | 6 ++--- .../common/toolkit/UserContextTest.java | 2 +- .../toolkit/logtracing/LogMessageTest.java | 25 +++++++++---------- .../state/AbstractThreadPoolRuntimeTest.java | 18 ++++++------- .../filter/JWTAuthenticationFilterTest.java | 6 ++--- .../service/impl/UserServiceImplTest.java | 6 ++--- .../auth/toolkit/JwtTokenUtilTest.java | 6 ++--- .../server/common/base/ResultsTest.java | 2 +- 11 files changed, 62 insertions(+), 65 deletions(-) diff --git a/infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java b/infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java index 7673709d..c86d5054 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java +++ b/infra/common/src/test/java/cn/hippo4j/common/MockitoTests.java @@ -17,25 +17,25 @@ package cn.hippo4j.common; +import java.util.List; + import org.apache.commons.lang3.StringUtils; +import org.junit.Test; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.util.List; +import org.mockito.junit.MockitoJUnitRunner; -@ExtendWith(MockitoExtension.class) -class MockitoTests { +@RunWith(MockitoJUnitRunner.class) +public class MockitoTests { @Mock List list; @Test - void mockTests() { + public void mockTests() { Mockito.when(list.get(1)).thenReturn("mock success."); Assertions.assertEquals("mock success.", list.get(1)); try (final MockedStatic mockStatic = Mockito.mockStatic(StringUtils.class)) { diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java index 3ba148f8..e208165f 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnumTest.java @@ -18,7 +18,7 @@ package cn.hippo4j.common.executor.support; import org.junit.Assert; -import org.junit.jupiter.api.Test; +import org.junit.Test; import java.util.Arrays; import java.util.List; @@ -34,7 +34,7 @@ public final class BlockingQueueTypeEnumTest { private static final List BLOCKING_QUEUE_NAMES = Arrays.stream(BlockingQueueTypeEnum.values()).map(BlockingQueueTypeEnum::getName).collect(Collectors.toList()); @Test - void assertCreateBlockingQueueNormal() { + public void testAssertCreateBlockingQueueNormal() { // check legal param: name and capacity for (String name : BLOCKING_QUEUE_NAMES) { BlockingQueue blockingQueueByName = BlockingQueueTypeEnum.createBlockingQueue(name, 10); @@ -43,7 +43,7 @@ public final class BlockingQueueTypeEnumTest { } @Test - void assertCreateBlockingQueueWithIllegalName() { + public void testAssertCreateBlockingQueueWithIllegalName() { // check illegal null name Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue(null, 10)); // check unexistent name @@ -51,7 +51,7 @@ public final class BlockingQueueTypeEnumTest { } @Test - void assertCreateBlockingQueueWithIllegalCapacity() { + public void testAssertCreateBlockingQueueWithIllegalCapacity() { // check illegal null capacity for (String name : BLOCKING_QUEUE_NAMES) { BlockingQueue blockingQueueWithNullCapacity = BlockingQueueTypeEnum.createBlockingQueue(name, null); @@ -81,14 +81,14 @@ public final class BlockingQueueTypeEnumTest { } @Test - void assertCreateBlockingQueueWithIllegalParams() { + public void testAssertCreateBlockingQueueWithIllegalParams() { // check illegal name and capacity Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue("HelloWorld", null)); Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue(null, null)); } @Test - void assertCreateBlockingQueueWithType() { + public void testAssertCreateBlockingQueueWithType() { Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue(1, null)); Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue(2, null)); Assert.assertNotNull(BlockingQueueTypeEnum.createBlockingQueue(3, null)); @@ -102,7 +102,7 @@ public final class BlockingQueueTypeEnumTest { } @Test - void assertGetBlockingQueueNameByType() { + public void testAssertGetBlockingQueueNameByType() { // check legal range of type Assert.assertEquals("ArrayBlockingQueue", BlockingQueueTypeEnum.getBlockingQueueNameByType(1)); Assert.assertEquals("LinkedBlockingQueue", BlockingQueueTypeEnum.getBlockingQueueNameByType(2)); @@ -118,7 +118,7 @@ public final class BlockingQueueTypeEnumTest { } @Test - void assertGetBlockingQueueTypeEnumByName() { + public void testAssertGetBlockingQueueTypeEnumByName() { // check legal range of name Assert.assertEquals(BlockingQueueTypeEnum.ARRAY_BLOCKING_QUEUE, BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName("ArrayBlockingQueue")); Assert.assertEquals(BlockingQueueTypeEnum.LINKED_BLOCKING_QUEUE, BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName("LinkedBlockingQueue")); diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java index d9e6c1c5..b0ce5b02 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnumTest.java @@ -17,18 +17,18 @@ package cn.hippo4j.common.executor.support; +import org.junit.Test; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; import java.util.Arrays; /** * test for {@link RejectedPolicyTypeEnum} */ -class RejectedPolicyTypeEnumTest { +public class RejectedPolicyTypeEnumTest { @Test - void testGetType() { + public void testGetType() { Assertions.assertEquals(1, RejectedPolicyTypeEnum.CALLER_RUNS_POLICY.getType()); Assertions.assertEquals(2, RejectedPolicyTypeEnum.ABORT_POLICY.getType()); Assertions.assertEquals(3, RejectedPolicyTypeEnum.DISCARD_POLICY.getType()); @@ -38,7 +38,7 @@ class RejectedPolicyTypeEnumTest { } @Test - void testGetName() { + public void testGetName() { Assertions.assertEquals("CallerRunsPolicy", RejectedPolicyTypeEnum.CALLER_RUNS_POLICY.getName()); Assertions.assertEquals("AbortPolicy", RejectedPolicyTypeEnum.ABORT_POLICY.getName()); Assertions.assertEquals("DiscardPolicy", RejectedPolicyTypeEnum.DISCARD_POLICY.getName()); @@ -48,12 +48,12 @@ class RejectedPolicyTypeEnumTest { } @Test - void testValues() { + public void testValues() { Assertions.assertNotNull(RejectedPolicyTypeEnum.values()); } @Test - void testValueOf() { + public void testValueOf() { Assertions.assertEquals(RejectedPolicyTypeEnum.CALLER_RUNS_POLICY, RejectedPolicyTypeEnum.valueOf("CALLER_RUNS_POLICY")); Assertions.assertEquals(RejectedPolicyTypeEnum.ABORT_POLICY, RejectedPolicyTypeEnum.valueOf("ABORT_POLICY")); Assertions.assertEquals(RejectedPolicyTypeEnum.DISCARD_POLICY, RejectedPolicyTypeEnum.valueOf("DISCARD_POLICY")); @@ -63,7 +63,7 @@ class RejectedPolicyTypeEnumTest { } @Test - void testCreatePolicy() { + public void testCreatePolicy() { // check legal param: name and type Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> { Assertions.assertNotNull(RejectedPolicyTypeEnum.createPolicy(each.getName())); @@ -78,19 +78,17 @@ class RejectedPolicyTypeEnumTest { } @Test - void testGetRejectedNameByType() { + public void testGetRejectedNameByType() { // check legal range of type - Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> - Assertions.assertEquals(each.getName(), RejectedPolicyTypeEnum.getRejectedNameByType(each.getType()))); + Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> Assertions.assertEquals(each.getName(), RejectedPolicyTypeEnum.getRejectedNameByType(each.getType()))); // check illegal range of type Assertions.assertEquals("AbortPolicy", RejectedPolicyTypeEnum.getRejectedNameByType(-1)); } @Test - void testGetRejectedPolicyTypeEnumByName() { + public void testGetRejectedPolicyTypeEnumByName() { // check legal range of name - Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> - Assertions.assertEquals(each, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(each.getName()))); + Arrays.stream(RejectedPolicyTypeEnum.values()).forEach(each -> Assertions.assertEquals(each, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(each.getName()))); // check illegal name Assertions.assertEquals(RejectedPolicyTypeEnum.ABORT_POLICY, RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName("XXX")); diff --git a/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java b/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java index f0ed0b6f..553dda98 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/function/NoArgsConsumerTest.java @@ -19,14 +19,14 @@ package cn.hippo4j.common.function; import cn.hippo4j.common.extension.function.NoArgsConsumer; import cn.hippo4j.common.toolkit.Assert; -import org.junit.jupiter.api.Test; +import org.junit.Test; import java.util.concurrent.atomic.AtomicBoolean; -final class NoArgsConsumerTest { +public final class NoArgsConsumerTest { @Test - void accept() { + public void accept() { AtomicBoolean checkValue = new AtomicBoolean(false); NoArgsConsumer noArgsConsumer = () -> checkValue.set(true); noArgsConsumer.accept(); diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java index a361d139..ffbc5a83 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/UserContextTest.java @@ -17,7 +17,7 @@ package cn.hippo4j.common.toolkit; -import org.junit.jupiter.api.Test; +import org.junit.Test; public class UserContextTest { diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java index 3d486bcf..5750f587 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/logtracing/LogMessageTest.java @@ -18,46 +18,45 @@ package cn.hippo4j.common.toolkit.logtracing; import org.apache.logging.log4j.util.Strings; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.Before; +import org.junit.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotSame; import static org.junit.jupiter.api.Assertions.assertTrue; -class LogMessageTest { +public class LogMessageTest { private final static String MESSAGE = "message"; private final static String THROWABLE_MESSAGE = "throwable message"; - private LogMessage logMessage; - @BeforeEach + @Before public void init() { logMessage = LogMessage.getInstance(); } @Test - void testGetInstanceShouldReturnANewLogMessageInstance() { + public void testGetInstanceShouldReturnANewLogMessageInstance() { final LogMessage newInstance = LogMessage.getInstance(); assertNotNull(newInstance); assertNotSame(logMessage, newInstance); } @Test - void testToStringShouldHaveAnEmptyMessage() { + public void testToStringShouldHaveAnEmptyMessage() { assertEquals(Strings.EMPTY, logMessage.toString()); } @Test - void testSetMsgShouldSetAnewMessageInLogMessage() { + public void testSetMsgShouldSetAnewMessageInLogMessage() { logMessage.setMsg(MESSAGE); assertEquals(MESSAGE, logMessage.toString()); } @Test - void testMsgShouldContainsMessageAndThrowableMessage() { + public void testMsgShouldContainsMessageAndThrowableMessage() { final String message = logMessage.msg(MESSAGE, new Throwable(THROWABLE_MESSAGE)); assertNotNull(message); assertTrue(message.contains(MESSAGE)); @@ -65,20 +64,20 @@ class LogMessageTest { } @Test - void testKvShouldPutKeyAndValue() { + public void testKvShouldPutKeyAndValue() { logMessage.kv("key", "value"); assertEquals("key=value", logMessage.toString()); } @Test - void testKvShouldPutAllKeyAndValuePairs() { + public void testKvShouldPutAllKeyAndValuePairs() { logMessage.kv("key1", "value1"); logMessage.kv("key2", "value2"); assertEquals("key1=value1||key2=value2", logMessage.toString()); } @Test - void testToStringShouldPrintMessageAndAllKeyAndValuePairs() { + public void testToStringShouldPrintMessageAndAllKeyAndValuePairs() { logMessage.setMsg(MESSAGE); logMessage.kv("key1", "value1"); logMessage.kv("key2", "value2"); @@ -86,7 +85,7 @@ class LogMessageTest { } @Test - void testKv2StringShouldPrintMessageAndAllKeyAndValuePairs() { + public void testKv2StringShouldPrintMessageAndAllKeyAndValuePairs() { String result = logMessage.kv2String("key", "value"); assertEquals("key=value", result); } diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java index d08fb953..7ff7db6e 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java @@ -17,24 +17,24 @@ package cn.hippo4j.core.executor.state; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; +import org.junit.Test; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; -@ExtendWith(MockitoExtension.class) +@RunWith(MockitoJUnitRunner.class) public class AbstractThreadPoolRuntimeTest { @Test - void testPoolRunState() { + public void testPoolRunState() { AbstractThreadPoolRuntime threadPoolRuntime = new AbstractThreadPoolRuntime() { @Override diff --git a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/filter/JWTAuthenticationFilterTest.java b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/filter/JWTAuthenticationFilterTest.java index 8d3b412c..debc76a1 100644 --- a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/filter/JWTAuthenticationFilterTest.java +++ b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/filter/JWTAuthenticationFilterTest.java @@ -18,15 +18,15 @@ package cn.hippo4j.auth.filter; import cn.hippo4j.common.toolkit.ReflectUtil; +import org.junit.Test; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.core.userdetails.UsernameNotFoundException; -class JWTAuthenticationFilterTest { +public class JWTAuthenticationFilterTest { @Test - void getMessageTest() { + public void getMessageTest() { JWTAuthenticationFilter filter = new JWTAuthenticationFilter(null); Assertions.assertEquals("用户不存在", ReflectUtil.invoke(filter, "getMessage", new UsernameNotFoundException(""))); diff --git a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/service/impl/UserServiceImplTest.java b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/service/impl/UserServiceImplTest.java index 8f92e423..42c9cd91 100644 --- a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/service/impl/UserServiceImplTest.java +++ b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/service/impl/UserServiceImplTest.java @@ -18,12 +18,12 @@ package cn.hippo4j.auth.service.impl; import org.junit.Assert; -import org.junit.jupiter.api.Test; +import org.junit.Test; -class UserServiceImplTest { +public class UserServiceImplTest { @Test - void checkPasswordLength() { + public void testCheckPasswordLength() { // 密码为null、空串、过短、过长都会抛出异常 UserServiceImpl userService = new UserServiceImpl(null, null, null); Assert.assertThrows(RuntimeException.class, () -> userService.checkPasswordLength(null)); diff --git a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/toolkit/JwtTokenUtilTest.java b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/toolkit/JwtTokenUtilTest.java index 77b5f0c1..8066d859 100644 --- a/threadpool/server/auth/src/test/java/cn/hippo4j/auth/toolkit/JwtTokenUtilTest.java +++ b/threadpool/server/auth/src/test/java/cn/hippo4j/auth/toolkit/JwtTokenUtilTest.java @@ -18,8 +18,8 @@ package cn.hippo4j.auth.toolkit; import cn.hippo4j.common.toolkit.Assert; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.Before; +import org.junit.Test; public final class JwtTokenUtilTest { @@ -33,7 +33,7 @@ public final class JwtTokenUtilTest { private String token; - @BeforeEach + @Before public void setUp() { token = JwtTokenUtil.createToken(userId, username, role, isRememberMe); } diff --git a/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java b/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java index e76d94b6..9837439d 100644 --- a/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java +++ b/threadpool/server/common/src/test/java/cn/hippo4j/server/common/base/ResultsTest.java @@ -21,7 +21,7 @@ import cn.hippo4j.common.model.Result; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.server.common.base.exception.AbstractException; import cn.hippo4j.server.common.base.exception.ErrorCode; -import org.junit.jupiter.api.Test; +import org.junit.Test; import static cn.hippo4j.server.common.base.exception.ErrorCodeEnum.SERVICE_ERROR; From 338af2f24ed64874caee2668926384f5a881d683 Mon Sep 17 00:00:00 2001 From: lucca suen <72333564+lucca-suen@users.noreply.github.com> Date: Sat, 27 May 2023 14:15:03 +0800 Subject: [PATCH 47/58] Add test case for JacksonHandler. (#1353) * test: Add test case for JacksonHandler. * refactor: Set permission modifiers for JacksonHandlerTest's classes and methods. --------- Co-authored-by: lucca --- .../common/toolkit/JacksonHandlerTest.java | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java new file mode 100644 index 00000000..907a459c --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java @@ -0,0 +1,140 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.toolkit; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.exc.MismatchedInputException; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * test for {@link JacksonHandler} + */ +public class JacksonHandlerTest { + + private final static JacksonHandler JACKSON_HANDLER = new JacksonHandler(); + + private static final Entity EXPECTED_ENTITY = + new Entity(1, "entity1", new Entity(2, "entity2", null)); + + private static final List EXPECTED_ENTITY_ARRAY = Arrays.asList(EXPECTED_ENTITY, EXPECTED_ENTITY); + + private static final String EXPECTED_ENTITY_JSON = "{" + + "\"id\":1," + + "\"name\":\"entity1\"," + + "\"entity\":{" + + "\"id\":2," + + "\"name\":\"entity2\"" + + "}}"; + + private static final String EXPECTED_ENTITY_ARRAY_JSON = "[" + + EXPECTED_ENTITY_JSON + "," + + EXPECTED_ENTITY_JSON + + "]"; + + @Test + public void testToJSONString() { + // boolean to json + Assertions.assertEquals("true", JACKSON_HANDLER.toJSONString(true)); + // double to json + Assertions.assertEquals("0.01", JACKSON_HANDLER.toJSONString(0.01)); + // integer to json + Assertions.assertEquals("1", JACKSON_HANDLER.toJSONString(1)); + // string to json + Assertions.assertEquals("\"hello world\"", JACKSON_HANDLER.toJSONString("hello world")); + // array to json + Assertions.assertEquals("[0,1,2,3,4]", JACKSON_HANDLER.toJSONString(new int[]{0, 1, 2, 3, 4})); + // object to json + Assertions.assertEquals(EXPECTED_ENTITY_JSON, JACKSON_HANDLER.toJSONString(EXPECTED_ENTITY)); + } + + @Test + public void testParseObject() { + // normal json to boolean + Assertions.assertEquals(true, JACKSON_HANDLER.parseObject("true", Boolean.class)); + // normal json to double + Assertions.assertEquals(0.01, JACKSON_HANDLER.parseObject("0.01", Double.class)); + // normal json to integer + Assertions.assertEquals(1, JACKSON_HANDLER.parseObject("1", Integer.class)); + // normal json to string + Assertions.assertEquals("hello world", + JACKSON_HANDLER.parseObject("\"hello world\"", String.class)); + // normal json to object + Assertions.assertEquals(EXPECTED_ENTITY, JACKSON_HANDLER.parseObject(EXPECTED_ENTITY_JSON, Entity.class)); + Assertions.assertEquals( + EXPECTED_ENTITY, + JACKSON_HANDLER.parseObject(EXPECTED_ENTITY_JSON, new TypeReference() { + }) + ); + // illegal json + Assertions.assertThrows(MismatchedInputException.class, + () -> JACKSON_HANDLER.parseObject(" ", Entity.class)); + // null json + Assertions.assertThrows(IllegalArgumentException.class, + () -> JACKSON_HANDLER.parseObject(null, Entity.class)); + // illegal type + Assertions.assertThrows(MismatchedInputException.class, + () -> JACKSON_HANDLER.parseObject(EXPECTED_ENTITY_JSON, String.class)); + } + + @Test + public void testParseArray() { + // normal json to array + Assertions.assertEquals(EXPECTED_ENTITY_ARRAY, JSONUtil.parseArray(EXPECTED_ENTITY_ARRAY_JSON, Entity.class)); + // null json + Assertions.assertEquals(Collections.emptyList(), JSONUtil.parseArray(null, Entity.class)); + // illegal json + Assertions.assertEquals(Collections.emptyList(), JSONUtil.parseArray(" ", Entity.class)); + } + + @Test + public void testIsJson() { + // normal json + Assertions.assertTrue(JACKSON_HANDLER.isJson(EXPECTED_ENTITY_JSON)); + Assertions.assertTrue(JACKSON_HANDLER.isJson(EXPECTED_ENTITY_ARRAY_JSON)); + Assertions.assertTrue(JACKSON_HANDLER.isJson(" ")); + // illegal json + Assertions.assertFalse(JACKSON_HANDLER.isJson("{" + + "\"id\":1," + + "\"name\":\"entity1\"," + + "\"entity\":{\"id\":2,\"name\":\"entity2\"}")); + // null json + Assertions.assertThrows(IllegalArgumentException.class, () -> JACKSON_HANDLER.isJson(null)); + } + + @EqualsAndHashCode + @AllArgsConstructor + @NoArgsConstructor + @Data + private static class Entity { + + private Integer id; + + private String name; + + private Entity entity; + } +} From 7f25bd62a089304ec401dc126f8a25f1161b0ed8 Mon Sep 17 00:00:00 2001 From: Mryanhehe <47975600+Mryanhehe@users.noreply.github.com> Date: Sat, 27 May 2023 16:39:18 +0800 Subject: [PATCH 48/58] test ResizableCapacityLinkedBlockingQueue (#1350) --- ...izableCapacityLinkedBlockingQueueTest.java | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueueTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueueTest.java b/infra/common/src/test/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueueTest.java new file mode 100644 index 00000000..c1ebee89 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/support/ResizableCapacityLinkedBlockingQueueTest.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.executor.support; + +import cn.hippo4j.common.toolkit.ThreadUtil; +import lombok.extern.slf4j.Slf4j; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.IntStream; + +@Slf4j +public class ResizableCapacityLinkedBlockingQueueTest { + + @Test + public void testResizableCapacityLinkedBlockingQueueSize() throws InterruptedException { + ResizableCapacityLinkedBlockingQueue queue1 = new ResizableCapacityLinkedBlockingQueue(10); + queue1.setCapacity(20); + Assert.assertEquals(20, queue1.remainingCapacity()); + queue1.add(1); + Assert.assertEquals(19, queue1.remainingCapacity()); + ResizableCapacityLinkedBlockingQueue queue2 = new ResizableCapacityLinkedBlockingQueue(Arrays.asList(1, 2, 3, 4)); + queue2.setCapacity(5); + Assert.assertEquals(1, queue2.remainingCapacity()); + } + + @Test + public void testIncreaseResizableCapacityLinkedBlockingQueue() throws InterruptedException { + MyRejectedExecutionHandler myRejectedExecutionHandler = new MyRejectedExecutionHandler(); + ResizableCapacityLinkedBlockingQueue queue = new ResizableCapacityLinkedBlockingQueue(); + + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, + 60, TimeUnit.SECONDS, queue, myRejectedExecutionHandler); + Assert.assertSame(queue, threadPoolExecutor.getQueue()); + threadPoolExecutor.prestartAllCoreThreads(); + queue.setCapacity(6); + IntStream.range(0, 4).forEach(s -> { + threadPoolExecutor.execute(() -> ThreadUtil.sleep(0L)); + }); + threadPoolExecutor.shutdown(); + while (!threadPoolExecutor.isTerminated()) { + } + Assert.assertEquals(4, threadPoolExecutor.getCompletedTaskCount()); + Assert.assertEquals(0, myRejectedExecutionHandler.getCount()); + + } + + @Test + public void testDecreaseResizableCapacityLinkedBlockingQueue() throws InterruptedException { + MyRejectedExecutionHandler myRejectedExecutionHandler = new MyRejectedExecutionHandler(); + ResizableCapacityLinkedBlockingQueue queue = new ResizableCapacityLinkedBlockingQueue<>(4); + + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, + 60, TimeUnit.SECONDS, queue, myRejectedExecutionHandler); + Assert.assertSame(queue, threadPoolExecutor.getQueue()); + threadPoolExecutor.prestartAllCoreThreads(); + queue.setCapacity(0); + IntStream.range(0, 4).forEach(s -> { + threadPoolExecutor.execute(() -> ThreadUtil.sleep(0L)); + }); + threadPoolExecutor.shutdown(); + while (!threadPoolExecutor.isTerminated()) { + } + Assert.assertEquals(0, threadPoolExecutor.getCompletedTaskCount()); + Assert.assertEquals(4, myRejectedExecutionHandler.getCount()); + + } +} + +class MyRejectedExecutionHandler implements RejectedExecutionHandler { + + public AtomicInteger count = new AtomicInteger(0); + + @Override + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { + if (executor.isShutdown()) { + return; + } + if (!executor.getQueue().offer(r)) { + count.incrementAndGet(); + } + } + + public int getCount() { + return count.get(); + } +} \ No newline at end of file From 778a9e6a6bc988533bb7a355c62ca0615ba8c9c6 Mon Sep 17 00:00:00 2001 From: shuhai Date: Sat, 27 May 2023 16:56:09 +0800 Subject: [PATCH 49/58] Add test case for IoUtil (#1352) * Add test case for IoUtil * replace import java.io.*; * 1.change testTryDecompress to testTryDecompressInputStream and testTryDecompressByteArray 2.remove test resource file --- .../cn/hippo4j/common/toolkit/IoUtilTest.java | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java new file mode 100644 index 00000000..0f48c046 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java @@ -0,0 +1,260 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.toolkit; + +import org.apache.commons.io.input.BrokenInputStream; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import java.io.BufferedReader; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.Writer; +import java.io.File; +import java.io.StringReader; +import java.io.StringWriter; +import java.io.Closeable; +import java.io.FileReader; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.ByteArrayOutputStream; +import java.io.ByteArrayInputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +/** + * test for {@link IoUtil} + */ +public class IoUtilTest { + private Path tempDir; + private File sourceFile; + + @Before + public void setUp() throws IOException { + tempDir = Files.createTempDirectory("test"); + sourceFile = new File(tempDir.toFile(), "source.txt"); + try (FileOutputStream fos = new FileOutputStream(sourceFile)) { + fos.write("Hello, World!".getBytes()); + } + } + + @After + public void tearDown() throws IOException { + Files.walk(tempDir) + .sorted((a, b) -> -a.compareTo(b)) + .forEach(path -> { + try { + Files.deleteIfExists(path); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } + + @Test + public void testTryDecompressInputStream() throws IOException { + byte[] inputBytes = "This is a test string.".getBytes("UTF-8"); + ByteArrayOutputStream compressedOutput = new ByteArrayOutputStream(); + try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedOutput)) { + gzipOutputStream.write(inputBytes); + } + byte[] compressedBytes = compressedOutput.toByteArray(); + ByteArrayInputStream compressedInput = new ByteArrayInputStream(compressedBytes); + byte[] decompressedBytes = IoUtil.tryDecompress(compressedInput); + Assert.assertNotNull(decompressedBytes); + Assert.assertTrue(decompressedBytes.length > 0); + Assert.assertArrayEquals(inputBytes, decompressedBytes); + } + + @Test + public void testTryDecompressByteArray() throws Exception { + byte[] inputBytes = "This is a test string.".getBytes("UTF-8"); + ByteArrayOutputStream compressedOutput = new ByteArrayOutputStream(); + try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedOutput)) { + gzipOutputStream.write(inputBytes); + } + byte[] compressedBytes = compressedOutput.toByteArray(); + byte[] decompressedBytes = IoUtil.tryDecompress(compressedBytes); + Assert.assertNotNull(decompressedBytes); + Assert.assertTrue(decompressedBytes.length > 0); + Assert.assertArrayEquals(inputBytes, decompressedBytes); + } + + @Test + public void testTryCompress() throws IOException { + String inputString = "This is a test string."; + String encoding = "UTF-8"; + byte[] compressedBytes = IoUtil.tryCompress(inputString, encoding); + Assert.assertNotNull(compressedBytes); + Assert.assertTrue(compressedBytes.length > 0); + try ( + GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressedBytes))) { + byte[] decompressedBytes = new byte[1024]; + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + int readBytes; + while ((readBytes = gzipInputStream.read(decompressedBytes)) > 0) { + outputStream.write(decompressedBytes, 0, readBytes); + } + String decompressedString = outputStream.toString(encoding); + Assert.assertEquals(inputString, decompressedString); + } + } + + @Test + public void testWriteStringToFile() throws IOException { + File tempFile = new File(tempDir.toFile(), "testWriteStringToFile.txt"); + String testString = "test string"; + IoUtil.writeStringToFile(tempFile, testString, "UTF-8"); + BufferedReader reader = new BufferedReader(new FileReader(tempFile)); + String fileContent = reader.readLine(); + reader.close(); + Assert.assertEquals(testString, fileContent); + } + + @Test + public void testReadLines() throws IOException { + File tempFile = new File(tempDir.toFile(), "testReadLines.txt"); + try ( + PrintWriter writer = new PrintWriter(tempFile)) { + writer.println("test string 1"); + writer.println("test string 2"); + writer.println("test string 3"); + } + FileReader fileReader = new FileReader(tempFile); + List lines = IoUtil.readLines(fileReader); + fileReader.close(); + Assert.assertEquals(3, lines.size()); + Assert.assertEquals("test string 1", lines.get(0)); + Assert.assertEquals("test string 2", lines.get(1)); + Assert.assertEquals("test string 3", lines.get(2)); + } + + @Test + public void testToStringInputStream() { + String testString = "test string"; + InputStream inputStream = new ByteArrayInputStream(testString.getBytes()); + String result = IoUtil.toString(inputStream, "UTF-8"); + Assert.assertEquals(testString, result); + } + + @Test + public void testToStringReader() throws IOException { + String testString = "test string"; + Reader reader = new StringReader(testString); + String result = IoUtil.toString(reader); + Assert.assertEquals(testString, result); + } + + @Test + public void testCopyReaderWriter() throws IOException { + String inputString = "testCopyReaderWriter"; + Reader reader = new StringReader(inputString); + Writer writer = new StringWriter(); + IoUtil.copy(reader, writer); + Assert.assertEquals(inputString, writer.toString()); + } + + @Test + public void testCopyInputStreamOutputStream() throws IOException { + String inputString = "testCopyInputStreamOutputStream"; + InputStream inputStream = new ByteArrayInputStream(inputString.getBytes()); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + IoUtil.copy(inputStream, outputStream); + Assert.assertEquals(inputString, outputStream.toString()); + } + + @Test + public void testDelete() throws IOException { + File deleteFile = new File(tempDir.toFile(), "delete.txt"); + deleteFile.createNewFile(); + Assert.assertTrue(deleteFile.exists()); + IoUtil.delete(deleteFile); + Assert.assertFalse(deleteFile.exists()); + File deleteDir = new File(tempDir.toFile(), "delete"); + deleteDir.mkdirs(); + Assert.assertTrue(deleteDir.exists()); + File deleteDirFile = new File(deleteDir, "delete.txt"); + deleteDirFile.createNewFile(); + Assert.assertTrue(deleteDirFile.exists()); + IoUtil.delete(deleteDir); + Assert.assertTrue(deleteDir.exists()); + Assert.assertFalse(deleteDirFile.exists()); + } + + @Test + public void testCleanDirectory() throws IOException { + File cleanDir = new File(tempDir.toFile(), "clean"); + cleanDir.mkdirs(); + File cleanFile1 = new File(cleanDir, "clean1.txt"); + File cleanFile2 = new File(cleanDir, "clean2.txt"); + Assert.assertTrue(cleanDir.exists()); + Assert.assertTrue(cleanFile1.createNewFile()); + Assert.assertTrue(cleanFile2.createNewFile()); + IoUtil.cleanDirectory(cleanDir); + Assert.assertFalse(cleanFile1.exists()); + Assert.assertFalse(cleanFile2.exists()); + } + + @Test + public void testCopyFile() throws Exception { + String sourcePath = sourceFile.getAbsolutePath(); + String targetPath = sourceFile.getParent() + File.separator + "copy" + File.separator + "target.txt"; + IoUtil.copyFile(sourcePath, targetPath); + File targetFile = new File(targetPath); + Assert.assertTrue(targetFile.exists()); + Assert.assertEquals(sourceFile.length(), targetFile.length()); + byte[] sourceBytes = Files.readAllBytes(sourceFile.toPath()); + byte[] targetBytes = Files.readAllBytes(targetFile.toPath()); + Assert.assertArrayEquals(sourceBytes, targetBytes); + } + + @Test + public void testIsGzipStream() { + byte[] gzipBytes = new byte[2]; + gzipBytes[0] = (byte) GZIPInputStream.GZIP_MAGIC; + gzipBytes[1] = (byte) (GZIPInputStream.GZIP_MAGIC >> 8); + byte[] invalidGzipBytes = new byte[2]; + invalidGzipBytes[0] = (byte) (GZIPInputStream.GZIP_MAGIC + 1); + invalidGzipBytes[1] = (byte) ((GZIPInputStream.GZIP_MAGIC >> 8) + 1); + byte[] invalidGzipBytes2 = new byte[1]; + byte[] normalBytes = new byte[2]; + Assert.assertTrue(IoUtil.isGzipStream(gzipBytes)); + Assert.assertFalse(IoUtil.isGzipStream(invalidGzipBytes)); + Assert.assertFalse(IoUtil.isGzipStream(invalidGzipBytes2)); + Assert.assertFalse(IoUtil.isGzipStream(null)); + Assert.assertFalse(IoUtil.isGzipStream(normalBytes)); + } + + @Test + public void testCloseQuietly() throws IOException { + Closeable closeable = new BrokenInputStream(); + URL url = new URL("https://www.baidu.com"); + HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); + Assertions.assertDoesNotThrow(() -> IoUtil.closeQuietly(closeable)); + Assertions.assertDoesNotThrow(() -> IoUtil.closeQuietly(closeable, closeable, closeable)); + Assertions.assertDoesNotThrow(() -> IoUtil.closeQuietly(httpURLConnection)); + } +} From 5e2e3a3be350a9f5baa5ce0e3dd9b651f2dc9eb9 Mon Sep 17 00:00:00 2001 From: Xin Chen <37373516+DDreame@users.noreply.github.com> Date: Sun, 28 May 2023 14:43:58 +0800 Subject: [PATCH 50/58] add UnitTest about MessageConvert (#1358) * add UnitTest about MessageConvert * add UnitTest about MessageConvert * add UnitTest about MessageConvert --- .../common/toolkit/MessageConvert.java | 4 + .../common/toolkit/MessageConvertTest.java | 110 ++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java index 3be85745..6a5d1fbc 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java @@ -31,6 +31,10 @@ import lombok.SneakyThrows; */ public class MessageConvert { + private MessageConvert(){ + + } + /** * {@link Message} to {@link MessageWrapper}. * diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java new file mode 100644 index 00000000..88677d9f --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java @@ -0,0 +1,110 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.toolkit; + +import cn.hippo4j.common.model.ThreadPoolRunStateInfo; +import cn.hippo4j.common.monitor.*; +import org.junit.Test; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/*** + * @description : Todo + * @author : DDDreame + * @date : 2023/5/27 23:24 + */ +public class MessageConvertTest { + + @Test + public void testConvert() { + AbstractMessage message = new RuntimeMessage(); + List runtimeMessages = new ArrayList<>(); + ThreadPoolRunStateInfo poolRunState = ThreadPoolRunStateInfo.builder() + .tpId("testTPid") + .activeSize(4) + .poolSize(12) + .completedTaskCount(8L) + .largestPoolSize(12) + .currentLoad("6") + .clientLastRefreshTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) + .peakLoad("20") + .queueSize(0) + .queueRemainingCapacity(512) + .rejectCount(0L) + .timestamp(System.currentTimeMillis()) + .build(); + RuntimeMessage runtimeMessage = BeanUtil.convert(poolRunState, RuntimeMessage.class); + runtimeMessage.setGroupKey("test-groupKeys"); + runtimeMessages.add(runtimeMessage); + + message.setMessageType(MessageTypeEnum.RUNTIME); + message.setMessages(runtimeMessages); + MessageWrapper messageWrapper = MessageConvert.convert(message); + Assertions.assertNotNull(messageWrapper); + } + + @Test + public void testMessageWrapperConvert() { + AbstractMessage message = new RuntimeMessage(); + List runtimeMessages = new ArrayList<>(); + ThreadPoolRunStateInfo poolRunState = ThreadPoolRunStateInfo.builder() + .tpId("testTPid") + .activeSize(4) + .poolSize(12) + .completedTaskCount(8L) + .largestPoolSize(12) + .currentLoad("6") + .clientLastRefreshTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) + .peakLoad("20") + .queueSize(0) + .queueRemainingCapacity(512) + .rejectCount(0L) + .timestamp(System.currentTimeMillis()) + .build(); + RuntimeMessage runtimeMessage = BeanUtil.convert(poolRunState, RuntimeMessage.class); + runtimeMessage.setGroupKey("test-groupKeys"); + runtimeMessages.add(runtimeMessage); + + message.setMessageType(MessageTypeEnum.RUNTIME); + message.setMessages(runtimeMessages); + MessageWrapper messageWrapper = MessageConvert.convert(message); + Message messageResult = MessageConvert.convert(messageWrapper); + Assertions.assertNotNull(messageResult); + Assertions.assertEquals(message, messageResult); + } + + @Test + public void testMessageWrapperConvertException() { + Assertions.assertThrows(Exception.class, ()->{ + Map data1 = new HashMap<>(); + data1.put("key1", "value1"); + data1.put("key2", 123); + Map data2 = new HashMap<>(); + data2.put("key3", true); + data2.put("key4", 3.14); + List> contentParams = Arrays.asList(data1, data2); + Class responseClass = String.class; + MessageTypeEnum messageType = MessageTypeEnum.DEFAULT; + MessageWrapper messageWrapper = new MessageWrapper(contentParams, responseClass, messageType); + MessageConvert.convert(messageWrapper); + }); + } +} From 08cc67c07e6118fcca8cbdb4271c1a740ada2b3b Mon Sep 17 00:00:00 2001 From: furaul Date: Sun, 28 May 2023 14:55:46 +0800 Subject: [PATCH 51/58] prototype version of dubbo threadpool agent. (#1357) * prototype version of dubbo threadpool agent. * rename to optimze & fix ci errors. * rename to optimze & fix ci errors. --- .../adapter-plugins/dubbo-plugin/pom.xml | 29 +++++++ .../adapter/dubbo/DubboThreadPoolAdapter.java | 87 +++++++++++++++++++ .../adapter-plugins/pom.xml | 5 ++ .../spring-boot-1x-plugin/pom.xml | 6 ++ .../EventPublishingFinishedInterceptor.java | 2 + agent/pom.xml | 5 ++ 6 files changed, 134 insertions(+) create mode 100644 agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/pom.xml create mode 100644 agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/pom.xml b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/pom.xml new file mode 100644 index 00000000..5304c6eb --- /dev/null +++ b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/pom.xml @@ -0,0 +1,29 @@ + + + + hippo4j-agent-adapter-plugins + cn.hippo4j + ${revision} + + 4.0.0 + + dubbo-plugin + + + + org.apache.dubbo + dubbo + provided + + + + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} + + + + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java new file mode 100644 index 00000000..855972ea --- /dev/null +++ b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.agent.adapter.dubbo; + +import cn.hippo4j.common.executor.ThreadPoolRegistry; +import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; +import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; +import cn.hippo4j.common.model.executor.ExecutorProperties; +import cn.hippo4j.common.toolkit.BooleanUtil; +import cn.hippo4j.common.toolkit.ReflectUtil; +import java.util.Map; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadPoolExecutor; +import org.apache.dubbo.common.Version; +import org.apache.dubbo.common.extension.ExtensionLoader; +import org.apache.dubbo.common.store.DataStore; +import org.apache.dubbo.common.threadpool.manager.ExecutorRepository; + +/** + * Dubbo thread-pool adapter. + */ +public class DubboThreadPoolAdapter { + + public static void registerExecutors() { + boolean isLegacyVersion = true; + String poolKey = ExecutorService.class.getName(); + // Since 2.7.5, Dubbo has changed the way thread pools are used + // fixed https://github.com/opengoofy/hippo4j/issues/708 + try { + if (Version.getIntVersion(Version.getVersion()) < 2070500) { + isLegacyVersion = false; + } + } catch (Exception ex) { + } + + try { + if (isLegacyVersion) { + DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension(); + Map executors = dataStore.get(poolKey); + executors.forEach((key, value) -> putHolder(mark() + key, (ThreadPoolExecutor) value)); + return; + } + ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension(); + ConcurrentMap> data = + (ConcurrentMap>) ReflectUtil.getFieldValue(executorRepository, "data"); + ConcurrentMap executorServiceMap = data.get(poolKey); + executorServiceMap.forEach((key, value) -> putHolder(mark() + key, (ThreadPoolExecutor) value)); + } catch (Exception ex) { + } + } + + private static void putHolder(String executorName, ThreadPoolExecutor executor) { + if (executor == null) { + return; + } + ExecutorProperties executorProperties = ExecutorProperties.builder() + .threadPoolId(executorName) + .corePoolSize(executor.getCorePoolSize()) + .maximumPoolSize(executor.getMaximumPoolSize()) + .allowCoreThreadTimeOut(BooleanUtil.toBoolean(String.valueOf(executor.allowsCoreThreadTimeOut()))) + .blockingQueue(BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName(executor.getQueue().getClass().getSimpleName()).getName()) + .queueCapacity(executor.getQueue().remainingCapacity()) + .rejectedHandler(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()) + .build(); + ThreadPoolRegistry.putHolder(executorName, executor, executorProperties); + } + + public static String mark() { + return "Dubbo"; + } +} diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml index 38bfb05c..1c52b2e9 100644 --- a/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml +++ b/agent/hippo4j-agent-plugin/adapter-plugins/pom.xml @@ -10,6 +10,7 @@ hippo4j-agent-adapter-plugins + pom 8 @@ -17,4 +18,8 @@ UTF-8 + + dubbo-plugin + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml index ccec3c7b..b3d2cbf9 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/pom.xml @@ -49,6 +49,12 @@ ${project.version} provided + + + cn.hippo4j + dubbo-plugin + + \ No newline at end of file diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java index 93b7d1ef..777194f0 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-boot-1x-plugin/src/main/java/cn/hippo4j/agent/plugin/spring/boot/v1/interceptor/EventPublishingFinishedInterceptor.java @@ -17,6 +17,7 @@ package cn.hippo4j.agent.plugin.spring.boot.v1.interceptor; +import cn.hippo4j.agent.adapter.dubbo.DubboThreadPoolAdapter; import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; import cn.hippo4j.agent.core.plugin.interceptor.enhance.EnhancedInstance; @@ -56,6 +57,7 @@ public class EventPublishingFinishedInterceptor implements InstanceMethodsAround SpringPropertiesLoader.loadSpringProperties(context.getEnvironment()); ThreadPoolDynamicRefresh dynamicRefreshSpring1x = new DynamicThreadPoolChangeHandlerSpring1x(context); dynamicRefreshSpring1x.registerListener(); + DubboThreadPoolAdapter.registerExecutors(); return ret; } diff --git a/agent/pom.xml b/agent/pom.xml index d0a8b793..0d899eab 100644 --- a/agent/pom.xml +++ b/agent/pom.xml @@ -154,6 +154,11 @@ ${jmh.version} test + + cn.hippo4j + dubbo-plugin + ${project.version} + From 5d40f66e7c94238f79fe231744059db1036dc450 Mon Sep 17 00:00:00 2001 From: magestack Date: Sun, 28 May 2023 16:59:42 +0800 Subject: [PATCH 52/58] Update using company (#1359) --- docs/i18n/zh/docusaurus-plugin-content-pages/users.md | 3 ++- docs/src/pages/users.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md index c780d5e1..f06de39a 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-pages/users.md +++ b/docs/i18n/zh/docusaurus-plugin-content-pages/users.md @@ -5,7 +5,7 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 38+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 39+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) @@ -45,6 +45,7 @@ title: 采用公司 - [神州数码(西安)](https://www.digitalchina.com) - [广联达科技股份有限公司](https://www.glodon.com) - [天健联创控股集团有限公司](https://www.tjlc.com.cn) +- [知乎](https://www.zhihu.com/) ## 登记 diff --git a/docs/src/pages/users.md b/docs/src/pages/users.md index c780d5e1..f06de39a 100644 --- a/docs/src/pages/users.md +++ b/docs/src/pages/users.md @@ -5,7 +5,7 @@ title: 采用公司 ## 谁在使用 Hippo4j -共计 38+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 +共计 39+ 家公司生产接入 Hippo4j,按照公司登记时间排序。 - [身边云](https://serviceshare.com) - [思派健康科技](https://www.medbanks.cn) @@ -45,6 +45,7 @@ title: 采用公司 - [神州数码(西安)](https://www.digitalchina.com) - [广联达科技股份有限公司](https://www.glodon.com) - [天健联创控股集团有限公司](https://www.tjlc.com.cn) +- [知乎](https://www.zhihu.com/) ## 登记 From 9264919060861b0161f6929ba4c46c090cef501e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=82=AE=E9=80=92=E5=91=98?= <78356082+barret-yzh@users.noreply.github.com> Date: Tue, 30 May 2023 18:48:06 +0800 Subject: [PATCH 53/58] Add test case for ThreadPoolExecutorUtil (#1356) * Create ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest Methods are covered by multiple unit test cases . Console printing in English * Update ThreadFactoryBuilderTest Add open source protocol. use @before annotation * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest * Update ThreadFactoryBuilderTest * Add test case for MessageWrapper * Update MessageWrapperTest * Add test case for ThreadPoolExecutorUtil Add test case for ThreadPoolExecutorUtil * Update ThreadPoolExecutorUtilTest --- .../executor/ThreadPoolExecutorUtilTest | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolExecutorUtilTest diff --git a/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolExecutorUtilTest b/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolExecutorUtilTest new file mode 100644 index 00000000..c3459d03 --- /dev/null +++ b/infra/common/src/test/java/cn/hippo4j/common/executor/ThreadPoolExecutorUtilTest @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.executor; + +import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public class ThreadPoolExecutorUtilTest { + + private ThreadPoolExecutor executor; + private int corePoolSize; + private int maxPoolSize; + + @Before + public void testSafeSetPoolSize() { + corePoolSize = 2; + maxPoolSize = 4; + executor = new ThreadPoolExecutor( + corePoolSize, + maxPoolSize, + 1L, + TimeUnit.SECONDS, + new ArrayBlockingQueue<>(10) + ); + } + + @Test + public void testEquals(){ + // Test when the new core pool size equals the original maximum pool size. + int newCorePoolSize1 = maxPoolSize; + int newMaxPoolSize1 = 6; + ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize1, newMaxPoolSize1); + Assert.assertEquals(newCorePoolSize1, executor.getCorePoolSize()); + Assert.assertEquals(newMaxPoolSize1, executor.getMaximumPoolSize()); + } + + @Test + public void testGreater(){ + // Test when the new core pool size is greater than the original maximum pool size. + int newCorePoolSize2 = 8; + int newMaxPoolSize2 = 10; + ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize2, newMaxPoolSize2); + Assert.assertEquals(newCorePoolSize2, executor.getCorePoolSize()); + Assert.assertEquals(newMaxPoolSize2, executor.getMaximumPoolSize()); + } + + @Test + public void testLess(){ + // Test when the new core pool size is less than the original maximum pool size. + int newCorePoolSize3 = 3; + int newMaxPoolSize3 = 5; + ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize3, newMaxPoolSize3); + Assert.assertEquals(newCorePoolSize3, executor.getCorePoolSize()); + Assert.assertEquals(newMaxPoolSize3, executor.getMaximumPoolSize()); + } + + @Test + public void testException(){ + // Test when the new core pool size is greater than the new maximum pool size, which should throw an IllegalArgumentException. + int newCorePoolSize4 = 6; + int newMaxPoolSize4 = 4; + try { + ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize4, newMaxPoolSize4); + } catch (IllegalArgumentException e) { + // Expected to throw an exception. + Assert.assertEquals("newCorePoolSize must be smaller than newMaximumPoolSize", e.getMessage()); + } + } +} From 94da6f6c28fcd6a680f81d7c4e4f18fb4c27dfee Mon Sep 17 00:00:00 2001 From: yhc777 <71164753+yhc777@users.noreply.github.com> Date: Fri, 2 Jun 2023 10:11:53 +0800 Subject: [PATCH 54/58] feature(issue 1272): FeiShu group chat robot adds signature verification function (#1360) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature(issue 1272): FeiShu group chat robot adds signature verification function * fix(#1272): 1、sign is null fix 2、code reformat * refactor(#1272): sign refactor --- .../platform/LarkSendMessageHandler.java | 29 +++++++++++++++++++ .../robot/dynamic-thread-pool/lark-alarm.json | 2 ++ 2 files changed, 31 insertions(+) diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java b/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java index dce2e378..1a16f3be 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java @@ -33,7 +33,13 @@ import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.Base64; +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; @@ -81,7 +87,16 @@ public class LarkSendMessageHandler implements SendMessageHandler { } else { larkAlarmTxt = StringUtil.replace(larkAlarmTxt, larkAlarmTimeoutReplaceJson, ""); } + + String timestamp = String.valueOf(System.currentTimeMillis()).substring(0, 10); + String sign = ""; + if (notifyConfig.getSecret() != null) { + sign = genSign(notifyConfig.getSecret(), timestamp); + } + String text = String.format(larkAlarmTxt, + timestamp, + sign, alarmNotifyRequest.getActive(), alarmNotifyRequest.getNotifyTypeEnum(), alarmNotifyRequest.getThreadPoolId(), @@ -154,6 +169,20 @@ public class LarkSendMessageHandler implements SendMessageHandler { } } + /** + * generate Signature + */ + private String genSign(String secret, String timestamp) throws NoSuchAlgorithmException, InvalidKeyException { + // geneSign + String stringToSign = timestamp + "\n" + secret; + + // encode + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(stringToSign.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); + byte[] signData = mac.doFinal(new byte[]{}); + return new String(Base64.encodeBase64(signData)); + } + /** * Lark robot response. */ diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json b/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json index 2bc88c3a..a64661ae 100644 --- a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json +++ b/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json @@ -1,5 +1,7 @@ { "msg_type": "interactive", + "timestamp": "%s", + "sign": "%s", "card": { "config": { "wide_screen_mode": true From 84740267583da0abab87c473008caf6a16c3ee05 Mon Sep 17 00:00:00 2001 From: BigXin0109 <1064730540@qq.com> Date: Sun, 4 Jun 2023 18:39:02 +0800 Subject: [PATCH 55/58] Docker supports arm64 images #1279 (#1367) * feat: docker support linux/arm64,linux/amd64 platform * feat: docker support linux/arm64,linux/amd64 platform --- docs/docs/user_docs/ops/server-docker.md | 4 ++++ .../current/user_docs/ops/server-docker.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/docs/user_docs/ops/server-docker.md b/docs/docs/user_docs/ops/server-docker.md index 7b106a2c..0812b931 100644 --- a/docs/docs/user_docs/ops/server-docker.md +++ b/docs/docs/user_docs/ops/server-docker.md @@ -39,6 +39,10 @@ mvn clean package -Dskip.spotless.apply=true # 进入到 docker 工程路径下 # 默认打包是打包的 tag 是 latest docker build -t hippo4j/hippo4j-server ../docker + +# 构建多平台版本 +docker buildx build --platform linux/arm64 -t hippo4j/hippo4j-server ../docker +docker buildx build --platform linux/amd64 -t hippo4j/hippo4j-server ../docker ``` 方式二: diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md index 7b106a2c..0812b931 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/current/user_docs/ops/server-docker.md @@ -39,6 +39,10 @@ mvn clean package -Dskip.spotless.apply=true # 进入到 docker 工程路径下 # 默认打包是打包的 tag 是 latest docker build -t hippo4j/hippo4j-server ../docker + +# 构建多平台版本 +docker buildx build --platform linux/arm64 -t hippo4j/hippo4j-server ../docker +docker buildx build --platform linux/amd64 -t hippo4j/hippo4j-server ../docker ``` 方式二: From 4248512d98ece040a7aa34683543b4c87d067d96 Mon Sep 17 00:00:00 2001 From: magestack Date: Thu, 8 Jun 2023 23:50:41 +0800 Subject: [PATCH 56/58] Abstract alarm and notification kernel modules and refactor existing code (#1376) --- .../adapter/dubbo/DubboThreadPoolAdapter.java | 4 +- .../SpringThreadPoolRegisterSupport.java | 6 +- ...lExecutorConstructorMethodInterceptor.java | 4 +- .../src/main/resources/bootstrap.properties | 10 +- .../core/handler/TaskTraceBuilderHandler.java | 2 +- .../core/inittest/AlarmSendMessageTest.java | 8 +- .../RegisterDynamicThreadPoolTest.java | 2 +- .../core/inittest/TaskDecoratorTest.java | 8 +- .../server/adapter-kafka/pom.xml | 2 +- .../server/adapter-rabbitmq/pom.xml | 2 +- .../server/adapter-rocketmq/pom.xml | 2 +- .../server/adapter-stream-rabbitmq/pom.xml | 2 +- .../server/adapter-stream-rocketmq/pom.xml | 2 +- .../threadpool-example/server/server/pom.xml | 2 +- .../executor/ThreadPoolExecutorHolder.java | 7 + ...y.java => ThreadPoolExecutorRegistry.java} | 27 +++- .../propertie/EnvironmentProperties.java | 44 +++++++ .../common/propertie/IdentifyProperties.java | 32 +++++ .../common/toolkit/MessageConvert.java | 13 +- .../cn/hippo4j/common/toolkit/IoUtilTest.java | 1 + .../common/toolkit/JacksonHandlerTest.java | 3 +- .../common/toolkit/MessageConvertTest.java | 2 +- kernel/alarm/pom.xml | 13 ++ .../alarm}/api/ThreadPoolCheckAlarm.java | 16 +-- .../DefaultThreadPoolCheckAlarmHandler.java | 124 +++++++++--------- .../toolkit/ExecutorTraceContextUtil.java | 2 +- .../manage/GlobalConfigThreadPoolManage.java | 62 --------- .../manage/GlobalThreadPoolManage.java | 70 ---------- kernel/dynamic/mode/config/pom.xml | 4 + .../mode/config/parser/YamlConfigParser.java | 16 ++- .../DynamicThreadPoolRefreshListener.java | 4 +- kernel/message/api/pom.xml | 19 +++ .../message/api}/AlarmControlDTO.java | 4 +- .../message/api/NotifyConfigBuilder.java | 4 +- .../message/api}/NotifyConfigDTO.java | 3 +- .../message/api}/NotifyPlatformEnum.java | 2 +- .../message/api}/NotifyTypeEnum.java | 2 +- .../message/api}/ThreadPoolNotifyDTO.java | 3 +- kernel/message/core/pom.xml | 50 +++++++ .../core}/constant/DingAlarmConstants.java | 2 +- .../core}/constant/LarkAlarmConstants.java | 2 +- .../core}/constant/WeChatAlarmConstants.java | 2 +- .../platform/DingSendMessageHandler.java | 31 ++--- .../platform/LarkSendMessageHandler.java | 37 +++--- .../platform/WeChatSendMessageHandler.java | 26 ++-- .../base/AbstractRobotSendMessageHandler.java | 12 +- .../base/RobotMessageActualContent.java | 2 +- .../platform/base/RobotMessageExecuteDTO.java | 4 +- .../core}/request/AlarmNotifyRequest.java | 6 +- .../request/ChangeParameterNotifyRequest.java | 4 +- .../request/RobotAlarmNotifyRequest.java | 2 +- .../RobotChangeParameterNotifyRequest.java | 2 +- .../request/ThreadPoolNotifyRequest.java | 2 +- .../WebChangeParameterNotifyRequest.java | 5 +- .../core}/request/base/BaseNotifyRequest.java | 2 +- .../core}/service/AlarmControlHandler.java | 4 +- .../DefaultThreadPoolConfigChangeHandler.java | 24 ++-- .../service/GlobalNotifyAlarmManage.java | 2 +- .../core}/service/SendMessageHandler.java | 35 ++++- .../ThreadPoolBaseSendMessageService.java | 31 ++--- .../core}/service/ThreadPoolNotifyAlarm.java | 2 +- .../service/ThreadPoolSendMessageService.java | 12 +- .../WebThreadPoolConfigChangeHandler.java | 26 ++-- .../robot/dynamic-thread-pool/ding-alarm.txt | 0 .../robot/dynamic-thread-pool/ding-config.txt | 0 .../lark-alarm-timeout-replace.json | 0 .../lark-alarm-trace-replace.json | 0 .../robot/dynamic-thread-pool/lark-alarm.json | 0 .../dynamic-thread-pool/lark-config.json | 0 .../dynamic-thread-pool/wechat-alarm.txt | 0 .../dynamic-thread-pool/wechat-config.txt | 0 .../service/AlarmControlHandlerTest.java | 5 +- kernel/message/mode/config/pom.xml | 12 ++ kernel/message/mode/pom.xml | 18 +++ kernel/message/mode/server/pom.xml | 12 ++ kernel/message/pom.xml | 7 + starters/threadpool/adapter/pom.xml | 2 +- .../threadpool/config-spring-boot-1x/pom.xml | 2 +- starters/threadpool/config/pom.xml | 2 +- .../DynamicThreadPoolAutoConfiguration.java | 34 +++-- .../monitor/ThreadPoolMonitorExecutor.java | 29 ++-- .../notify/ConfigModeNotifyConfigBuilder.java | 6 +- ...bstractConfigThreadPoolDynamicRefresh.java | 4 +- .../refresher/ZookeeperRefresherHandler.java | 4 +- .../event/AbstractRefreshListener.java | 2 +- .../AdapterExecutorsRefreshListener.java | 4 +- .../DynamicThreadPoolRefreshListener.java | 42 +++--- .../event/PlatformsRefreshListener.java | 32 +++-- ... ThreadPoolConfigDynamicRefreshEvent.java} | 4 +- ...adPoolConfigDynamicRefreshEventOrder.java} | 2 +- .../event/WebExecutorRefreshListener.java | 9 +- .../DynamicThreadPoolConfigService.java | 17 +-- .../DynamicThreadPoolPostProcessor.java | 45 +++---- starters/threadpool/monitor/pom.xml | 2 +- starters/threadpool/pom.xml | 2 +- starters/threadpool/server/pom.xml | 9 +- .../DynamicThreadPoolAutoConfiguration.java | 28 ++-- .../core/BaseThreadDetailStateHandler.java | 8 +- .../springboot/starter/core/CacheData.java | 3 +- .../core/ServerThreadPoolDynamicRefresh.java | 10 +- .../monitor/ReportingEventExecutor.java | 12 +- .../monitor/collect/RunTimeInfoCollector.java | 4 +- .../notify/ServerModeNotifyConfigBuilder.java | 14 +- ...AdaptedThreadPoolDestroyPostProcessor.java | 18 +-- .../DynamicThreadPoolConfigService.java | 24 ++-- .../DynamicThreadPoolPostProcessor.java | 60 ++++----- threadpool/core/pom.xml | 5 + .../executor/DynamicThreadPoolExecutor.java | 4 + .../executor/DynamicThreadPoolWrapper.java | 3 + .../manage/GlobalThreadPoolManage.java | 101 +------------- .../impl/TaskRejectNotifyAlarmPlugin.java | 2 +- .../impl/TaskTimeoutNotifyAlarmPlugin.java | 6 +- .../proxy/RejectedProxyInvocationHandler.java | 2 +- .../state/AbstractThreadPoolRuntime.java | 10 +- .../state/ThreadPoolRunStateHandler.java | 8 +- .../Hippo4jDynamicThreadPoolInitializer.java | 47 +++++++ .../cn/hippo4j/core/toolkit/FileUtil.java | 9 +- .../cn/hippo4j/core/toolkit/IdentifyUtil.java | 18 +-- .../impl/TaskRejectNotifyAlarmPluginTest.java | 11 +- .../TaskTimeoutNotifyAlarmPluginTest.java | 11 +- .../RejectedProxyInvocationHandlerTest.java | 5 +- .../state/AbstractThreadPoolRuntimeTest.java | 22 +--- .../state/ThreadPoolRunStateHandlerTest.java | 19 ++- threadpool/message/pom.xml | 22 +--- .../message/config/MessageConfiguration.java | 26 ++-- ...PoolBaseSendMessageServiceInitializer.java | 45 +++++++ .../AbstractDynamicThreadPoolMonitor.java | 4 +- 127 files changed, 903 insertions(+), 825 deletions(-) rename infra/common/src/main/java/cn/hippo4j/common/executor/{ThreadPoolRegistry.java => ThreadPoolExecutorRegistry.java} (67%) create mode 100644 infra/common/src/main/java/cn/hippo4j/common/propertie/EnvironmentProperties.java create mode 100644 infra/common/src/main/java/cn/hippo4j/common/propertie/IdentifyProperties.java rename {threadpool/core/src/main/java/cn/hippo4j/core => kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm}/api/ThreadPoolCheckAlarm.java (94%) rename {threadpool/message/src/main/java/cn/hippo4j/message/service => kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler}/DefaultThreadPoolCheckAlarmHandler.java (64%) rename {threadpool/core/src/main/java/cn/hippo4j/core => kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm}/toolkit/ExecutorTraceContextUtil.java (97%) delete mode 100644 kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java delete mode 100644 kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java create mode 100644 kernel/message/api/pom.xml rename {threadpool/message/src/main/java/cn/hippo4j/message/dto => kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api}/AlarmControlDTO.java (93%) rename {threadpool/message/src/main/java/cn/hippo4j => kernel/message/api/src/main/java/cn/hippo4j/threadpool}/message/api/NotifyConfigBuilder.java (92%) rename {threadpool/message/src/main/java/cn/hippo4j/message/dto => kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api}/NotifyConfigDTO.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message/enums => kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api}/NotifyPlatformEnum.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message/enums => kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api}/NotifyTypeEnum.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message/dto => kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api}/ThreadPoolNotifyDTO.java (91%) create mode 100644 kernel/message/core/pom.xml rename {threadpool/message/src/main/java/cn/hippo4j/message/platform => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/constant/DingAlarmConstants.java (97%) rename {threadpool/message/src/main/java/cn/hippo4j/message/platform => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/constant/LarkAlarmConstants.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message/platform => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/constant/WeChatAlarmConstants.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/DingSendMessageHandler.java (79%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/LarkSendMessageHandler.java (86%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/WeChatSendMessageHandler.java (76%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/base/AbstractRobotSendMessageHandler.java (94%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/base/RobotMessageActualContent.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/platform/base/RobotMessageExecuteDTO.java (91%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/AlarmNotifyRequest.java (93%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/ChangeParameterNotifyRequest.java (93%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/RobotAlarmNotifyRequest.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/RobotChangeParameterNotifyRequest.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/ThreadPoolNotifyRequest.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/WebChangeParameterNotifyRequest.java (91%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/request/base/BaseNotifyRequest.java (95%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/AlarmControlHandler.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/DefaultThreadPoolConfigChangeHandler.java (73%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/GlobalNotifyAlarmManage.java (96%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/SendMessageHandler.java (61%) rename threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolBaseSendMessageService.java (84%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/ThreadPoolNotifyAlarm.java (96%) rename threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jSendMessageService.java => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolSendMessageService.java (80%) rename {threadpool/message/src/main/java/cn/hippo4j/message => kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core}/service/WebThreadPoolConfigChangeHandler.java (72%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/ding-alarm.txt (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/ding-config.txt (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/lark-config.json (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/wechat-alarm.txt (100%) rename {threadpool/message => kernel/message/core}/src/main/resources/message/robot/dynamic-thread-pool/wechat-config.txt (100%) rename {threadpool/message => kernel/message/core}/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java (89%) create mode 100644 kernel/message/mode/config/pom.xml create mode 100644 kernel/message/mode/pom.xml create mode 100644 kernel/message/mode/server/pom.xml rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/{Hippo4jConfigDynamicRefreshEvent.java => ThreadPoolConfigDynamicRefreshEvent.java} (86%) rename starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/{Hippo4jConfigDynamicRefreshEventOrder.java => ThreadPoolConfigDynamicRefreshEventOrder.java} (95%) create mode 100644 threadpool/core/src/main/java/cn/hippo4j/core/extension/initialize/Hippo4jDynamicThreadPoolInitializer.java create mode 100644 threadpool/message/src/main/java/cn/hippo4j/message/config/ThreadPoolBaseSendMessageServiceInitializer.java diff --git a/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java index 855972ea..6ba5045e 100644 --- a/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java +++ b/agent/hippo4j-agent-plugin/adapter-plugins/dubbo-plugin/src/main/java/cn/hippo4j/agent/adapter/dubbo/DubboThreadPoolAdapter.java @@ -17,7 +17,7 @@ package cn.hippo4j.agent.adapter.dubbo; -import cn.hippo4j.common.executor.ThreadPoolRegistry; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.model.executor.ExecutorProperties; @@ -78,7 +78,7 @@ public class DubboThreadPoolAdapter { .queueCapacity(executor.getQueue().remainingCapacity()) .rejectedHandler(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()) .build(); - ThreadPoolRegistry.putHolder(executorName, executor, executorProperties); + ThreadPoolExecutorRegistry.putHolder(executorName, executor, executorProperties); } public static String mark() { diff --git a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java index b2d08574..8439d567 100644 --- a/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java +++ b/agent/hippo4j-agent-plugin/spring-plugins/spring-plugin-common/src/main/java/cn/hippo4j/agent/plugin/spring/common/support/SpringThreadPoolRegisterSupport.java @@ -18,7 +18,7 @@ package cn.hippo4j.agent.plugin.spring.common.support; import cn.hippo4j.agent.core.util.ReflectUtil; -import cn.hippo4j.common.executor.ThreadPoolRegistry; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.model.executor.ExecutorProperties; @@ -41,7 +41,7 @@ public class SpringThreadPoolRegisterSupport { private static final Logger LOGGER = LoggerFactory.getLogger(SpringThreadPoolRegisterSupport.class); public static void registerThreadPoolInstances(ApplicationContext context) { - Map> referencedClassMap = ThreadPoolRegistry.REFERENCED_CLASS_MAP; + Map> referencedClassMap = ThreadPoolExecutorRegistry.REFERENCED_CLASS_MAP; for (Map.Entry> entry : referencedClassMap.entrySet()) { ThreadPoolExecutor enhancedInstance = entry.getKey(); Class declaredClass = entry.getValue(); @@ -93,6 +93,6 @@ public class SpringThreadPoolRegisterSupport { .queueCapacity(executor.getQueue().remainingCapacity()) .rejectedHandler(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(executor.getRejectedExecutionHandler().getClass().getSimpleName()).getName()) .build(); - ThreadPoolRegistry.putHolder(threadPoolId, executor, executorProperties); + ThreadPoolExecutorRegistry.putHolder(threadPoolId, executor, executorProperties); } } diff --git a/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java index 343d05d2..fb4194c8 100644 --- a/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java +++ b/agent/hippo4j-agent-plugin/threadpool-plugin/src/main/java/cn/hippo4j/agent/plugin/thread/pool/interceptor/ThreadPoolExecutorConstructorMethodInterceptor.java @@ -22,7 +22,7 @@ import cn.hippo4j.agent.core.logging.api.ILog; import cn.hippo4j.agent.core.logging.api.LogManager; import cn.hippo4j.agent.core.plugin.interceptor.enhance.EnhancedInstance; import cn.hippo4j.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import cn.hippo4j.common.executor.ThreadPoolRegistry; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.agent.core.util.CollectionUtil; import cn.hippo4j.agent.core.util.StringUtil; import java.util.ArrayList; @@ -52,7 +52,7 @@ public class ThreadPoolExecutorConstructorMethodInterceptor implements InstanceC StackTraceElement declaredClassStackTraceElement = stackTraceElements.get(0); String declaredClassName = declaredClassStackTraceElement.getClassName(); Class declaredClass = Thread.currentThread().getContextClassLoader().loadClass(declaredClassName); - ThreadPoolRegistry.REFERENCED_CLASS_MAP.put((ThreadPoolExecutor) objInst, declaredClass); + ThreadPoolExecutorRegistry.REFERENCED_CLASS_MAP.put((ThreadPoolExecutor) objInst, declaredClass); } private List getStackTraceElements() { diff --git a/examples/threadpool-example/config/config-nacos/src/main/resources/bootstrap.properties b/examples/threadpool-example/config/config-nacos/src/main/resources/bootstrap.properties index ab1e8b01..ae7b0afb 100644 --- a/examples/threadpool-example/config/config-nacos/src/main/resources/bootstrap.properties +++ b/examples/threadpool-example/config/config-nacos/src/main/resources/bootstrap.properties @@ -25,11 +25,11 @@ spring.dynamic.thread-pool.monitor.initial-delay=10000 spring.dynamic.thread-pool.monitor.collect-interval=5000 spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT -spring.dynamic.thread-pool.notify-platforms[0].token=ac0426a5-c712-474c-9bff-72b8b8f5caff -spring.dynamic.thread-pool.notify-platforms[1].platform=DING -spring.dynamic.thread-pool.notify-platforms[1].token=56417ebba6a27ca352f0de77a2ae9da66d01f39610b5ee8a6033c60ef9071c55 -spring.dynamic.thread-pool.notify-platforms[2].platform=LARK -spring.dynamic.thread-pool.notify-platforms[2].token=2cbf2808-3839-4c26-a04d-fd201dd51f9e +spring.dynamic.thread-pool.notify-platforms[0].token=ec3be378-6c99-45d2-a147-b400c7e94a08 +# spring.dynamic.thread-pool.notify-platforms[1].platform=DING +# spring.dynamic.thread-pool.notify-platforms[1].token=56417ebba6a27ca352f0de77a2ae9da66d01f39610b5ee8a6033c60ef9071c55 +# spring.dynamic.thread-pool.notify-platforms[2].platform=LARK +# spring.dynamic.thread-pool.notify-platforms[2].token=2cbf2808-3839-4c26-a04d-fd201dd51f9e spring.dynamic.thread-pool.nacos.data-id=hippo4j-nacos.yaml spring.dynamic.thread-pool.nacos.group=DEFAULT_GROUP diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/TaskTraceBuilderHandler.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/TaskTraceBuilderHandler.java index 5098a8f2..6e95a969 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/TaskTraceBuilderHandler.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/handler/TaskTraceBuilderHandler.java @@ -18,7 +18,7 @@ package cn.hippo4j.example.core.handler; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.toolkit.ExecutorTraceContextUtil; +import cn.hippo4j.threadpool.alarm.toolkit.ExecutorTraceContextUtil; import org.slf4j.MDC; import org.springframework.core.task.TaskDecorator; diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java index 7d57ee65..b26b6b01 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/AlarmSendMessageTest.java @@ -17,9 +17,9 @@ package cn.hippo4j.example.core.inittest; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.example.core.constant.GlobalTestConstant; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -47,8 +47,8 @@ public class AlarmSendMessageTest { public void alarmSendMessageTest() { ScheduledExecutorService scheduledThreadPool = Executors.newSingleThreadScheduledExecutor(); scheduledThreadPool.scheduleWithFixedDelay(() -> { - DynamicThreadPoolWrapper poolWrapper = GlobalThreadPoolManage.getExecutorService(GlobalTestConstant.MESSAGE_PRODUCE); - ThreadPoolExecutor poolExecutor = poolWrapper.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(GlobalTestConstant.MESSAGE_PRODUCE); + ThreadPoolExecutor poolExecutor = executorHolder.getExecutor(); try { poolExecutor.execute(() -> { try { diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java index 79a815e0..23892224 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/RegisterDynamicThreadPoolTest.java @@ -24,7 +24,7 @@ import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.model.register.notify.DynamicThreadPoolRegisterCoreNotifyParameter; import cn.hippo4j.common.model.register.notify.DynamicThreadPoolRegisterServerNotifyParameter; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.message.enums.NotifyPlatformEnum; +import cn.hippo4j.threadpool.message.api.NotifyPlatformEnum; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ThreadPoolExecutor; diff --git a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java index dedc14bc..e9da08f1 100644 --- a/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java +++ b/examples/threadpool-example/example-core/src/main/java/cn/hippo4j/example/core/inittest/TaskDecoratorTest.java @@ -17,9 +17,9 @@ package cn.hippo4j.example.core.inittest; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.example.core.constant.GlobalTestConstant; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.core.task.TaskDecorator; @@ -63,8 +63,8 @@ public class TaskDecoratorTest { MDC.put(PLACEHOLDER, "View the official website: https://www.hippo4j.cn"); try { Thread.sleep(SLEEP_TIME); - DynamicThreadPoolWrapper poolWrapper = GlobalThreadPoolManage.getExecutorService(GlobalTestConstant.MESSAGE_PRODUCE); - ThreadPoolExecutor threadPoolExecutor = poolWrapper.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(GlobalTestConstant.MESSAGE_PRODUCE); + ThreadPoolExecutor threadPoolExecutor = executorHolder.getExecutor(); threadPoolExecutor.execute(() -> log.info("Pass context via taskDecorator MDC: {}", MDC.get(PLACEHOLDER))); } catch (InterruptedException e) { throw new RuntimeException(e); diff --git a/examples/threadpool-example/server/adapter-kafka/pom.xml b/examples/threadpool-example/server/adapter-kafka/pom.xml index 7be2e924..b37b9396 100644 --- a/examples/threadpool-example/server/adapter-kafka/pom.xml +++ b/examples/threadpool-example/server/adapter-kafka/pom.xml @@ -33,7 +33,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${project.version} diff --git a/examples/threadpool-example/server/adapter-rabbitmq/pom.xml b/examples/threadpool-example/server/adapter-rabbitmq/pom.xml index 58d075fe..fd0fd5ca 100644 --- a/examples/threadpool-example/server/adapter-rabbitmq/pom.xml +++ b/examples/threadpool-example/server/adapter-rabbitmq/pom.xml @@ -33,7 +33,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${project.version} diff --git a/examples/threadpool-example/server/adapter-rocketmq/pom.xml b/examples/threadpool-example/server/adapter-rocketmq/pom.xml index 756186c9..04e533d3 100644 --- a/examples/threadpool-example/server/adapter-rocketmq/pom.xml +++ b/examples/threadpool-example/server/adapter-rocketmq/pom.xml @@ -33,7 +33,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${project.version} diff --git a/examples/threadpool-example/server/adapter-stream-rabbitmq/pom.xml b/examples/threadpool-example/server/adapter-stream-rabbitmq/pom.xml index 3f22f7be..8950dbf8 100644 --- a/examples/threadpool-example/server/adapter-stream-rabbitmq/pom.xml +++ b/examples/threadpool-example/server/adapter-stream-rabbitmq/pom.xml @@ -33,7 +33,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${project.version} diff --git a/examples/threadpool-example/server/adapter-stream-rocketmq/pom.xml b/examples/threadpool-example/server/adapter-stream-rocketmq/pom.xml index df5b1b39..279beee3 100644 --- a/examples/threadpool-example/server/adapter-stream-rocketmq/pom.xml +++ b/examples/threadpool-example/server/adapter-stream-rocketmq/pom.xml @@ -37,7 +37,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${project.version} diff --git a/examples/threadpool-example/server/server/pom.xml b/examples/threadpool-example/server/server/pom.xml index a3c42c3e..f1972f2b 100644 --- a/examples/threadpool-example/server/server/pom.xml +++ b/examples/threadpool-example/server/server/pom.xml @@ -22,7 +22,7 @@ cn.hippo4j - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter ${revision} diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java index a23eff55..0569e683 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorHolder.java @@ -17,6 +17,7 @@ package cn.hippo4j.common.executor; +import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.model.executor.ExecutorProperties; import lombok.Data; import lombok.NoArgsConstructor; @@ -35,6 +36,12 @@ public class ThreadPoolExecutorHolder { private ExecutorProperties executorProperties; + /** + * The Server mode is used to compare whether the parameters have changed, + * and consider refactoring later + */ + private ThreadPoolParameterInfo parameterInfo; + public ThreadPoolExecutorHolder(String threadPoolId, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { this.threadPoolId = threadPoolId; this.executor = executor; diff --git a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorRegistry.java similarity index 67% rename from infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java rename to infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorRegistry.java index bff59cf0..f785c3ce 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolRegistry.java +++ b/infra/common/src/main/java/cn/hippo4j/common/executor/ThreadPoolExecutorRegistry.java @@ -21,13 +21,15 @@ import cn.hippo4j.common.model.executor.ExecutorProperties; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadPoolExecutor; @NoArgsConstructor(access = AccessLevel.PRIVATE) -public class ThreadPoolRegistry { +public class ThreadPoolExecutorRegistry { private static final Map HOLDER_MAP = new ConcurrentHashMap<>(); @@ -38,8 +40,12 @@ public class ThreadPoolRegistry { } public static void putHolder(String executorName, ThreadPoolExecutor executor, ExecutorProperties executorProperties) { - ThreadPoolExecutorHolder holder = new ThreadPoolExecutorHolder(executorName, executor, executorProperties); - HOLDER_MAP.put(executorName, holder); + ThreadPoolExecutorHolder executorHolder = new ThreadPoolExecutorHolder(executorName, executor, executorProperties); + HOLDER_MAP.put(executorHolder.getThreadPoolId(), executorHolder); + } + + public static void putHolder(ThreadPoolExecutorHolder executorHolder) { + HOLDER_MAP.put(executorHolder.getThreadPoolId(), executorHolder); } public static ThreadPoolExecutorHolder getHolder(String executorName) { @@ -49,4 +55,19 @@ public class ThreadPoolRegistry { public static Map> getReferencedClassMap() { return REFERENCED_CLASS_MAP; } + + public static List listThreadPoolExecutorId() { + return new ArrayList<>(HOLDER_MAP.keySet()); + } + + /** + * Get the number of dynamic thread pools. + *

The data may be inaccurate when the project is initially + * launched because registration is done asynchronously. + * + * @return thread-pool size + */ + public static Integer getThreadPoolExecutorSize() { + return listThreadPoolExecutorId().size(); + } } diff --git a/infra/common/src/main/java/cn/hippo4j/common/propertie/EnvironmentProperties.java b/infra/common/src/main/java/cn/hippo4j/common/propertie/EnvironmentProperties.java new file mode 100644 index 00000000..c874df49 --- /dev/null +++ b/infra/common/src/main/java/cn/hippo4j/common/propertie/EnvironmentProperties.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.propertie; + +/** + * Configurable environment properties. + */ +public final class EnvironmentProperties { + + /** + * spring.profiles.active + */ + public static String active = "UNKNOWN"; + + /** + * spring.dynamic.thread-pool.item-id + */ + public static String itemId; + + /** + * spring.application.name + */ + public static String applicationName; + + /** + * spring.dynamic.thread-pool.check-state-interval + */ + public static Long checkStateInterval; +} diff --git a/infra/common/src/main/java/cn/hippo4j/common/propertie/IdentifyProperties.java b/infra/common/src/main/java/cn/hippo4j/common/propertie/IdentifyProperties.java new file mode 100644 index 00000000..0382e6b7 --- /dev/null +++ b/infra/common/src/main/java/cn/hippo4j/common/propertie/IdentifyProperties.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.common.propertie; + +import lombok.Setter; + +/** + * Identify properties. + */ +public class IdentifyProperties { + + /** + * The unique identifier of the client, initialized when the project starts + */ + @Setter + public static String IDENTIFY; +} diff --git a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java index 6a5d1fbc..fe8f0d3c 100644 --- a/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java +++ b/infra/common/src/main/java/cn/hippo4j/common/toolkit/MessageConvert.java @@ -24,22 +24,18 @@ import java.util.Map; import cn.hippo4j.common.monitor.AbstractMessage; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageWrapper; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import lombok.SneakyThrows; /** * Message convert. */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class MessageConvert { - private MessageConvert(){ - - } - /** * {@link Message} to {@link MessageWrapper}. - * - * @param message - * @return */ public static MessageWrapper convert(Message message) { MessageWrapper wrapper = new MessageWrapper(); @@ -58,9 +54,6 @@ public class MessageConvert { /** * {@link MessageWrapper} to {@link Message}. - * - * @param messageWrapper - * @return */ @SneakyThrows public static Message convert(MessageWrapper messageWrapper) { diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java index 0f48c046..c9091285 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/IoUtilTest.java @@ -49,6 +49,7 @@ import java.util.zip.GZIPOutputStream; * test for {@link IoUtil} */ public class IoUtilTest { + private Path tempDir; private File sourceFile; diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java index 907a459c..3acec9fa 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/JacksonHandlerTest.java @@ -87,8 +87,7 @@ public class JacksonHandlerTest { Assertions.assertEquals( EXPECTED_ENTITY, JACKSON_HANDLER.parseObject(EXPECTED_ENTITY_JSON, new TypeReference() { - }) - ); + })); // illegal json Assertions.assertThrows(MismatchedInputException.class, () -> JACKSON_HANDLER.parseObject(" ", Entity.class)); diff --git a/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java index 88677d9f..52470aad 100644 --- a/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java +++ b/infra/common/src/test/java/cn/hippo4j/common/toolkit/MessageConvertTest.java @@ -93,7 +93,7 @@ public class MessageConvertTest { @Test public void testMessageWrapperConvertException() { - Assertions.assertThrows(Exception.class, ()->{ + Assertions.assertThrows(Exception.class, () -> { Map data1 = new HashMap<>(); data1.put("key1", "value1"); data1.put("key2", 123); diff --git a/kernel/alarm/pom.xml b/kernel/alarm/pom.xml index 0bb19b1c..ea871060 100644 --- a/kernel/alarm/pom.xml +++ b/kernel/alarm/pom.xml @@ -10,4 +10,17 @@ hippo4j-threadpool-kernel-alarm + + + + org.projectlombok + lombok + + + + cn.hippo4j + hippo4j-threadpool-message-core + ${project.version} + + \ No newline at end of file diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/api/ThreadPoolCheckAlarm.java similarity index 94% rename from threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java rename to kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/api/ThreadPoolCheckAlarm.java index 25e32097..e48c47d6 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/api/ThreadPoolCheckAlarm.java +++ b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/api/ThreadPoolCheckAlarm.java @@ -15,12 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.core.api; +package cn.hippo4j.threadpool.alarm.api; import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; import java.util.concurrent.ThreadPoolExecutor; @@ -30,7 +29,7 @@ import java.util.concurrent.ThreadPoolExecutor; *

Dynamic thread pool check and send logic wait for refactoring, * Try not to rely on this component for custom extensions, because it is undefined. */ -public interface ThreadPoolCheckAlarm extends CommandLineRunner { +public interface ThreadPoolCheckAlarm { /** * Get a none thread pool check alarm. @@ -42,6 +41,12 @@ public interface ThreadPoolCheckAlarm extends CommandLineRunner { return NoneThreadPoolCheckAlarm.INSTANCE; } + /** + * Execute scheduled tasks to scan the running status of the thread pool. + */ + default void scheduleExecute() { + } + /** * Check pool capacity alarm. * @@ -133,10 +138,5 @@ public interface ThreadPoolCheckAlarm extends CommandLineRunner { public void asyncSendExecuteTimeOutAlarm(String threadPoolId, long executeTime, long executeTimeOut, ThreadPoolExecutor threadPoolExecutor) { log.debug("Ignore async send execute time out alarm for ExecuteService '{}'", threadPoolId); } - - @Override - public void run(String... args) throws Exception { - // do nothing - } } } diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java similarity index 64% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java rename to kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java index d5098b4c..9bf93f81 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolCheckAlarmHandler.java +++ b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java @@ -15,22 +15,22 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.alarm.handler; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.toolkit.CalculateUtil; +import cn.hippo4j.common.toolkit.ReflectUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.core.executor.support.ThreadPoolBuilder; -import cn.hippo4j.core.toolkit.ExecutorTraceContextUtil; -import cn.hippo4j.core.toolkit.IdentifyUtil; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; +import cn.hippo4j.threadpool.alarm.toolkit.ExecutorTraceContextUtil; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.core.service.GlobalNotifyAlarmManage; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolNotifyAlarm; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolSendMessageService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import java.util.List; import java.util.Objects; @@ -40,8 +40,16 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +import static cn.hippo4j.common.propertie.EnvironmentProperties.active; +import static cn.hippo4j.common.propertie.EnvironmentProperties.applicationName; +import static cn.hippo4j.common.propertie.EnvironmentProperties.checkStateInterval; +import static cn.hippo4j.common.propertie.EnvironmentProperties.itemId; +import static cn.hippo4j.common.propertie.IdentifyProperties.IDENTIFY; /** * Default thread-pool check alarm handler. @@ -50,46 +58,42 @@ import java.util.concurrent.TimeUnit; @RequiredArgsConstructor public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolCheckAlarm { - private final Hippo4jSendMessageService hippo4jSendMessageService; - - @Value("${spring.profiles.active:UNKNOWN}") - private String active; - - @Value("${spring.dynamic.thread-pool.item-id:}") - private String itemId; - - @Value("${spring.application.name:UNKNOWN}") - private String applicationName; - - @Value("${spring.dynamic.thread-pool.check-state-interval:5}") - private Integer checkStateInterval; + private final ThreadPoolSendMessageService threadPoolSendMessageService; private final ScheduledExecutorService alarmNotifyExecutor = new ScheduledThreadPoolExecutor( 1, r -> new Thread(r, "client.alarm.notify")); - private final ExecutorService asyncAlarmNotifyExecutor = ThreadPoolBuilder.builder() - .poolThreadSize(2, 4) - .threadFactory("client.execute.timeout.alarm") - .allowCoreThreadTimeOut(true) - .keepAliveTime(60L, TimeUnit.SECONDS) - .workQueue(new LinkedBlockingQueue(4096)) - .rejected(new ThreadPoolExecutor.AbortPolicy()) - .build(); + private final ExecutorService asyncAlarmNotifyExecutor = new ThreadPoolExecutor( + 2, + 4, + 60L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<>(4096), + new ThreadFactory() { + + private final AtomicInteger count = new AtomicInteger(); + + @Override + public Thread newThread(Runnable r) { + return new Thread("client.execute.timeout.alarm_" + count.incrementAndGet()); + } + }, + new ThreadPoolExecutor.AbortPolicy()); @Override - public void run(String... args) throws Exception { + public void scheduleExecute() { alarmNotifyExecutor.scheduleWithFixedDelay(this, 0, checkStateInterval, TimeUnit.SECONDS); } @Override public void run() { - List listThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); + List listThreadPoolId = ThreadPoolExecutorRegistry.listThreadPoolExecutorId(); listThreadPoolId.forEach(threadPoolId -> { ThreadPoolNotifyAlarm threadPoolNotifyAlarm = GlobalNotifyAlarmManage.get(threadPoolId); if (threadPoolNotifyAlarm != null && threadPoolNotifyAlarm.getAlarm()) { - DynamicThreadPoolWrapper wrapper = GlobalThreadPoolManage.getExecutorService(threadPoolId); - ThreadPoolExecutor executor = wrapper.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + ThreadPoolExecutor executor = executorHolder.getExecutor(); checkPoolCapacityAlarm(threadPoolId, executor); checkPoolActivityAlarm(threadPoolId, executor); } @@ -116,7 +120,7 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC if (isSend) { AlarmNotifyRequest alarmNotifyRequest = buildAlarmNotifyRequest(threadPoolExecutor); alarmNotifyRequest.setThreadPoolId(threadPoolId); - hippo4jSendMessageService.sendAlarmMessage(NotifyTypeEnum.CAPACITY, alarmNotifyRequest); + threadPoolSendMessageService.sendAlarmMessage(NotifyTypeEnum.CAPACITY, alarmNotifyRequest); } } @@ -139,7 +143,7 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC if (isSend) { AlarmNotifyRequest alarmNotifyRequest = buildAlarmNotifyRequest(threadPoolExecutor); alarmNotifyRequest.setThreadPoolId(threadPoolId); - hippo4jSendMessageService.sendAlarmMessage(NotifyTypeEnum.ACTIVITY, alarmNotifyRequest); + threadPoolSendMessageService.sendAlarmMessage(NotifyTypeEnum.ACTIVITY, alarmNotifyRequest); } } @@ -155,11 +159,11 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC if (Objects.isNull(alarmConfig) || !alarmConfig.getAlarm()) { return; } - ThreadPoolExecutor threadPoolExecutor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor(); - if (threadPoolExecutor instanceof DynamicThreadPoolExecutor) { + ThreadPoolExecutor threadPoolExecutor = ThreadPoolExecutorRegistry.getHolder(threadPoolId).getExecutor(); + if (Objects.equals(threadPoolExecutor.getClass().getName(), "cn.hippo4j.core.executor.DynamicThreadPoolExecutor")) { AlarmNotifyRequest alarmNotifyRequest = buildAlarmNotifyRequest(threadPoolExecutor); alarmNotifyRequest.setThreadPoolId(threadPoolId); - hippo4jSendMessageService.sendAlarmMessage(NotifyTypeEnum.REJECT, alarmNotifyRequest); + threadPoolSendMessageService.sendAlarmMessage(NotifyTypeEnum.REJECT, alarmNotifyRequest); } }; asyncAlarmNotifyExecutor.execute(checkPoolRejectedAlarmTask); @@ -179,21 +183,19 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC if (Objects.isNull(alarmConfig) || !alarmConfig.getAlarm()) { return; } - if (threadPoolExecutor instanceof DynamicThreadPoolExecutor) { - try { - AlarmNotifyRequest alarmNotifyRequest = buildAlarmNotifyRequest(threadPoolExecutor); - alarmNotifyRequest.setThreadPoolId(threadPoolId); - alarmNotifyRequest.setExecuteTime(executeTime); - alarmNotifyRequest.setExecuteTimeOut(executeTimeOut); - String executeTimeoutTrace = ExecutorTraceContextUtil.getAndRemoveTimeoutTrace(); - if (StringUtil.isNotBlank(executeTimeoutTrace)) { - alarmNotifyRequest.setExecuteTimeoutTrace(executeTimeoutTrace); - } - Runnable task = () -> hippo4jSendMessageService.sendAlarmMessage(NotifyTypeEnum.TIMEOUT, alarmNotifyRequest); - asyncAlarmNotifyExecutor.execute(task); - } catch (Throwable ex) { - log.error("Send thread pool execution timeout alarm error.", ex); + try { + AlarmNotifyRequest alarmNotifyRequest = buildAlarmNotifyRequest(threadPoolExecutor); + alarmNotifyRequest.setThreadPoolId(threadPoolId); + alarmNotifyRequest.setExecuteTime(executeTime); + alarmNotifyRequest.setExecuteTimeOut(executeTimeOut); + String executeTimeoutTrace = ExecutorTraceContextUtil.getAndRemoveTimeoutTrace(); + if (StringUtil.isNotBlank(executeTimeoutTrace)) { + alarmNotifyRequest.setExecuteTimeoutTrace(executeTimeoutTrace); } + Runnable task = () -> threadPoolSendMessageService.sendAlarmMessage(NotifyTypeEnum.TIMEOUT, alarmNotifyRequest); + asyncAlarmNotifyExecutor.execute(task); + } catch (Throwable ex) { + log.error("Send thread pool execution timeout alarm error.", ex); } } @@ -206,13 +208,17 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC public AlarmNotifyRequest buildAlarmNotifyRequest(ThreadPoolExecutor threadPoolExecutor) { BlockingQueue blockingQueue = threadPoolExecutor.getQueue(); RejectedExecutionHandler rejectedExecutionHandler = threadPoolExecutor.getRejectedExecutionHandler(); - long rejectCount = threadPoolExecutor instanceof DynamicThreadPoolExecutor - ? ((DynamicThreadPoolExecutor) threadPoolExecutor).getRejectCountNum() - : -1L; + long rejectCount = -1L; + if (Objects.equals(threadPoolExecutor.getClass().getName(), "cn.hippo4j.core.executor.DynamicThreadPoolExecutor")) { + Object actualRejectCountNum = ReflectUtil.invoke(threadPoolExecutor, "getRejectCountNum"); + if (actualRejectCountNum != null) { + rejectCount = (long) actualRejectCountNum; + } + } return AlarmNotifyRequest.builder() .appName(StringUtil.isBlank(itemId) ? applicationName : itemId) .active(active.toUpperCase()) - .identify(IdentifyUtil.getIdentify()) + .identify(IDENTIFY) .corePoolSize(threadPoolExecutor.getCorePoolSize()) .maximumPoolSize(threadPoolExecutor.getMaximumPoolSize()) .poolSize(threadPoolExecutor.getPoolSize()) diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/toolkit/ExecutorTraceContextUtil.java similarity index 97% rename from threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java rename to kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/toolkit/ExecutorTraceContextUtil.java index b7da8497..e9cca2fb 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/ExecutorTraceContextUtil.java +++ b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/toolkit/ExecutorTraceContextUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.core.toolkit; +package cn.hippo4j.threadpool.alarm.toolkit; import org.slf4j.MDC; diff --git a/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java deleted file mode 100644 index 4911ac05..00000000 --- a/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalConfigThreadPoolManage.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.threadpool.dynamic.core.executor.manage; - -import cn.hippo4j.common.model.executor.ExecutorProperties; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Global core thread-pool manage. - * TODO - */ -public class GlobalConfigThreadPoolManage { - - private static final Map EXECUTOR_PROPERTIES = new ConcurrentHashMap<>(); - - /** - * Get properties. - * - * @param threadPoolId - * @return - */ - public static ExecutorProperties getProperties(String threadPoolId) { - return EXECUTOR_PROPERTIES.get(threadPoolId); - } - - /** - * Register. - * - * @param threadPoolId - * @param executorProperties - */ - public static void register(String threadPoolId, ExecutorProperties executorProperties) { - EXECUTOR_PROPERTIES.put(threadPoolId, executorProperties); - } - - /** - * Refresh. - * - * @param threadPoolId - * @param executorProperties - */ - public static void refresh(String threadPoolId, ExecutorProperties executorProperties) { - EXECUTOR_PROPERTIES.put(threadPoolId, executorProperties); - } -} diff --git a/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java b/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java deleted file mode 100644 index de4cc35e..00000000 --- a/kernel/dynamic/core/src/main/java/cn/hippo4j/threadpool/dynamic/core/executor/manage/GlobalThreadPoolManage.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cn.hippo4j.threadpool.dynamic.core.executor.manage; - -import cn.hippo4j.common.model.ThreadPoolParameter; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * Global thread-pool manage. - */ -public class GlobalThreadPoolManage { - - /** - * Dynamic thread pool parameter container. - */ - private static final Map POOL_PARAMETER = new ConcurrentHashMap(); - - /** - * Dynamic thread pool wrapper. - */ - private static final Map EXECUTOR_MAP = new ConcurrentHashMap(); - - /** - * Get the dynamic thread pool class. - * - * @param threadPoolId thread-pool id - * @return dynamic thread-pool - */ - public static ThreadPoolExecutor getExecutorService(String threadPoolId) { - return EXECUTOR_MAP.get(threadPoolId); - } - - /** - * Get dynamic thread pool parameters. - * - * @param threadPoolId thread-pool id - * @return thread-pool parameter - */ - public static ThreadPoolParameter getPoolParameter(String threadPoolId) { - return POOL_PARAMETER.get(threadPoolId); - } - - /** - * Register dynamic thread pool parameters. - * - * @param threadPoolId thread-pool id - * @param threadPoolParameter thread-pool parameter - */ - public static void registerPoolParameter(String threadPoolId, ThreadPoolParameter threadPoolParameter) { - POOL_PARAMETER.put(threadPoolId, threadPoolParameter); - } -} diff --git a/kernel/dynamic/mode/config/pom.xml b/kernel/dynamic/mode/config/pom.xml index ed934787..c6e157a3 100644 --- a/kernel/dynamic/mode/config/pom.xml +++ b/kernel/dynamic/mode/config/pom.xml @@ -22,5 +22,9 @@ hippo4j-threadpool-dynamic-core ${project.version} + + org.springframework + spring-beans + \ No newline at end of file diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java index 1f0c0d3f..b929f309 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/parser/YamlConfigParser.java @@ -18,7 +18,11 @@ package cn.hippo4j.threadpool.dynamic.mode.config.parser; import cn.hippo4j.common.toolkit.CollectionUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ByteArrayResource; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,12 +33,12 @@ public class YamlConfigParser extends AbstractConfigParser { @Override public Map doParse(String content) { - // TODO - /* - * if (StringUtils.isEmpty(content)) { return new HashMap<>(1); } YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); - * yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes())); return yamlPropertiesFactoryBean.getObject(); - */ - return null; + if (StringUtils.isEmpty(content)) { + return new HashMap<>(1); + } + YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes())); + return yamlPropertiesFactoryBean.getObject(); } @Override diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java index 91df114f..7a49151d 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/refresher/event/DynamicThreadPoolRefreshListener.java @@ -18,7 +18,7 @@ package cn.hippo4j.threadpool.dynamic.mode.config.refresher.event; import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; -import cn.hippo4j.common.executor.ThreadPoolRegistry; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; @@ -55,7 +55,7 @@ public class DynamicThreadPoolRefreshListener implements Observer + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-message + ${revision} + + + hippo4j-threadpool-message-api + + + + org.projectlombok + lombok + + + diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/dto/AlarmControlDTO.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/AlarmControlDTO.java similarity index 93% rename from threadpool/message/src/main/java/cn/hippo4j/message/dto/AlarmControlDTO.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/AlarmControlDTO.java index 73cb7314..6e4338d4 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/dto/AlarmControlDTO.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/AlarmControlDTO.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.message.dto; +package cn.hippo4j.threadpool.message.api; -import cn.hippo4j.message.enums.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/api/NotifyConfigBuilder.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigBuilder.java similarity index 92% rename from threadpool/message/src/main/java/cn/hippo4j/message/api/NotifyConfigBuilder.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigBuilder.java index 372c5d24..37943802 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/api/NotifyConfigBuilder.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigBuilder.java @@ -15,9 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.api; - -import cn.hippo4j.message.dto.NotifyConfigDTO; +package cn.hippo4j.threadpool.message.api; import java.util.List; import java.util.Map; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/dto/NotifyConfigDTO.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigDTO.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/dto/NotifyConfigDTO.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigDTO.java index 6b4370c2..b230769a 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/dto/NotifyConfigDTO.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyConfigDTO.java @@ -15,9 +15,8 @@ * limitations under the License. */ -package cn.hippo4j.message.dto; +package cn.hippo4j.threadpool.message.api; -import cn.hippo4j.message.enums.NotifyTypeEnum; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyPlatformEnum.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyPlatformEnum.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyPlatformEnum.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyPlatformEnum.java index 5ffbad3b..7ad1a6b5 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyPlatformEnum.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyPlatformEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.enums; +package cn.hippo4j.threadpool.message.api; /** * Notify platform enum. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyTypeEnum.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyTypeEnum.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyTypeEnum.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyTypeEnum.java index cc9bc102..84b120b6 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/enums/NotifyTypeEnum.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/NotifyTypeEnum.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.enums; +package cn.hippo4j.threadpool.message.api; /** * Notify type enum. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/dto/ThreadPoolNotifyDTO.java b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/ThreadPoolNotifyDTO.java similarity index 91% rename from threadpool/message/src/main/java/cn/hippo4j/message/dto/ThreadPoolNotifyDTO.java rename to kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/ThreadPoolNotifyDTO.java index c0519b0f..456e3564 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/dto/ThreadPoolNotifyDTO.java +++ b/kernel/message/api/src/main/java/cn/hippo4j/threadpool/message/api/ThreadPoolNotifyDTO.java @@ -15,8 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.message.dto; +package cn.hippo4j.threadpool.message.api; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; import lombok.Data; import java.util.List; diff --git a/kernel/message/core/pom.xml b/kernel/message/core/pom.xml new file mode 100644 index 00000000..a93d702e --- /dev/null +++ b/kernel/message/core/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-message + ${revision} + + + hippo4j-threadpool-message-core + + + + cn.hippo4j + hippo4j-threadpool-message-api + ${project.version} + + + commons-codec + commons-codec + + + cn.hippo4j + hippo4j-threadpool-infra-common + ${project.version} + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework + spring-core + + + + + + + src/main/resources + + **/*.txt + **/*.json + + + + + diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/DingAlarmConstants.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/DingAlarmConstants.java similarity index 97% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/DingAlarmConstants.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/DingAlarmConstants.java index f4bb2285..6a5ce14f 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/DingAlarmConstants.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/DingAlarmConstants.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.constant; +package cn.hippo4j.threadpool.message.core.constant; /** * Ding alarm constants. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/LarkAlarmConstants.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/LarkAlarmConstants.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/LarkAlarmConstants.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/LarkAlarmConstants.java index a8e9c4a5..5396e0a1 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/LarkAlarmConstants.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/LarkAlarmConstants.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.constant; +package cn.hippo4j.threadpool.message.core.constant; /** * Lark alarm constants. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/WeChatAlarmConstants.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/WeChatAlarmConstants.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/WeChatAlarmConstants.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/WeChatAlarmConstants.java index 8b6001fc..a6f6c53c 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/constant/WeChatAlarmConstants.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/constant/WeChatAlarmConstants.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.constant; +package cn.hippo4j.threadpool.message.core.constant; /** * We chat alarm constants. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/DingSendMessageHandler.java similarity index 79% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/DingSendMessageHandler.java index e915f622..86c8072e 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/DingSendMessageHandler.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.platform; +package cn.hippo4j.threadpool.message.core.platform; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.CollectionUtil; @@ -23,13 +23,12 @@ import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.core.toolkit.FileUtil; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.enums.NotifyPlatformEnum; -import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; -import cn.hippo4j.message.platform.base.RobotMessageActualContent; -import cn.hippo4j.message.platform.base.RobotMessageExecuteDTO; -import cn.hippo4j.message.platform.constant.DingAlarmConstants; +import cn.hippo4j.threadpool.message.core.platform.base.AbstractRobotSendMessageHandler; +import cn.hippo4j.threadpool.message.core.platform.base.RobotMessageActualContent; +import cn.hippo4j.threadpool.message.core.platform.base.RobotMessageExecuteDTO; +import cn.hippo4j.threadpool.message.core.constant.DingAlarmConstants; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.NotifyPlatformEnum; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -42,13 +41,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Objects; -import static cn.hippo4j.message.platform.constant.DingAlarmConstants.DING_ALARM_TIMEOUT_REPLACE_TXT; -import static cn.hippo4j.message.platform.constant.DingAlarmConstants.DING_ALARM_TIMEOUT_TRACE_REPLACE_TXT; -import static cn.hippo4j.message.platform.constant.DingAlarmConstants.DING_ALARM_TITLE; -import static cn.hippo4j.message.platform.constant.DingAlarmConstants.DING_NOTICE_TITLE; - /** - * doc:自定义机器人接入 * Send ding notification message. */ @Slf4j @@ -66,10 +59,10 @@ public class DingSendMessageHandler extends AbstractRobotSendMessageHandler { RobotMessageActualContent robotMessageActualContent = RobotMessageActualContent.builder() .receiveSeparator(", @") .changeSeparator(" -> ") - .replaceTxt(DING_ALARM_TIMEOUT_REPLACE_TXT) - .traceReplaceTxt(DING_ALARM_TIMEOUT_TRACE_REPLACE_TXT) - .alarmMessageContent(Singleton.get(dingAlarmTxtKey, () -> FileUtil.readUtf8String(dingAlarmTxtKey))) - .configMessageContent(Singleton.get(dingConfigTxtKey, () -> FileUtil.readUtf8String(dingConfigTxtKey))) + .replaceTxt(DingAlarmConstants.DING_ALARM_TIMEOUT_REPLACE_TXT) + .traceReplaceTxt(DingAlarmConstants.DING_ALARM_TIMEOUT_TRACE_REPLACE_TXT) + .alarmMessageContent(Singleton.get(dingAlarmTxtKey, () -> readUtf8String(dingAlarmTxtKey))) + .configMessageContent(Singleton.get(dingConfigTxtKey, () -> readUtf8String(dingConfigTxtKey))) .build(); return robotMessageActualContent; } @@ -92,7 +85,7 @@ public class DingSendMessageHandler extends AbstractRobotSendMessageHandler { log.error("Failed to sign the message sent by nailing.", ex); } } - String title = Objects.equals(notifyConfig.getType(), "CONFIG") ? DING_NOTICE_TITLE : DING_ALARM_TITLE; + String title = Objects.equals(notifyConfig.getType(), "CONFIG") ? DingAlarmConstants.DING_NOTICE_TITLE : DingAlarmConstants.DING_ALARM_TITLE; String text = robotMessageExecuteDTO.getText(); ArrayList atMobiles = CollectionUtil.newArrayList(notifyConfig.getReceives().split(",")); HashMap markdown = new HashMap<>(); diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/LarkSendMessageHandler.java similarity index 86% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/LarkSendMessageHandler.java index 1a16f3be..4e43da9f 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/LarkSendMessageHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/LarkSendMessageHandler.java @@ -15,20 +15,20 @@ * limitations under the License. */ -package cn.hippo4j.message.platform; +package cn.hippo4j.threadpool.message.core.platform; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.core.toolkit.FileUtil; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.enums.NotifyPlatformEnum; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.AlarmNotifyRequest; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.NotifyPlatformEnum; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.core.constant.LarkAlarmConstants; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -46,11 +46,6 @@ import java.util.Arrays; import java.util.Objects; import java.util.stream.Collectors; -import static cn.hippo4j.message.platform.constant.LarkAlarmConstants.LARK_AT_FORMAT_OPENID; -import static cn.hippo4j.message.platform.constant.LarkAlarmConstants.LARK_AT_FORMAT_USERNAME; -import static cn.hippo4j.message.platform.constant.LarkAlarmConstants.LARK_BOT_URL; -import static cn.hippo4j.message.platform.constant.LarkAlarmConstants.LARK_OPENID_PREFIX; - /** * Send lark notification message. */ @@ -69,13 +64,13 @@ public class LarkSendMessageHandler implements SendMessageHandler { String afterReceives = getReceives(notifyConfig.getReceives()); String larkAlarmTimeoutReplaceTxt; String larkAlarmTxtKey = "message/robot/dynamic-thread-pool/lark-alarm.json"; - String larkAlarmTxt = Singleton.get(larkAlarmTxtKey, () -> FileUtil.readUtf8String(larkAlarmTxtKey)); + String larkAlarmTxt = Singleton.get(larkAlarmTxtKey, () -> readUtf8String(larkAlarmTxtKey)); String larkAlarmTimeoutReplaceJsonKey = "message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json"; - String larkAlarmTimeoutReplaceJson = Singleton.get(larkAlarmTimeoutReplaceJsonKey, () -> FileUtil.readUtf8String(larkAlarmTimeoutReplaceJsonKey)); + String larkAlarmTimeoutReplaceJson = Singleton.get(larkAlarmTimeoutReplaceJsonKey, () -> readUtf8String(larkAlarmTimeoutReplaceJsonKey)); if (Objects.equals(alarmNotifyRequest.getNotifyTypeEnum(), NotifyTypeEnum.TIMEOUT)) { String executeTimeoutTrace = alarmNotifyRequest.getExecuteTimeoutTrace(); String larkAlarmTimoutTraceReplaceJsonKey = "message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json"; - String larkAlarmTimoutTraceReplaceJson = Singleton.get(larkAlarmTimoutTraceReplaceJsonKey, () -> FileUtil.readUtf8String(larkAlarmTimoutTraceReplaceJsonKey)); + String larkAlarmTimoutTraceReplaceJson = Singleton.get(larkAlarmTimoutTraceReplaceJsonKey, () -> readUtf8String(larkAlarmTimoutTraceReplaceJsonKey)); if (StringUtil.isNotBlank(executeTimeoutTrace)) { String larkAlarmTimoutTraceReplaceTxt = String.format(larkAlarmTimoutTraceReplaceJson, executeTimeoutTrace); larkAlarmTimeoutReplaceTxt = StringUtil.replace(larkAlarmTimeoutReplaceJson, larkAlarmTimoutTraceReplaceJson, larkAlarmTimoutTraceReplaceTxt); @@ -126,7 +121,7 @@ public class LarkSendMessageHandler implements SendMessageHandler { String threadPoolId = changeParameterNotifyRequest.getThreadPoolId(); String afterReceives = getReceives(notifyConfig.getReceives()); String larkNoticeJsonKey = "message/robot/dynamic-thread-pool/lark-config.json"; - String larkNoticeJson = Singleton.get(larkNoticeJsonKey, () -> FileUtil.readUtf8String(larkNoticeJsonKey)); + String larkNoticeJson = Singleton.get(larkNoticeJsonKey, () -> readUtf8String(larkNoticeJsonKey)); String text = String.format(larkNoticeJson, changeParameterNotifyRequest.getActive(), threadPoolId, @@ -151,12 +146,13 @@ public class LarkSendMessageHandler implements SendMessageHandler { return ""; } return Arrays.stream(receives.split(",")) - .map(receive -> StringUtil.startWith(receive, LARK_OPENID_PREFIX) ? String.format(LARK_AT_FORMAT_OPENID, receive) : String.format(LARK_AT_FORMAT_USERNAME, receive)) + .map(receive -> StringUtil.startWith(receive, LarkAlarmConstants.LARK_OPENID_PREFIX) ? String.format(LarkAlarmConstants.LARK_AT_FORMAT_OPENID, receive) + : String.format(LarkAlarmConstants.LARK_AT_FORMAT_USERNAME, receive)) .collect(Collectors.joining(" ")); } private void execute(String secretKey, String text) { - String serverUrl = LARK_BOT_URL + secretKey; + String serverUrl = LarkAlarmConstants.LARK_BOT_URL + secretKey; try { String responseBody = HttpUtil.postJson(serverUrl, text); LarkRobotResponse response = JSONUtil.parseObject(responseBody, LarkRobotResponse.class); @@ -173,10 +169,7 @@ public class LarkSendMessageHandler implements SendMessageHandler { * generate Signature */ private String genSign(String secret, String timestamp) throws NoSuchAlgorithmException, InvalidKeyException { - // geneSign String stringToSign = timestamp + "\n" + secret; - - // encode Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(stringToSign.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); byte[] signData = mac.doFinal(new byte[]{}); diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/WeChatSendMessageHandler.java similarity index 76% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/WeChatSendMessageHandler.java index 48e191f4..dbabc582 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/WeChatSendMessageHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/WeChatSendMessageHandler.java @@ -15,25 +15,21 @@ * limitations under the License. */ -package cn.hippo4j.message.platform; +package cn.hippo4j.threadpool.message.core.platform; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.http.HttpUtil; -import cn.hippo4j.core.toolkit.FileUtil; -import cn.hippo4j.message.enums.NotifyPlatformEnum; -import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; -import cn.hippo4j.message.platform.base.RobotMessageActualContent; -import cn.hippo4j.message.platform.base.RobotMessageExecuteDTO; +import cn.hippo4j.threadpool.message.core.platform.base.AbstractRobotSendMessageHandler; +import cn.hippo4j.threadpool.message.core.platform.base.RobotMessageActualContent; +import cn.hippo4j.threadpool.message.core.platform.base.RobotMessageExecuteDTO; +import cn.hippo4j.threadpool.message.api.NotifyPlatformEnum; +import cn.hippo4j.threadpool.message.core.constant.WeChatAlarmConstants; import lombok.Data; import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; -import static cn.hippo4j.message.platform.constant.WeChatAlarmConstants.WE_CHAT_ALARM_TIMOUT_REPLACE_TXT; -import static cn.hippo4j.message.platform.constant.WeChatAlarmConstants.WE_CHAT_ALARM_TIMOUT_TRACE_REPLACE_TXT; -import static cn.hippo4j.message.platform.constant.WeChatAlarmConstants.WE_CHAT_SERVER_URL; - /** * WeChat send message handler. */ @@ -52,16 +48,16 @@ public class WeChatSendMessageHandler extends AbstractRobotSendMessageHandler { return RobotMessageActualContent.builder() .receiveSeparator("><@") .changeSeparator(" ➲ ") - .replaceTxt(WE_CHAT_ALARM_TIMOUT_REPLACE_TXT) - .traceReplaceTxt(WE_CHAT_ALARM_TIMOUT_TRACE_REPLACE_TXT) - .alarmMessageContent(Singleton.get(weChatAlarmTxtKey, () -> FileUtil.readUtf8String(weChatAlarmTxtKey))) - .configMessageContent(Singleton.get(weChatConfigTxtKey, () -> FileUtil.readUtf8String(weChatConfigTxtKey))) + .replaceTxt(WeChatAlarmConstants.WE_CHAT_ALARM_TIMOUT_REPLACE_TXT) + .traceReplaceTxt(WeChatAlarmConstants.WE_CHAT_ALARM_TIMOUT_TRACE_REPLACE_TXT) + .alarmMessageContent(Singleton.get(weChatAlarmTxtKey, () -> readUtf8String(weChatAlarmTxtKey))) + .configMessageContent(Singleton.get(weChatConfigTxtKey, () -> readUtf8String(weChatConfigTxtKey))) .build(); } @Override protected void execute(RobotMessageExecuteDTO robotMessageExecuteDTO) { - String serverUrl = WE_CHAT_SERVER_URL + robotMessageExecuteDTO.getNotifyConfig().getSecretKey(); + String serverUrl = WeChatAlarmConstants.WE_CHAT_SERVER_URL + robotMessageExecuteDTO.getNotifyConfig().getSecretKey(); try { WeChatReqDTO weChatReq = new WeChatReqDTO(); weChatReq.setMsgtype("markdown"); diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/AbstractRobotSendMessageHandler.java similarity index 94% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/AbstractRobotSendMessageHandler.java index aefe572c..36add5c0 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/AbstractRobotSendMessageHandler.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.base; +package cn.hippo4j.threadpool.message.core.platform.base; import cn.hippo4j.common.toolkit.Joiner; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.AlarmNotifyRequest; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.service.SendMessageHandler; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageActualContent.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageActualContent.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageActualContent.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageActualContent.java index fb483206..5ecd1bce 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageActualContent.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageActualContent.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.base; +package cn.hippo4j.threadpool.message.core.platform.base; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageExecuteDTO.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageExecuteDTO.java similarity index 91% rename from threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageExecuteDTO.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageExecuteDTO.java index 29191d6f..6bd05c57 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/platform/base/RobotMessageExecuteDTO.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/platform/base/RobotMessageExecuteDTO.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.message.platform.base; +package cn.hippo4j.threadpool.message.core.platform.base; -import cn.hippo4j.message.dto.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/AlarmNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/AlarmNotifyRequest.java similarity index 93% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/AlarmNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/AlarmNotifyRequest.java index 44a25599..eca49cc3 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/AlarmNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/AlarmNotifyRequest.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.base.BaseNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.base.BaseNotifyRequest; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/ChangeParameterNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ChangeParameterNotifyRequest.java similarity index 93% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/ChangeParameterNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ChangeParameterNotifyRequest.java index 72e7b925..3f96fe10 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/ChangeParameterNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ChangeParameterNotifyRequest.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; -import cn.hippo4j.message.request.base.BaseNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.base.BaseNotifyRequest; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/RobotAlarmNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotAlarmNotifyRequest.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/RobotAlarmNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotAlarmNotifyRequest.java index 4d0828c7..d63dd7b1 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/RobotAlarmNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotAlarmNotifyRequest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/RobotChangeParameterNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotChangeParameterNotifyRequest.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/RobotChangeParameterNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotChangeParameterNotifyRequest.java index 2b35b95b..6bf72c00 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/RobotChangeParameterNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/RobotChangeParameterNotifyRequest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/ThreadPoolNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ThreadPoolNotifyRequest.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/ThreadPoolNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ThreadPoolNotifyRequest.java index 7b73175a..c90ccde4 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/ThreadPoolNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/ThreadPoolNotifyRequest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/WebChangeParameterNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/WebChangeParameterNotifyRequest.java similarity index 91% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/WebChangeParameterNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/WebChangeParameterNotifyRequest.java index 25497484..3a17986c 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/WebChangeParameterNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/WebChangeParameterNotifyRequest.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.message.request; +package cn.hippo4j.threadpool.message.core.request; -import cn.hippo4j.message.request.base.BaseNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.base.BaseNotifyRequest; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -49,5 +49,4 @@ public class WebChangeParameterNotifyRequest extends BaseNotifyRequest { private Long beforeKeepAliveTime; private Long nowKeepAliveTime; - } diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/request/base/BaseNotifyRequest.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/base/BaseNotifyRequest.java similarity index 95% rename from threadpool/message/src/main/java/cn/hippo4j/message/request/base/BaseNotifyRequest.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/base/BaseNotifyRequest.java index 5db9a63c..14f83b30 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/request/base/BaseNotifyRequest.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/request/base/BaseNotifyRequest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.request.base; +package cn.hippo4j.threadpool.message.core.request.base; import cn.hippo4j.common.api.NotifyRequest; import lombok.Data; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/AlarmControlHandler.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/AlarmControlHandler.java index 4d94b6bc..9832be91 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/AlarmControlHandler.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.message.dto.AlarmControlDTO; +import cn.hippo4j.threadpool.message.api.AlarmControlDTO; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolConfigChangeHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/DefaultThreadPoolConfigChangeHandler.java similarity index 73% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolConfigChangeHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/DefaultThreadPoolConfigChangeHandler.java index 730edd81..6ce5dfd4 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/DefaultThreadPoolConfigChangeHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/DefaultThreadPoolConfigChangeHandler.java @@ -15,14 +15,17 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import cn.hippo4j.common.api.ThreadPoolConfigChange; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.toolkit.IdentifyUtil; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; + +import static cn.hippo4j.common.propertie.EnvironmentProperties.active; +import static cn.hippo4j.common.propertie.EnvironmentProperties.applicationName; +import static cn.hippo4j.common.propertie.EnvironmentProperties.itemId; +import static cn.hippo4j.common.propertie.IdentifyProperties.IDENTIFY; /** * Default thread-pool config change handler. @@ -30,16 +33,7 @@ import org.springframework.beans.factory.annotation.Value; @RequiredArgsConstructor public class DefaultThreadPoolConfigChangeHandler implements ThreadPoolConfigChange { - @Value("${spring.profiles.active:UNKNOWN}") - private String active; - - @Value("${spring.dynamic.thread-pool.item-id:}") - private String itemId; - - @Value("${spring.application.name:UNKNOWN}") - private String applicationName; - - private final Hippo4jSendMessageService hippo4jSendMessageService; + private final ThreadPoolSendMessageService hippo4jSendMessageService; /** * Send pool config change. @@ -51,7 +45,7 @@ public class DefaultThreadPoolConfigChangeHandler implements ThreadPoolConfigCha requestParam.setActive(active.toUpperCase()); String appName = StringUtil.isBlank(itemId) ? applicationName : itemId; requestParam.setAppName(appName); - requestParam.setIdentify(IdentifyUtil.getIdentify()); + requestParam.setIdentify(IDENTIFY); hippo4jSendMessageService.sendChangeMessage(requestParam); } } diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/GlobalNotifyAlarmManage.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/GlobalNotifyAlarmManage.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/GlobalNotifyAlarmManage.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/GlobalNotifyAlarmManage.java index c9f9fdc8..ec7de73a 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/GlobalNotifyAlarmManage.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/GlobalNotifyAlarmManage.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/SendMessageHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/SendMessageHandler.java similarity index 61% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/SendMessageHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/SendMessageHandler.java index 042c4818..5a8b0630 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/SendMessageHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/SendMessageHandler.java @@ -15,12 +15,18 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.request.AlarmNotifyRequest; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import lombok.SneakyThrows; +import org.springframework.core.io.ClassPathResource; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; /** * Send message handler. @@ -59,4 +65,23 @@ public interface SendMessageHandler { default void sendWebChangeMessage(NotifyConfigDTO notifyConfig, WebChangeParameterNotifyRequest changeParameterNotifyRequest) throws IllegalAccessException { throw new IllegalAccessException("Please implement this method before using it."); } + + @SneakyThrows + default String readUtf8String(String path) { + int endFlagCode = -1; + String resultReadStr; + ClassPathResource classPathResource = new ClassPathResource(path); + try ( + InputStream inputStream = classPathResource.getInputStream(); + BufferedInputStream bis = new BufferedInputStream(inputStream); + ByteArrayOutputStream buf = new ByteArrayOutputStream()) { + int result = bis.read(); + while (result != endFlagCode) { + buf.write((byte) result); + result = bis.read(); + } + resultReadStr = buf.toString("UTF-8"); + } + return resultReadStr; + } } diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolBaseSendMessageService.java similarity index 84% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolBaseSendMessageService.java index 21db2221..0bf039a6 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolBaseSendMessageService.java @@ -15,21 +15,18 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.message.api.NotifyConfigBuilder; -import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.message.dto.AlarmControlDTO; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.AlarmNotifyRequest; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.api.AlarmControlDTO; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.WebChangeParameterNotifyRequest; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; import java.util.HashMap; import java.util.List; @@ -40,15 +37,14 @@ import java.util.Map; */ @Slf4j @RequiredArgsConstructor -public class Hippo4jBaseSendMessageService implements Hippo4jSendMessageService, CommandLineRunner { - - private final NotifyConfigBuilder notifyConfigBuilder; +public class ThreadPoolBaseSendMessageService implements ThreadPoolSendMessageService { private final AlarmControlHandler alarmControlHandler; @Getter private final Map> notifyConfigs = new HashMap<>(); + @Getter private final Map sendMessageHandlers = new HashMap<>(); @Override @@ -165,13 +161,4 @@ public class Hippo4jBaseSendMessageService implements Hippo4jSendMessageService, public synchronized void putPlatform(Map> notifyConfigs) { this.notifyConfigs.putAll(notifyConfigs); } - - @Override - public void run(String... args) throws Exception { - Map sendMessageHandlerMap = - ApplicationContextHolder.getBeansOfType(SendMessageHandler.class); - sendMessageHandlerMap.values().forEach(each -> sendMessageHandlers.put(each.getType(), each)); - Map> buildNotify = notifyConfigBuilder.buildNotify(); - notifyConfigs.putAll(buildNotify); - } } diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/ThreadPoolNotifyAlarm.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolNotifyAlarm.java similarity index 96% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/ThreadPoolNotifyAlarm.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolNotifyAlarm.java index d0c2f5c9..5b6a3320 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/ThreadPoolNotifyAlarm.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolNotifyAlarm.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jSendMessageService.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolSendMessageService.java similarity index 80% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jSendMessageService.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolSendMessageService.java index 1878cbc7..a92cea7f 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/Hippo4jSendMessageService.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/ThreadPoolSendMessageService.java @@ -15,17 +15,17 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; -import cn.hippo4j.message.enums.NotifyTypeEnum; -import cn.hippo4j.message.request.AlarmNotifyRequest; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.AlarmNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; /** * Hippo-4j send message service. */ -public interface Hippo4jSendMessageService { +public interface ThreadPoolSendMessageService { /** * Send dynamic thread pool alert notifications. diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/service/WebThreadPoolConfigChangeHandler.java b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/WebThreadPoolConfigChangeHandler.java similarity index 72% rename from threadpool/message/src/main/java/cn/hippo4j/message/service/WebThreadPoolConfigChangeHandler.java rename to kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/WebThreadPoolConfigChangeHandler.java index f2422d67..3f68afa5 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/service/WebThreadPoolConfigChangeHandler.java +++ b/kernel/message/core/src/main/java/cn/hippo4j/threadpool/message/core/service/WebThreadPoolConfigChangeHandler.java @@ -15,15 +15,18 @@ * limitations under the License. */ -package cn.hippo4j.message.service; +package cn.hippo4j.threadpool.message.core.service; import cn.hippo4j.common.api.ThreadPoolConfigChange; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.toolkit.IdentifyUtil; -import cn.hippo4j.message.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.WebChangeParameterNotifyRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; + +import static cn.hippo4j.common.propertie.EnvironmentProperties.active; +import static cn.hippo4j.common.propertie.EnvironmentProperties.applicationName; +import static cn.hippo4j.common.propertie.EnvironmentProperties.itemId; +import static cn.hippo4j.common.propertie.IdentifyProperties.IDENTIFY; /** * Web thread-pool config change handler. @@ -32,16 +35,7 @@ import org.springframework.beans.factory.annotation.Value; @Slf4j public class WebThreadPoolConfigChangeHandler implements ThreadPoolConfigChange { - @Value("${spring.profiles.active:UNKNOWN}") - private String active; - - @Value("${spring.dynamic.thread-pool.item-id:}") - private String itemId; - - @Value("${spring.application.name:UNKNOWN}") - private String applicationName; - - private final Hippo4jSendMessageService hippo4jSendMessageService; + private final ThreadPoolSendMessageService hippo4jSendMessageService; /** * Send pool config change message for web. @@ -54,10 +48,10 @@ public class WebThreadPoolConfigChangeHandler implements ThreadPoolConfigChange< requestParam.setActive(active.toUpperCase()); String appName = StringUtil.isBlank(itemId) ? applicationName : itemId; requestParam.setAppName(appName); - requestParam.setIdentify(IdentifyUtil.getIdentify()); + requestParam.setIdentify(IDENTIFY); hippo4jSendMessageService.sendChangeMessage(requestParam); } catch (Throwable th) { - log.error("send web thread pool config change message failed.", th); + log.error("Send web thread pool config change message failed.", th); } } } diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/ding-alarm.txt b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/ding-alarm.txt similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/ding-alarm.txt rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/ding-alarm.txt diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/ding-config.txt b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/ding-config.txt similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/ding-config.txt rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/ding-config.txt diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-timeout-replace.json diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm-trace-replace.json diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-alarm.json diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-config.json b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-config.json similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/lark-config.json rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/lark-config.json diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/wechat-alarm.txt b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/wechat-alarm.txt similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/wechat-alarm.txt rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/wechat-alarm.txt diff --git a/threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/wechat-config.txt b/kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/wechat-config.txt similarity index 100% rename from threadpool/message/src/main/resources/message/robot/dynamic-thread-pool/wechat-config.txt rename to kernel/message/core/src/main/resources/message/robot/dynamic-thread-pool/wechat-config.txt diff --git a/threadpool/message/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java b/kernel/message/core/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java similarity index 89% rename from threadpool/message/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java rename to kernel/message/core/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java index e7b22bae..351116cd 100644 --- a/threadpool/message/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java +++ b/kernel/message/core/src/test/java/cn/hippo4j/message/service/AlarmControlHandlerTest.java @@ -17,8 +17,9 @@ package cn.hippo4j.message.service; -import cn.hippo4j.message.dto.AlarmControlDTO; -import cn.hippo4j.message.enums.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.api.AlarmControlDTO; +import cn.hippo4j.threadpool.message.api.NotifyTypeEnum; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; import org.junit.Assert; import org.junit.Test; diff --git a/kernel/message/mode/config/pom.xml b/kernel/message/mode/config/pom.xml new file mode 100644 index 00000000..cd90e448 --- /dev/null +++ b/kernel/message/mode/config/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-message-mode + ${revision} + + + hippo4j-threadpool-message-mode-config + diff --git a/kernel/message/mode/pom.xml b/kernel/message/mode/pom.xml new file mode 100644 index 00000000..e61cadaf --- /dev/null +++ b/kernel/message/mode/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-kernel-message + ${revision} + + + hippo4j-threadpool-message-mode + pom + + + config + server + + diff --git a/kernel/message/mode/server/pom.xml b/kernel/message/mode/server/pom.xml new file mode 100644 index 00000000..27b9f703 --- /dev/null +++ b/kernel/message/mode/server/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + cn.hippo4j + hippo4j-threadpool-message-mode + ${revision} + + + hippo4j-threadpool-message-mode-server + diff --git a/kernel/message/pom.xml b/kernel/message/pom.xml index 1957cad9..b013a794 100644 --- a/kernel/message/pom.xml +++ b/kernel/message/pom.xml @@ -10,4 +10,11 @@ hippo4j-threadpool-kernel-message + pom + + + api + core + mode + \ No newline at end of file diff --git a/starters/threadpool/adapter/pom.xml b/starters/threadpool/adapter/pom.xml index 1c04e448..292cb308 100644 --- a/starters/threadpool/adapter/pom.xml +++ b/starters/threadpool/adapter/pom.xml @@ -4,7 +4,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters ${revision} hippo4j-threadpool-spring-boot-starter-adapter diff --git a/starters/threadpool/config-spring-boot-1x/pom.xml b/starters/threadpool/config-spring-boot-1x/pom.xml index 36c34ca4..21088da8 100644 --- a/starters/threadpool/config-spring-boot-1x/pom.xml +++ b/starters/threadpool/config-spring-boot-1x/pom.xml @@ -5,7 +5,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters ${revision} hippo4j-threadpool-config-spring-boot-1x-starter diff --git a/starters/threadpool/config/pom.xml b/starters/threadpool/config/pom.xml index 810d423a..e452e533 100644 --- a/starters/threadpool/config/pom.xml +++ b/starters/threadpool/config/pom.xml @@ -4,7 +4,7 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters ${revision} hippo4j-threadpool-config-spring-boot-starter diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index ca97ebe0..b1cc647a 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -18,8 +18,6 @@ package cn.hippo4j.config.springboot.starter.config; import cn.hippo4j.adapter.web.WebThreadPoolService; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.monitor.ThreadPoolMonitorExecutor; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; @@ -30,19 +28,22 @@ import cn.hippo4j.config.springboot.starter.refresher.event.WebExecutorRefreshLi import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolAdapterRegister; import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolConfigService; import cn.hippo4j.config.springboot.starter.support.DynamicThreadPoolPostProcessor; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.config.UtilAutoConfiguration; import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.core.executor.handler.DynamicThreadPoolBannerHandler; -import cn.hippo4j.message.api.NotifyConfigBuilder; +import cn.hippo4j.core.extension.initialize.Hippo4jDynamicThreadPoolInitializer; import cn.hippo4j.message.config.MessageConfiguration; -import cn.hippo4j.message.service.AlarmControlHandler; -import cn.hippo4j.message.service.DefaultThreadPoolCheckAlarmHandler; -import cn.hippo4j.message.service.DefaultThreadPoolConfigChangeHandler; -import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; -import cn.hippo4j.message.service.Hippo4jSendMessageService; -import cn.hippo4j.message.service.WebThreadPoolConfigChangeHandler; import cn.hippo4j.springboot.starter.adapter.web.WebAdapterConfiguration; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; +import cn.hippo4j.threadpool.alarm.handler.DefaultThreadPoolCheckAlarmHandler; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; +import cn.hippo4j.threadpool.message.core.service.DefaultThreadPoolConfigChangeHandler; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolSendMessageService; +import cn.hippo4j.threadpool.message.core.service.WebThreadPoolConfigChangeHandler; import lombok.AllArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; @@ -91,13 +92,13 @@ public class DynamicThreadPoolAutoConfiguration { @Bean @ConditionalOnMissingBean - public ThreadPoolCheckAlarm defaultThreadPoolCheckAlarmHandler(Hippo4jSendMessageService hippo4jSendMessageService) { + public ThreadPoolCheckAlarm defaultThreadPoolCheckAlarmHandler(ThreadPoolSendMessageService hippo4jSendMessageService) { return new DefaultThreadPoolCheckAlarmHandler(hippo4jSendMessageService); } @Bean @ConditionalOnMissingBean - public DefaultThreadPoolConfigChangeHandler defaultThreadPoolConfigChangeHandler(Hippo4jSendMessageService hippo4jSendMessageService) { + public DefaultThreadPoolConfigChangeHandler defaultThreadPoolConfigChangeHandler(ThreadPoolSendMessageService hippo4jSendMessageService) { return new DefaultThreadPoolConfigChangeHandler(hippo4jSendMessageService); } @@ -105,7 +106,7 @@ public class DynamicThreadPoolAutoConfiguration { @ConditionalOnMissingBean public WebThreadPoolConfigChangeHandler webThreadPoolConfigChangeHandler(BootstrapConfigProperties bootstrapConfigProperties, WebThreadPoolService webThreadPoolService, - Hippo4jSendMessageService hippo4jSendMessageService) { + ThreadPoolSendMessageService hippo4jSendMessageService) { if (bootstrapConfigProperties.getWeb() != null && StringUtil.isBlank(bootstrapConfigProperties.getWeb().getThreadPoolId())) { bootstrapConfigProperties.getWeb().setThreadPoolId(webThreadPoolService.getWebContainerType().getName()); } @@ -126,8 +127,8 @@ public class DynamicThreadPoolAutoConfiguration { @SuppressWarnings("all") public DynamicThreadPoolRefreshListener hippo4jExecutorsListener(DefaultThreadPoolConfigChangeHandler threadPoolConfigChange, ConfigModeNotifyConfigBuilder configModeNotifyConfigBuilder, - Hippo4jBaseSendMessageService hippoBaseSendMessageService) { - return new DynamicThreadPoolRefreshListener(threadPoolConfigChange, configModeNotifyConfigBuilder, hippoBaseSendMessageService); + ThreadPoolBaseSendMessageService threadPoolBaseSendMessageService) { + return new DynamicThreadPoolRefreshListener(threadPoolConfigChange, configModeNotifyConfigBuilder, threadPoolBaseSendMessageService); } @Bean @@ -160,4 +161,9 @@ public class DynamicThreadPoolAutoConfiguration { public DynamicThreadPoolConfigService dynamicThreadPoolConfigService() { return new DynamicThreadPoolConfigService(); } + + @Bean + public Hippo4jDynamicThreadPoolInitializer hippo4jDynamicThreadPoolInitializer() { + return new Hippo4jDynamicThreadPoolInitializer(); + } } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java index e83b6081..ef9447cb 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java @@ -17,31 +17,28 @@ package cn.hippo4j.config.springboot.starter.monitor; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.executor.ThreadFactoryBuilder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; -import cn.hippo4j.threadpool.dynamic.mode.config.properties.MonitorProperties; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.monitor.base.DynamicThreadPoolMonitor; import cn.hippo4j.monitor.base.ThreadPoolMonitor; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.MonitorProperties; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; - import org.springframework.beans.factory.DisposableBean; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import static cn.hippo4j.core.executor.manage.GlobalThreadPoolManage.getThreadPoolNum; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; /** * Thread-pool monitor executor. @@ -82,8 +79,8 @@ public class ThreadPoolMonitorExecutor implements ApplicationRunner, DisposableB monitor.getInitialDelay(), monitor.getCollectInterval(), TimeUnit.MILLISECONDS); - if (GlobalThreadPoolManage.getThreadPoolNum() > 0) { - log.info("Dynamic thread pool: [{}]. The dynamic thread pool starts data collection and reporting.", getThreadPoolNum()); + if (ThreadPoolExecutorRegistry.getThreadPoolExecutorSize() > 0) { + log.info("Dynamic thread pool: [{}]. The dynamic thread pool starts data collection and reporting.", ThreadPoolExecutorRegistry.getThreadPoolExecutorSize()); } } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java index 324ba783..3bc9b193 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/notify/ConfigModeNotifyConfigBuilder.java @@ -26,9 +26,9 @@ import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.mode.config.properties.NotifyPlatformProperties; import cn.hippo4j.threadpool.dynamic.mode.config.properties.WebExecutorProperties; -import cn.hippo4j.message.api.NotifyConfigBuilder; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.service.AlarmControlHandler; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java index fca575ba..67d82d98 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/AbstractConfigThreadPoolDynamicRefresh.java @@ -18,7 +18,7 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEvent; +import cn.hippo4j.config.springboot.starter.refresher.event.ThreadPoolConfigDynamicRefreshEvent; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.support.ThreadPoolBuilder; import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface; @@ -73,7 +73,7 @@ public abstract class AbstractConfigThreadPoolDynamicRefresh implements ThreadPo } private void publishDynamicThreadPoolEvent(BootstrapConfigProperties configProperties) { - ApplicationContextHolder.getInstance().publishEvent(new Hippo4jConfigDynamicRefreshEvent(this, configProperties)); + ApplicationContextHolder.getInstance().publishEvent(new ThreadPoolConfigDynamicRefreshEvent(this, configProperties)); } @Override diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index 62ba302d..b83fc2eb 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -18,8 +18,8 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; -import cn.hippo4j.message.service.GlobalNotifyAlarmManage; -import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; +import cn.hippo4j.threadpool.message.core.service.GlobalNotifyAlarmManage; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolNotifyAlarm; import lombok.extern.slf4j.Slf4j; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java index 85dd2dbc..e1d06c4e 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AbstractRefreshListener.java @@ -24,7 +24,7 @@ import lombok.extern.slf4j.Slf4j; * Refresh listener abstract base class. */ @Slf4j -public abstract class AbstractRefreshListener implements RefreshListener { +public abstract class AbstractRefreshListener implements RefreshListener { /** * Matching nodes
diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java index fd197215..7bd823e3 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/AdapterExecutorsRefreshListener.java @@ -34,7 +34,7 @@ import java.util.Map; import java.util.Objects; import static cn.hippo4j.common.constant.Constants.IDENTIFY_SLICER_SYMBOL; -import static cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEventOrder.ADAPTER_EXECUTORS_LISTENER; +import static cn.hippo4j.config.springboot.starter.refresher.event.ThreadPoolConfigDynamicRefreshEventOrder.ADAPTER_EXECUTORS_LISTENER; /** * Adapter executors refresh listener. @@ -52,7 +52,7 @@ public class AdapterExecutorsRefreshListener extends AbstractRefreshListener adapterExecutors = event.getBootstrapConfigProperties().getAdapterExecutors(); Map threadPoolAdapterMap = ApplicationContextHolder.getBeansOfType(ThreadPoolAdapter.class); if (CollectionUtil.isEmpty(adapterExecutors) || CollectionUtil.isEmpty(threadPoolAdapterMap)) { diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java index bd7b959e..25bb91e6 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java @@ -18,22 +18,22 @@ package cn.hippo4j.config.springboot.starter.refresher.event; import cn.hippo4j.common.api.ThreadPoolConfigChange; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; +import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; -import cn.hippo4j.common.model.executor.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.ConfigModeNotifyConfigBuilder; -import cn.hippo4j.threadpool.dynamic.core.executor.manage.GlobalConfigThreadPoolManage; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; -import cn.hippo4j.message.service.GlobalNotifyAlarmManage; -import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; -import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; +import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.service.GlobalNotifyAlarmManage; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolNotifyAlarm; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; @@ -49,7 +49,7 @@ import java.util.concurrent.TimeUnit; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_THREAD_POOL_TEXT; -import static cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEventOrder.EXECUTORS_LISTENER; +import static cn.hippo4j.config.springboot.starter.refresher.event.ThreadPoolConfigDynamicRefreshEventOrder.EXECUTORS_LISTENER; /** * Dynamic thread-pool refresh listener. @@ -63,7 +63,7 @@ public class DynamicThreadPoolRefreshListener extends AbstractRefreshListener executors = bindableConfigProperties.getExecutors(); for (ExecutorProperties properties : executors) { @@ -87,8 +87,9 @@ public class DynamicThreadPoolRefreshListener extends AbstractRefreshListener changeKeys = new ArrayList<>(); Map> newDynamicThreadPoolNotifyMap = configModeNotifyConfigBuilder.buildSingleNotifyConfig(executorProperties); - Map> notifyConfigs = hippo4jBaseSendMessageService.getNotifyConfigs(); + Map> notifyConfigs = threadPoolBaseSendMessageService.getNotifyConfigs(); if (CollectionUtil.isNotEmpty(notifyConfigs)) { for (Map.Entry> each : newDynamicThreadPoolNotifyMap.entrySet()) { if (checkNotifyConfig) { @@ -186,7 +187,7 @@ public class DynamicThreadPoolRefreshListener extends AbstractRefreshListener { @Override - public void onApplicationEvent(Hippo4jConfigDynamicRefreshEvent threadPoolDynamicRefreshEvent) { + public void onApplicationEvent(ThreadPoolConfigDynamicRefreshEvent threadPoolDynamicRefreshEvent) { BootstrapConfigProperties bindableConfigProperties = threadPoolDynamicRefreshEvent.getBootstrapConfigProperties(); List executors = bindableConfigProperties.getExecutors(); for (ExecutorProperties executorProperties : executors) { String threadPoolId = executorProperties.getThreadPoolId(); - DynamicThreadPoolWrapper wrapper = GlobalThreadPoolManage.getExecutorService(threadPoolId); - if (wrapper != null && !wrapper.isInitFlag()) { - Hippo4jBaseSendMessageService sendMessageService = ApplicationContextHolder.getBean(Hippo4jBaseSendMessageService.class); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + ThreadPoolBaseSendMessageService sendMessageService = ApplicationContextHolder.getBean(ThreadPoolBaseSendMessageService.class); + /** + * TODO The logic here should be: + * + * 1. When the application starts, the thread pool parameters are not configured in the configuration center + * 2. After the application starts, put the relevant configuration into the configuration center + * 3. Use whether there is a thread pool notification as a judgment condition + */ + List notifyConfigList = sendMessageService.getNotifyConfigs().get(threadPoolId); + if (executorHolder != null && CollectionUtil.isEmpty(notifyConfigList)) { ConfigModeNotifyConfigBuilder configBuilder = ApplicationContextHolder.getBean(ConfigModeNotifyConfigBuilder.class); Map> notifyConfig = configBuilder.buildSingleNotifyConfig(executorProperties); sendMessageService.putPlatform(notifyConfig); - wrapper.setInitFlag(Boolean.TRUE); } } } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEvent.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEvent.java similarity index 86% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEvent.java rename to starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEvent.java index caf3e2f5..253f7fc3 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEvent.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEvent.java @@ -25,13 +25,13 @@ import org.springframework.context.ApplicationEvent; /** * Hippo-4j config dynamic refresh event. */ -public class Hippo4jConfigDynamicRefreshEvent extends ApplicationEvent { +public class ThreadPoolConfigDynamicRefreshEvent extends ApplicationEvent { @Getter @Setter private BootstrapConfigProperties bootstrapConfigProperties; - public Hippo4jConfigDynamicRefreshEvent(Object source, BootstrapConfigProperties bootstrapConfigProperties) { + public ThreadPoolConfigDynamicRefreshEvent(Object source, BootstrapConfigProperties bootstrapConfigProperties) { super(source); this.bootstrapConfigProperties = bootstrapConfigProperties; } diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEventOrder.java similarity index 95% rename from starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java rename to starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEventOrder.java index f42e7901..15767d0c 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/Hippo4jConfigDynamicRefreshEventOrder.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/ThreadPoolConfigDynamicRefreshEventOrder.java @@ -20,7 +20,7 @@ package cn.hippo4j.config.springboot.starter.refresher.event; /** * Hippo-4j config dynamic refresh event order. */ -public class Hippo4jConfigDynamicRefreshEventOrder { +public class ThreadPoolConfigDynamicRefreshEventOrder { public static final int WEB_EXECUTOR_LISTENER = 0; diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java index b9663167..4165b9dd 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/WebExecutorRefreshListener.java @@ -20,18 +20,18 @@ package cn.hippo4j.config.springboot.starter.refresher.event; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.api.ThreadPoolConfigChange; -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties; import cn.hippo4j.threadpool.dynamic.mode.config.properties.WebExecutorProperties; -import cn.hippo4j.message.request.WebChangeParameterNotifyRequest; +import cn.hippo4j.threadpool.message.core.request.WebChangeParameterNotifyRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; import java.util.Objects; -import static cn.hippo4j.config.springboot.starter.refresher.event.Hippo4jConfigDynamicRefreshEventOrder.WEB_EXECUTOR_LISTENER; +import static cn.hippo4j.config.springboot.starter.refresher.event.ThreadPoolConfigDynamicRefreshEventOrder.WEB_EXECUTOR_LISTENER; /** * Web executor refresh listener. @@ -53,7 +53,7 @@ public class WebExecutorRefreshListener extends AbstractRefreshListener4.0.0 cn.hippo4j - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters ${revision} hippo4j-threadpool-spring-boot-starter-monitor diff --git a/starters/threadpool/pom.xml b/starters/threadpool/pom.xml index 52bb274e..253da58c 100644 --- a/starters/threadpool/pom.xml +++ b/starters/threadpool/pom.xml @@ -7,7 +7,7 @@ hippo4j-starters ${revision} - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters pom diff --git a/starters/threadpool/server/pom.xml b/starters/threadpool/server/pom.xml index 7092cd9f..dd07cde8 100644 --- a/starters/threadpool/server/pom.xml +++ b/starters/threadpool/server/pom.xml @@ -4,10 +4,10 @@ 4.0.0 cn.hippo4j - hippo4j-threadpool-spring-boot-starter + hippo4j-threadpool-starters ${revision} - hippo4j-threadpool-server-spring-boot-starter + hippo4j-threadpool-spring-boot-starter @@ -81,5 +81,10 @@ hippo4j-threadpool-dynamic-api ${project.version} + + cn.hippo4j + hippo4j-threadpool-kernel-alarm + ${project.version} + diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java index 7e8ccd9a..8e901da7 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/config/DynamicThreadPoolAutoConfiguration.java @@ -20,7 +20,6 @@ package cn.hippo4j.springboot.starter.config; import cn.hippo4j.adapter.base.ThreadPoolAdapterBeanContainer; import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.common.api.ThreadDetailState; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.api.ThreadPoolConfigChange; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; @@ -29,15 +28,10 @@ import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.executor.support.service.DynamicThreadPoolService; import cn.hippo4j.core.executor.handler.DynamicThreadPoolBannerHandler; +import cn.hippo4j.core.extension.initialize.Hippo4jDynamicThreadPoolInitializer; import cn.hippo4j.core.toolkit.IdentifyUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; -import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.config.MessageConfiguration; -import cn.hippo4j.message.service.AlarmControlHandler; -import cn.hippo4j.message.service.DefaultThreadPoolCheckAlarmHandler; -import cn.hippo4j.message.service.DefaultThreadPoolConfigChangeHandler; -import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; -import cn.hippo4j.message.service.Hippo4jSendMessageService; import cn.hippo4j.springboot.starter.adapter.web.WebAdapterConfiguration; import cn.hippo4j.springboot.starter.controller.ThreadPoolAdapterController; import cn.hippo4j.springboot.starter.controller.WebThreadPoolController; @@ -62,7 +56,14 @@ import cn.hippo4j.springboot.starter.support.AdaptedThreadPoolDestroyPostProcess import cn.hippo4j.springboot.starter.support.DynamicThreadPoolConfigService; import cn.hippo4j.springboot.starter.support.DynamicThreadPoolPostProcessor; import cn.hippo4j.springboot.starter.support.ThreadPoolPluginRegisterPostProcessor; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; +import cn.hippo4j.threadpool.alarm.handler.DefaultThreadPoolCheckAlarmHandler; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; +import cn.hippo4j.threadpool.message.core.service.DefaultThreadPoolConfigChangeHandler; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolSendMessageService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; @@ -126,9 +127,9 @@ public class DynamicThreadPoolAutoConfiguration { public DynamicThreadPoolService dynamicThreadPoolConfigService(HttpAgent httpAgent, ServerHealthCheck serverHealthCheck, ServerModeNotifyConfigBuilder serverModeNotifyConfigBuilder, - Hippo4jBaseSendMessageService hippo4jBaseSendMessageService, + ThreadPoolBaseSendMessageService threadPoolBaseSendMessageService, DynamicThreadPoolSubscribeConfig dynamicThreadPoolSubscribeConfig) { - return new DynamicThreadPoolConfigService(httpAgent, properties, serverModeNotifyConfigBuilder, hippo4jBaseSendMessageService, dynamicThreadPoolSubscribeConfig); + return new DynamicThreadPoolConfigService(httpAgent, properties, serverModeNotifyConfigBuilder, threadPoolBaseSendMessageService, dynamicThreadPoolSubscribeConfig); } @Bean @@ -219,13 +220,13 @@ public class DynamicThreadPoolAutoConfiguration { @Bean @ConditionalOnMissingBean - public ThreadPoolCheckAlarm defaultThreadPoolCheckAlarmHandler(Hippo4jSendMessageService hippo4jSendMessageService) { + public ThreadPoolCheckAlarm defaultThreadPoolCheckAlarmHandler(ThreadPoolSendMessageService hippo4jSendMessageService) { return new DefaultThreadPoolCheckAlarmHandler(hippo4jSendMessageService); } @Bean @ConditionalOnMissingBean - public ThreadPoolConfigChange defaultThreadPoolConfigChangeHandler(Hippo4jSendMessageService hippo4jSendMessageService) { + public ThreadPoolConfigChange defaultThreadPoolConfigChangeHandler(ThreadPoolSendMessageService hippo4jSendMessageService) { return new DefaultThreadPoolConfigChangeHandler(hippo4jSendMessageService); } @@ -249,4 +250,9 @@ public class DynamicThreadPoolAutoConfiguration { public ThreadPoolPluginRegisterPostProcessor threadPoolPluginRegisterPostProcessor() { return new ThreadPoolPluginRegisterPostProcessor(); } + + @Bean + public Hippo4jDynamicThreadPoolInitializer hippo4jDynamicThreadPoolInitializer() { + return new Hippo4jDynamicThreadPoolInitializer(); + } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/BaseThreadDetailStateHandler.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/BaseThreadDetailStateHandler.java index 72772f8b..99e56a13 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/BaseThreadDetailStateHandler.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/BaseThreadDetailStateHandler.java @@ -18,11 +18,11 @@ package cn.hippo4j.springboot.starter.core; import cn.hippo4j.common.api.ThreadDetailState; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ThreadDetailStateInfo; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ReflectUtil; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; @@ -44,8 +44,8 @@ public class BaseThreadDetailStateHandler implements ThreadDetailState { @Override public List getThreadDetailStateInfo(String threadPoolId) { - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = GlobalThreadPoolManage.getExecutorService(threadPoolId); - ThreadPoolExecutor threadPoolExecutor = dynamicThreadPoolWrapper.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + ThreadPoolExecutor threadPoolExecutor = executorHolder.getExecutor(); return getThreadDetailStateInfo(threadPoolExecutor); } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/CacheData.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/CacheData.java index 19813c49..436df96c 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/CacheData.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/CacheData.java @@ -17,6 +17,7 @@ package cn.hippo4j.springboot.starter.core; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.springboot.starter.wrapper.ManagerListenerWrapper; import cn.hippo4j.common.toolkit.ContentUtil; @@ -57,7 +58,7 @@ public class CacheData { this.tenantId = tenantId; this.itemId = itemId; this.threadPoolId = threadPoolId; - this.content = ContentUtil.getPoolContent(GlobalThreadPoolManage.getPoolParameter(threadPoolId)); + this.content = ContentUtil.getPoolContent(ThreadPoolExecutorRegistry.getHolder(threadPoolId).getParameterInfo()); this.md5 = getMd5String(content); this.listeners = new CopyOnWriteArrayList<>(); } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java index 48325113..f4def9f4 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/core/ServerThreadPoolDynamicRefresh.java @@ -18,18 +18,18 @@ package cn.hippo4j.springboot.starter.core; import cn.hippo4j.common.api.ThreadPoolConfigChange; -import cn.hippo4j.common.extension.enums.EnableEnum; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; +import cn.hippo4j.common.extension.enums.EnableEnum; import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.message.request.ChangeParameterNotifyRequest; import cn.hippo4j.threadpool.dynamic.api.ThreadPoolDynamicRefresh; +import cn.hippo4j.threadpool.message.core.request.ChangeParameterNotifyRequest; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,7 +55,7 @@ public class ServerThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh public void dynamicRefresh(String content) { ThreadPoolParameterInfo parameter = JSONUtil.parseObject(content, ThreadPoolParameterInfo.class); String threadPoolId = parameter.getTpId(); - ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor(); + ThreadPoolExecutor executor = ThreadPoolExecutorRegistry.getHolder(threadPoolId).getExecutor(); refreshDynamicPool(parameter, executor); } @@ -75,7 +75,7 @@ public class ServerThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh originalExecuteTimeOut = dynamicExecutor.getExecuteTimeOut(); } changePoolInfo(executor, parameter); - ThreadPoolExecutor afterExecutor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor(); + ThreadPoolExecutor afterExecutor = ThreadPoolExecutorRegistry.getHolder(threadPoolId).getExecutor(); String originalRejected = rejectedExecutionHandler.getClass().getSimpleName(); Long executeTimeOut = Optional.ofNullable(parameter.getExecuteTimeOut()).orElse(0L); ChangeParameterNotifyRequest changeNotifyRequest = ChangeParameterNotifyRequest.builder() diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java index 4fdee6b4..795521d7 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java @@ -17,14 +17,14 @@ package cn.hippo4j.springboot.starter.monitor; -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.executor.ThreadFactoryBuilder; -import cn.hippo4j.common.monitor.Message; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; +import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.ThreadUtil; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.monitor.base.MonitorTypeEnum; import cn.hippo4j.monitor.base.ThreadPoolMonitor; import cn.hippo4j.springboot.starter.config.BootstrapProperties; @@ -49,8 +49,6 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import static cn.hippo4j.core.executor.manage.GlobalThreadPoolManage.getThreadPoolNum; - /** * Dynamic thread pool collection and reporting event executor. * @@ -144,8 +142,8 @@ public class ReportingEventExecutor implements Runnable, CommandLineRunner, Disp // Start reporting monitoring data thread. ThreadUtil.newThread(this, "client.thread.reporting.task", Boolean.TRUE).start(); } - if (GlobalThreadPoolManage.getThreadPoolNum() > 0) { - log.info("Dynamic thread pool: [{}]. The dynamic thread pool starts data collection and reporting.", getThreadPoolNum()); + if (ThreadPoolExecutorRegistry.getThreadPoolExecutorSize() > 0) { + log.info("Dynamic thread pool: [{}]. The dynamic thread pool starts data collection and reporting.", ThreadPoolExecutorRegistry.getThreadPoolExecutorSize()); } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java index 31f4116e..c8b85771 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java @@ -17,13 +17,13 @@ package cn.hippo4j.springboot.starter.monitor.collect; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.monitor.AbstractMessage; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageTypeEnum; import cn.hippo4j.common.monitor.RuntimeMessage; import cn.hippo4j.common.toolkit.BeanUtil; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import lombok.AllArgsConstructor; @@ -45,7 +45,7 @@ public class RunTimeInfoCollector extends AbstractThreadPoolRuntime implements C public Message collectMessage() { AbstractMessage message = new RuntimeMessage(); List runtimeMessages = new ArrayList<>(); - List listThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); + List listThreadPoolId = ThreadPoolExecutorRegistry.listThreadPoolExecutorId(); for (String each : listThreadPoolId) { ThreadPoolRunStateInfo poolRunState = getPoolRunState(each); RuntimeMessage runtimeMessage = BeanUtil.convert(poolRunState, RuntimeMessage.class); diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java index 09bed348..05e7a601 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/notify/ServerModeNotifyConfigBuilder.java @@ -17,18 +17,18 @@ package cn.hippo4j.springboot.starter.notify; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.Result; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.message.api.NotifyConfigBuilder; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.dto.ThreadPoolNotifyDTO; -import cn.hippo4j.message.request.ThreadPoolNotifyRequest; -import cn.hippo4j.message.service.AlarmControlHandler; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.remote.HttpAgent; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.api.ThreadPoolNotifyDTO; +import cn.hippo4j.threadpool.message.core.request.ThreadPoolNotifyRequest; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,7 +55,7 @@ public class ServerModeNotifyConfigBuilder implements NotifyConfigBuilder { @Override public Map> buildNotify() { - List threadPoolIds = GlobalThreadPoolManage.listThreadPoolId(); + List threadPoolIds = ThreadPoolExecutorRegistry.listThreadPoolExecutorId(); if (CollectionUtil.isEmpty(threadPoolIds)) { log.warn("The client does not have a dynamic thread pool instance configured."); return new HashMap<>(); diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/AdaptedThreadPoolDestroyPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/AdaptedThreadPoolDestroyPostProcessor.java index dfef5d71..bad47f90 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/AdaptedThreadPoolDestroyPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/AdaptedThreadPoolDestroyPostProcessor.java @@ -17,9 +17,9 @@ package cn.hippo4j.springboot.starter.support; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapter; import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapterChoose; import lombok.RequiredArgsConstructor; @@ -74,18 +74,20 @@ public class AdaptedThreadPoolDestroyPostProcessor implements DestructionAwareBe .map(each -> ((DynamicThreadPoolExecutor) each).getThreadPoolId()) // the internal thread pool is also managed by spring, no manual destruction required .filter(applicationContext::containsBeanDefinition) - .map(GlobalThreadPoolManage::getExecutorService) - .ifPresent(executor -> destroyAdaptedThreadPoolExecutor(beanName, executor)); + .map(ThreadPoolExecutorRegistry::getHolder) + .ifPresent(executorHolder -> destroyAdaptedThreadPoolExecutor(beanName, executorHolder)); } - private void destroyAdaptedThreadPoolExecutor(String beanName, DynamicThreadPoolWrapper executor) { + private void destroyAdaptedThreadPoolExecutor(String beanName, ThreadPoolExecutorHolder executorHolder) { try { if (log.isDebugEnabled()) { - log.debug("Destroy internal dynamic thread pool '{}' for bean '{}'", executor.getThreadPoolId(), beanName); + log.debug("Destroy internal dynamic thread pool '{}' for bean '{}'", executorHolder.getThreadPoolId(), beanName); + } + if (executorHolder.getExecutor() instanceof DynamicThreadPoolExecutor) { + ((DynamicThreadPoolExecutor) executorHolder.getExecutor()).destroy(); } - executor.destroy(); } catch (Exception e) { - log.warn("Failed to destroy internal dynamic thread pool '{}' for bean '{}'", executor.getThreadPoolId(), beanName); + log.warn("Failed to destroy internal dynamic thread pool '{}' for bean '{}'", executorHolder.getThreadPoolId(), beanName); } } } diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java index f38d5f51..f28a0df5 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java @@ -17,6 +17,8 @@ package cn.hippo4j.springboot.starter.support; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; @@ -25,17 +27,15 @@ import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.service.AbstractDynamicThreadPoolService; -import cn.hippo4j.message.dto.NotifyConfigDTO; -import cn.hippo4j.message.service.GlobalNotifyAlarmManage; -import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; -import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.core.DynamicThreadPoolSubscribeConfig; import cn.hippo4j.springboot.starter.notify.ServerModeNotifyConfigBuilder; import cn.hippo4j.springboot.starter.remote.HttpAgent; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.core.service.GlobalNotifyAlarmManage; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolNotifyAlarm; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -56,7 +56,7 @@ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolSer private final HttpAgent httpAgent; private final BootstrapProperties properties; private final ServerModeNotifyConfigBuilder serverModeNotifyConfigBuilder; - private final Hippo4jBaseSendMessageService hippo4jBaseSendMessageService; + private final ThreadPoolBaseSendMessageService threadPoolBaseSendMessageService; private final DynamicThreadPoolSubscribeConfig dynamicThreadPoolSubscribeConfig; @Override @@ -84,11 +84,9 @@ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolSer } ThreadPoolParameterInfo parameter = JSONUtil.parseObject(JSONUtil.toJSONString(registerParameter), ThreadPoolParameterInfo.class); ThreadPoolExecutor dynamicThreadPoolExecutor = buildDynamicThreadPoolExecutor(registerParameter); - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = DynamicThreadPoolWrapper.builder() - .threadPoolId(threadPoolId) - .executor(dynamicThreadPoolExecutor) - .build(); - GlobalThreadPoolManage.register(threadPoolId, parameter, dynamicThreadPoolWrapper); + ThreadPoolExecutorHolder executorHolder = new ThreadPoolExecutorHolder(threadPoolId, dynamicThreadPoolExecutor, null); + executorHolder.setParameterInfo(parameter); + ThreadPoolExecutorRegistry.putHolder(executorHolder); return dynamicThreadPoolExecutor; } @@ -104,7 +102,7 @@ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolSer registerParameter.getCapacityAlarm()); GlobalNotifyAlarmManage.put(registerParameter.getThreadPoolId(), threadPoolNotifyAlarm); Map> builderNotify = serverModeNotifyConfigBuilder.getAndInitNotify(CollectionUtil.newArrayList(registerParameter.getThreadPoolId())); - hippo4jBaseSendMessageService.putPlatform(builderNotify); + threadPoolBaseSendMessageService.putPlatform(builderNotify); } private void checkThreadPoolParameter(DynamicThreadPoolRegisterParameter registerParameter) { diff --git a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java index a83835a1..e2ea8e8f 100644 --- a/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/starters/threadpool/server/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -17,30 +17,31 @@ package cn.hippo4j.springboot.starter.support; -import cn.hippo4j.common.model.Result; -import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; -import cn.hippo4j.common.extension.enums.EnableEnum; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; +import cn.hippo4j.common.extension.enums.EnableEnum; +import cn.hippo4j.common.model.Result; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.ReflectUtil; +import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.DynamicThreadPool; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.adpter.DynamicThreadPoolAdapterChoose; import cn.hippo4j.core.toolkit.DynamicThreadPoolAnnotationUtil; -import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil; -import cn.hippo4j.message.service.GlobalNotifyAlarmManage; -import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.core.DynamicThreadPoolSubscribeConfig; import cn.hippo4j.springboot.starter.remote.HttpAgent; +import cn.hippo4j.threadpool.message.core.service.GlobalNotifyAlarmManage; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolNotifyAlarm; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; @@ -54,14 +55,14 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import static cn.hippo4j.common.constant.Constants.INITIAL_CAPACITY; -import static cn.hippo4j.common.constant.Constants.TP_ID; -import static cn.hippo4j.common.constant.Constants.ITEM_ID; -import static cn.hippo4j.common.constant.Constants.NAMESPACE; import static cn.hippo4j.common.constant.Constants.ACTIVE_ALARM; import static cn.hippo4j.common.constant.Constants.CAPACITY_ALARM; import static cn.hippo4j.common.constant.Constants.EXECUTE_TIME_OUT; import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT; +import static cn.hippo4j.common.constant.Constants.INITIAL_CAPACITY; +import static cn.hippo4j.common.constant.Constants.ITEM_ID; +import static cn.hippo4j.common.constant.Constants.NAMESPACE; +import static cn.hippo4j.common.constant.Constants.TP_ID; /** * Dynamic thread-pool post processor. @@ -100,37 +101,32 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { if ((dynamicThreadPoolExecutor) == null) { dynamicThreadPoolExecutor = (DynamicThreadPoolExecutor) bean; } - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = new DynamicThreadPoolWrapper(((DynamicThreadPoolExecutor) dynamicThreadPoolExecutor).getThreadPoolId(), dynamicThreadPoolExecutor); - ThreadPoolExecutor remoteThreadPoolExecutor = fillPoolAndRegister(dynamicThreadPoolWrapper); + ThreadPoolExecutor remoteThreadPoolExecutor = fillPoolAndRegister(((DynamicThreadPoolExecutor) dynamicThreadPoolExecutor).getThreadPoolId(), dynamicThreadPoolExecutor); DynamicThreadPoolAdapterChoose.replace(bean, remoteThreadPoolExecutor); - subscribeConfig(dynamicThreadPoolWrapper); + subscribeConfig(((DynamicThreadPoolExecutor) dynamicThreadPoolExecutor).getThreadPoolId()); return DynamicThreadPoolAdapterChoose.match(bean) ? bean : remoteThreadPoolExecutor; } - if (bean instanceof DynamicThreadPoolWrapper) { - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = (DynamicThreadPoolWrapper) bean; - registerAndSubscribe(dynamicThreadPoolWrapper); - } return bean; } /** * Register and subscribe. * - * @param dynamicThreadPoolWrapper dynamic thread-pool wrapper + * @param threadPoolId dynamic thread-pool id + * @param executor dynamic thread-pool executor */ - protected void registerAndSubscribe(DynamicThreadPoolWrapper dynamicThreadPoolWrapper) { - fillPoolAndRegister(dynamicThreadPoolWrapper); - subscribeConfig(dynamicThreadPoolWrapper); + protected void registerAndSubscribe(String threadPoolId, ThreadPoolExecutor executor) { + fillPoolAndRegister(threadPoolId, executor); + subscribeConfig(threadPoolId); } /** * Fill the thread pool and register. * - * @param dynamicThreadPoolWrapper dynamic thread-pool wrapper + * @param threadPoolId dynamic thread-pool id + * @param executor dynamic thread-pool executor */ - protected ThreadPoolExecutor fillPoolAndRegister(DynamicThreadPoolWrapper dynamicThreadPoolWrapper) { - String threadPoolId = dynamicThreadPoolWrapper.getThreadPoolId(); - ThreadPoolExecutor executor = dynamicThreadPoolWrapper.getExecutor(); + protected ThreadPoolExecutor fillPoolAndRegister(String threadPoolId, ThreadPoolExecutor executor) { Map queryStrMap = new HashMap<>(INITIAL_CAPACITY); queryStrMap.put(TP_ID, threadPoolId); queryStrMap.put(ITEM_ID, properties.getItemId()); @@ -170,7 +166,9 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { } catch (Exception ex) { log.error("Failed to initialize thread pool configuration. error message: {}", ex.getMessage()); } - GlobalThreadPoolManage.register(dynamicThreadPoolWrapper.getThreadPoolId(), threadPoolParameterInfo, dynamicThreadPoolWrapper); + ThreadPoolExecutorHolder executorHolder = new ThreadPoolExecutorHolder(threadPoolId, executor, null); + executorHolder.setParameterInfo(threadPoolParameterInfo); + ThreadPoolExecutorRegistry.putHolder(executorHolder); return executor; } @@ -211,11 +209,9 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { /** * Client dynamic thread pool subscription server configuration. * - * @param dynamicThreadPoolWrapper dynamic thread-pool wrapper + * @param threadPoolId thread-pool id */ - protected void subscribeConfig(DynamicThreadPoolWrapper dynamicThreadPoolWrapper) { - if (dynamicThreadPoolWrapper.isSubscribeFlag()) { - dynamicThreadPoolSubscribeConfig.subscribeConfig(dynamicThreadPoolWrapper.getThreadPoolId()); - } + protected void subscribeConfig(String threadPoolId) { + dynamicThreadPoolSubscribeConfig.subscribeConfig(threadPoolId); } } diff --git a/threadpool/core/pom.xml b/threadpool/core/pom.xml index c151fe60..1df9e3a9 100644 --- a/threadpool/core/pom.xml +++ b/threadpool/core/pom.xml @@ -24,6 +24,11 @@ hippo4j-threadpool-dynamic-api ${project.version} + + cn.hippo4j + hippo4j-threadpool-kernel-alarm + ${project.version} + org.springframework.boot spring-boot-starter-test diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java index c0917f50..596cfd0b 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolExecutor.java @@ -24,6 +24,7 @@ import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; import cn.hippo4j.core.executor.plugin.impl.ThreadPoolExecutorShutdownPlugin; import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginRegistrar; +import cn.hippo4j.threadpool.alarm.handler.DefaultThreadPoolCheckAlarmHandler; import lombok.Getter; import lombok.NonNull; import lombok.Setter; @@ -44,6 +45,8 @@ import static cn.hippo4j.common.constant.Constants.NO_REJECT_COUNT_NUM; /** * Enhanced dynamic and monitored thread pool. + * + * @see DefaultThreadPoolCheckAlarmHandler#buildAlarmNotifyRequest */ @Slf4j public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor implements DisposableBean { @@ -182,6 +185,7 @@ public class DynamicThreadPoolExecutor extends ExtensibleThreadPoolExecutor impl * Get reject count num. * * @return reject count num + * @see DefaultThreadPoolCheckAlarmHandler#buildAlarmNotifyRequest * @deprecated use {@link TaskRejectCountRecordPlugin} */ @Deprecated diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java index 7351055f..969d7123 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/DynamicThreadPoolWrapper.java @@ -32,11 +32,14 @@ import java.util.concurrent.ThreadPoolExecutor; /** * Dynamic thread-pool wrapper. + * + * @deprecated 2.0.0 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor +@Deprecated public class DynamicThreadPoolWrapper implements DisposableBean { /** diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java index 90e89567..40820e14 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java @@ -17,17 +17,10 @@ package cn.hippo4j.core.executor.manage; -import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; +import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.support.service.DynamicThreadPoolService; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadPoolExecutor; /** @@ -35,78 +28,6 @@ import java.util.concurrent.ThreadPoolExecutor; */ public class GlobalThreadPoolManage { - /** - * Dynamic thread pool parameter container. - */ - private static final Map POOL_PARAMETER = new ConcurrentHashMap(); - - /** - * Dynamic thread pool wrapper. - */ - private static final Map EXECUTOR_MAP = new ConcurrentHashMap(); - - /** - * Get the dynamic thread pool wrapper class. - * - * @param threadPoolId thread-pool id - * @return dynamic thread-pool wrapper - */ - public static DynamicThreadPoolWrapper getExecutorService(String threadPoolId) { - return EXECUTOR_MAP.get(threadPoolId); - } - - /** - * Get the dynamic thread pool wrapper class. - * - * @param threadPoolId thread-pool id - * @return thread-pool executor - */ - public static ThreadPoolExecutor getExecutor(String threadPoolId) { - return Optional.ofNullable(EXECUTOR_MAP.get(threadPoolId)).map(each -> each.getExecutor()).orElse(null); - } - - /** - * Get dynamic thread pool parameters. - * - * @param threadPoolId thread-pool id - * @return thread-pool parameter - */ - public static ThreadPoolParameter getPoolParameter(String threadPoolId) { - return POOL_PARAMETER.get(threadPoolId); - } - - /** - * Register dynamic thread pool wrapper and parameters. - * - * @param threadPoolId thread-pool id - * @param threadPoolParameter thread-pool parameter - * @param executor executor - */ - public static void register(String threadPoolId, ThreadPoolParameter threadPoolParameter, DynamicThreadPoolWrapper executor) { - registerPool(threadPoolId, executor); - registerPoolParameter(threadPoolId, threadPoolParameter); - } - - /** - * Register dynamic thread pool. - * - * @param threadPoolId thread-pool id - * @param executor executor - */ - public static void registerPool(String threadPoolId, DynamicThreadPoolWrapper executor) { - EXECUTOR_MAP.put(threadPoolId, executor); - } - - /** - * Register dynamic thread pool parameters. - * - * @param threadPoolId thread-pool id - * @param threadPoolParameter thread-pool parameter - */ - public static void registerPoolParameter(String threadPoolId, ThreadPoolParameter threadPoolParameter) { - POOL_PARAMETER.put(threadPoolId, threadPoolParameter); - } - /** * Dynamically register thread pool records and notification records. * @@ -116,24 +37,4 @@ public class GlobalThreadPoolManage { DynamicThreadPoolService dynamicThreadPoolService = ApplicationContextHolder.getBean(DynamicThreadPoolService.class); return dynamicThreadPoolService.registerDynamicThreadPool(registerWrapper); } - - /** - * Get the dynamic thread pool identifier collection. - * - * @return thread-pool id list - */ - public static List listThreadPoolId() { - return new ArrayList<>(EXECUTOR_MAP.keySet()); - } - - /** - * Get the number of dynamic thread pools. - *

The data may be inaccurate when the project is initially - * launched because registration is done asynchronously. - * - * @return thread-pool num - */ - public static Integer getThreadPoolNum() { - return listThreadPoolId().size(); - } } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java index 7a5f5c13..74801a86 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPlugin.java @@ -17,10 +17,10 @@ package cn.hippo4j.core.executor.plugin.impl; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; import cn.hippo4j.core.executor.plugin.RejectedAwarePlugin; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java index 8910d621..ee43b3e3 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPlugin.java @@ -17,9 +17,9 @@ package cn.hippo4j.core.executor.plugin.impl; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.core.executor.plugin.PluginRuntime; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NonNull; @@ -63,8 +63,8 @@ public class TaskTimeoutNotifyAlarmPlugin extends AbstractTaskTimerPlugin { /** * Create a {@link TaskTimeoutNotifyAlarmPlugin}. * - * @param threadPoolId thread pool id - * @param executeTimeOut execute time out + * @param threadPoolId thread pool id + * @param executeTimeOut execute time out * @param threadPoolExecutor thread pool executor */ public TaskTimeoutNotifyAlarmPlugin(String threadPoolId, Long executeTimeOut, ThreadPoolExecutor threadPoolExecutor) { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java index 33119193..89357f23 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandler.java @@ -17,8 +17,8 @@ package cn.hippo4j.core.executor.proxy; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java index 90b5f547..0066438e 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntime.java @@ -17,11 +17,11 @@ package cn.hippo4j.core.executor.state; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; -import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.common.toolkit.CalculateUtil; +import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -51,8 +51,8 @@ public abstract class AbstractThreadPoolRuntime { * @return thread-pool run state info */ public ThreadPoolRunStateInfo getPoolRunState(String threadPoolId) { - DynamicThreadPoolWrapper executorService = GlobalThreadPoolManage.getExecutorService(threadPoolId); - ThreadPoolExecutor pool = executorService.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + ThreadPoolExecutor pool = executorHolder.getExecutor(); return getPoolRunState(threadPoolId, pool); } diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandler.java b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandler.java index 20662aa6..8d27ef3f 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandler.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandler.java @@ -17,14 +17,14 @@ package cn.hippo4j.core.executor.state; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ManyThreadPoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.ByteConvertUtil; import cn.hippo4j.common.toolkit.MemoryUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.toolkit.inet.InetUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -61,8 +61,8 @@ public class ThreadPoolRunStateHandler extends AbstractThreadPoolRuntime { poolRunStateInfo.setMemoryProportion(memoryProportion); poolRunStateInfo.setFreeMemory(ByteConvertUtil.getPrintSize(Math.subtractExact(max, used))); String threadPoolId = poolRunStateInfo.getTpId(); - DynamicThreadPoolWrapper executorService = GlobalThreadPoolManage.getExecutorService(threadPoolId); - ThreadPoolExecutor pool = executorService.getExecutor(); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + ThreadPoolExecutor pool = executorHolder.getExecutor(); String rejectedName; rejectedName = pool.getRejectedExecutionHandler().getClass().getSimpleName(); poolRunStateInfo.setRejectedName(rejectedName); diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/extension/initialize/Hippo4jDynamicThreadPoolInitializer.java b/threadpool/core/src/main/java/cn/hippo4j/core/extension/initialize/Hippo4jDynamicThreadPoolInitializer.java new file mode 100644 index 00000000..0cb52af0 --- /dev/null +++ b/threadpool/core/src/main/java/cn/hippo4j/core/extension/initialize/Hippo4jDynamicThreadPoolInitializer.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.core.extension.initialize; + +import cn.hippo4j.common.propertie.EnvironmentProperties; +import cn.hippo4j.core.config.ApplicationContextHolder; +import cn.hippo4j.core.toolkit.IdentifyUtil; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.env.ConfigurableEnvironment; + +/** + * Hippo-4j dynamic thread-pool initializer. + *

+ * Compatible with SpringBoot Starter and Agent mode. + */ +public class Hippo4jDynamicThreadPoolInitializer implements InitializingBean { + + @Override + public void afterPropertiesSet() throws Exception { + // Environment initialize + ConfigurableEnvironment environment = ApplicationContextHolder.getBean(ConfigurableEnvironment.class); + EnvironmentProperties.active = environment.getProperty("spring.profiles.active", "UNKNOWN"); + EnvironmentProperties.itemId = environment.getProperty("spring.dynamic.thread-pool.item-id", ""); + EnvironmentProperties.applicationName = environment.getProperty("spring.application.name", ""); + EnvironmentProperties.checkStateInterval = environment.getProperty("spring.dynamic.thread-pool.check-state-interval", Long.class, 5L); + IdentifyUtil.getIdentify(); + // Check alarm + ThreadPoolCheckAlarm threadPoolCheckAlarm = ApplicationContextHolder.getBean(ThreadPoolCheckAlarm.class); + threadPoolCheckAlarm.scheduleExecute(); + } +} diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java index a267d91f..e0819b98 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/FileUtil.java @@ -20,13 +20,18 @@ package cn.hippo4j.core.toolkit; import lombok.SneakyThrows; import org.springframework.core.io.ClassPathResource; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; /** - * File util; + * File util. */ public class FileUtil { diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java index 3f6551b6..a9de2a43 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java @@ -17,6 +17,7 @@ package cn.hippo4j.core.toolkit; +import cn.hippo4j.common.propertie.IdentifyProperties; import cn.hippo4j.core.api.ClientNetworkService; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; @@ -36,17 +37,12 @@ import static cn.hippo4j.common.constant.Constants.IDENTIFY_SLICER_SYMBOL; /** * Identify util. */ -public class IdentifyUtil { +public class IdentifyUtil extends IdentifyProperties { static { ServiceLoaderRegistry.register(ClientNetworkService.class); } - /** - * Identify - */ - private static String identify; - /** * Client identification value */ @@ -65,8 +61,8 @@ public class IdentifyUtil { * @return identify */ public static synchronized String generate(ConfigurableEnvironment environment, InetUtils inetUtil) { - if (StringUtil.isNotBlank(identify)) { - return identify; + if (StringUtil.isNotBlank(IDENTIFY)) { + return IDENTIFY; } String[] customerNetwork = ServiceLoaderRegistry.getSingletonServiceInstances(ClientNetworkService.class) .stream().findFirst().map(each -> each.getNetworkIpPort(environment)).orElse(null); @@ -84,7 +80,7 @@ public class IdentifyUtil { + port + IDENTIFY_SLICER_SYMBOL + CLIENT_IDENTIFICATION_VALUE; - identify = identify; + IDENTIFY = identify; return identify; } @@ -94,7 +90,7 @@ public class IdentifyUtil { * @return identify */ public static String getIdentify() { - while (StringUtil.isBlank(identify)) { + while (StringUtil.isBlank(IDENTIFY)) { ConfigurableEnvironment environment = ApplicationContextHolder.getBean(ConfigurableEnvironment.class); InetUtils inetUtils = ApplicationContextHolder.getBean(InetUtils.class); if (environment != null && inetUtils != null) { @@ -103,7 +99,7 @@ public class IdentifyUtil { } ThreadUtil.sleep(SLEEP_TIME); } - return identify; + return IDENTIFY; } /** diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java index 01e699c4..aa35cdd0 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskRejectNotifyAlarmPluginTest.java @@ -17,11 +17,10 @@ package cn.hippo4j.core.executor.plugin.impl; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.executor.plugin.impl.TaskRejectNotifyAlarmPlugin; import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import lombok.Getter; import org.junit.Assert; import org.junit.Test; @@ -70,26 +69,26 @@ public class TaskRejectNotifyAlarmPluginTest { @Getter private final AtomicInteger numberOfAlarms = new AtomicInteger(0); + @Override public void checkPoolCapacityAlarm(String threadPoolId, ThreadPoolExecutor threadPoolExecutor) { // do noting } + @Override public void checkPoolActivityAlarm(String threadPoolId, ThreadPoolExecutor threadPoolExecutor) { // do noting } + @Override public void asyncSendRejectedAlarm(String threadPoolId) { numberOfAlarms.incrementAndGet(); } + @Override public void asyncSendExecuteTimeOutAlarm(String threadPoolId, long executeTime, long executeTimeOut, ThreadPoolExecutor threadPoolExecutor) { // do noting } - @Override - public void run(String... args) throws Exception { - - } } } diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java index a5aabe04..c8d6de43 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/plugin/impl/TaskTimeoutNotifyAlarmPluginTest.java @@ -17,11 +17,10 @@ package cn.hippo4j.core.executor.plugin.impl; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.executor.ExtensibleThreadPoolExecutor; -import cn.hippo4j.core.executor.plugin.impl.TaskTimeoutNotifyAlarmPlugin; import cn.hippo4j.core.executor.plugin.manager.DefaultThreadPoolPluginManager; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import lombok.Getter; import org.junit.Assert; import org.junit.Test; @@ -89,26 +88,26 @@ public class TaskTimeoutNotifyAlarmPluginTest { @Getter private final AtomicInteger numberOfAlarms = new AtomicInteger(0); + @Override public void checkPoolCapacityAlarm(String threadPoolId, ThreadPoolExecutor threadPoolExecutor) { // do noting } + @Override public void checkPoolActivityAlarm(String threadPoolId, ThreadPoolExecutor threadPoolExecutor) { // do noting } + @Override public void asyncSendRejectedAlarm(String threadPoolId) { // do noting } + @Override public void asyncSendExecuteTimeOutAlarm(String threadPoolId, long executeTime, long executeTimeOut, ThreadPoolExecutor threadPoolExecutor) { numberOfAlarms.incrementAndGet(); } - @Override - public void run(String... args) throws Exception { - - } } } diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java index 42a4286a..548c24a4 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/proxy/RejectedProxyInvocationHandlerTest.java @@ -17,9 +17,8 @@ package cn.hippo4j.core.executor.proxy; -import cn.hippo4j.core.api.ThreadPoolCheckAlarm; import cn.hippo4j.core.config.ApplicationContextHolder; -import cn.hippo4j.core.executor.proxy.RejectedProxyInvocationHandler; +import cn.hippo4j.threadpool.alarm.api.ThreadPoolCheckAlarm; import org.junit.Before; import org.junit.Test; import org.junit.jupiter.api.Assertions; @@ -29,6 +28,7 @@ import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.context.ApplicationContext; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.concurrent.atomic.AtomicLong; @@ -51,6 +51,7 @@ public class RejectedProxyInvocationHandlerTest { private RejectedProxyInvocationHandler handler; private AtomicLong rejectCount; + @Before public void setUp() { String threadPoolId = "test-pool"; diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java index 7ff7db6e..39ce899f 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/AbstractThreadPoolRuntimeTest.java @@ -17,19 +17,18 @@ package cn.hippo4j.core.executor.state; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import org.junit.Test; import org.junit.jupiter.api.Assertions; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + @RunWith(MockitoJUnitRunner.class) public class AbstractThreadPoolRuntimeTest { @@ -42,24 +41,15 @@ public class AbstractThreadPoolRuntimeTest { return threadPoolRunStateInfo; } }; - final String threadPoolId = "test"; DynamicThreadPoolExecutor executor = new DynamicThreadPoolExecutor( 1, 1, 1000L, TimeUnit.MILLISECONDS, 1000L, true, 1000L, new ArrayBlockingQueue<>(1), threadPoolId, Thread::new, new ThreadPoolExecutor.DiscardOldestPolicy()); - - DynamicThreadPoolWrapper dynamicThreadPoolWrapper = DynamicThreadPoolWrapper.builder() - .threadPoolId(threadPoolId) - .executor(executor) - .build(); - GlobalThreadPoolManage.registerPool(threadPoolId, dynamicThreadPoolWrapper); - + ThreadPoolExecutorRegistry.putHolder(threadPoolId, executor, null); ThreadPoolRunStateInfo threadPoolRunStateInfo = threadPoolRuntime.getPoolRunState(threadPoolId); Assertions.assertNotNull(threadPoolRunStateInfo); - threadPoolRunStateInfo = threadPoolRuntime.getPoolRunState(threadPoolId, executor); Assertions.assertNotNull(threadPoolRunStateInfo); } - } \ No newline at end of file diff --git a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandlerTest.java b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandlerTest.java index 782ba281..0251b6bc 100644 --- a/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandlerTest.java +++ b/threadpool/core/src/test/java/cn/hippo4j/core/executor/state/ThreadPoolRunStateHandlerTest.java @@ -17,14 +17,14 @@ package cn.hippo4j.core.executor.state; +import cn.hippo4j.common.executor.ThreadPoolExecutorHolder; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ManyThreadPoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.ByteConvertUtil; import cn.hippo4j.common.toolkit.MemoryUtil; import cn.hippo4j.common.toolkit.StringUtil; -import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -78,15 +78,15 @@ public class ThreadPoolRunStateHandlerTest { String threadPoolId = poolRunStateInfo.getTpId(); - try (final MockedStatic globalThreadPoolManage = mockStatic(GlobalThreadPoolManage.class)) { - globalThreadPoolManage.when(() -> GlobalThreadPoolManage.getExecutorService("1")).thenReturn(new DynamicThreadPoolWrapper()); - DynamicThreadPoolWrapper executorService = GlobalThreadPoolManage.getExecutorService(threadPoolId); - Assertions.assertNotNull(executorService); + try (final MockedStatic globalThreadPoolManage = mockStatic(ThreadPoolExecutorRegistry.class)) { + globalThreadPoolManage.when(() -> ThreadPoolExecutorRegistry.getHolder("1")).thenReturn(new ThreadPoolExecutorHolder()); + ThreadPoolExecutorHolder executorHolder = ThreadPoolExecutorRegistry.getHolder(threadPoolId); + Assertions.assertNotNull(executorHolder); } - DynamicThreadPoolWrapper dynamicThreadPoolWrapperMock = mock(DynamicThreadPoolWrapper.class); - when(dynamicThreadPoolWrapperMock.getExecutor()).thenReturn(new ThreadPoolExecutor(2, 2, 2000, TimeUnit.SECONDS, new SynchronousQueue<>())); - ThreadPoolExecutor pool = dynamicThreadPoolWrapperMock.getExecutor(); + ThreadPoolExecutorHolder threadPoolExecutorHolderMock = mock(ThreadPoolExecutorHolder.class); + when(threadPoolExecutorHolderMock.getExecutor()).thenReturn(new ThreadPoolExecutor(2, 2, 2000, TimeUnit.SECONDS, new SynchronousQueue<>())); + ThreadPoolExecutor pool = threadPoolExecutorHolderMock.getExecutor(); Assertions.assertNotNull(pool); String rejectedName; @@ -123,5 +123,4 @@ public class ThreadPoolRunStateHandlerTest { ByteConvertUtil.getPrintSize(max)); Assertions.assertEquals("Allocation: 54.87MB / Maximum available: 7.98GB", memoryProportion); } - } diff --git a/threadpool/message/pom.xml b/threadpool/message/pom.xml index 3bb64281..d767b29b 100644 --- a/threadpool/message/pom.xml +++ b/threadpool/message/pom.xml @@ -16,25 +16,9 @@ ${project.version} - commons-codec - commons-codec - - - org.springframework.boot - spring-boot-starter-test - test + cn.hippo4j + hippo4j-threadpool-message-core + ${project.version} - - - - - src/main/resources - - **/*.txt - **/*.json - - - - diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/config/MessageConfiguration.java b/threadpool/message/src/main/java/cn/hippo4j/message/config/MessageConfiguration.java index e495cfe4..1deda548 100644 --- a/threadpool/message/src/main/java/cn/hippo4j/message/config/MessageConfiguration.java +++ b/threadpool/message/src/main/java/cn/hippo4j/message/config/MessageConfiguration.java @@ -17,14 +17,13 @@ package cn.hippo4j.message.config; -import cn.hippo4j.message.api.NotifyConfigBuilder; -import cn.hippo4j.message.platform.DingSendMessageHandler; -import cn.hippo4j.message.platform.LarkSendMessageHandler; -import cn.hippo4j.message.platform.WeChatSendMessageHandler; -import cn.hippo4j.message.service.AlarmControlHandler; -import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; -import cn.hippo4j.message.service.Hippo4jSendMessageService; -import cn.hippo4j.message.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.core.platform.DingSendMessageHandler; +import cn.hippo4j.threadpool.message.core.platform.LarkSendMessageHandler; +import cn.hippo4j.threadpool.message.core.platform.WeChatSendMessageHandler; +import cn.hippo4j.threadpool.message.core.service.AlarmControlHandler; +import cn.hippo4j.threadpool.message.core.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; import org.springframework.context.annotation.Bean; /** @@ -33,9 +32,14 @@ import org.springframework.context.annotation.Bean; public class MessageConfiguration { @Bean - public Hippo4jSendMessageService hippo4jSendMessageService(NotifyConfigBuilder serverNotifyConfigBuilder, - AlarmControlHandler alarmControlHandler) { - return new Hippo4jBaseSendMessageService(serverNotifyConfigBuilder, alarmControlHandler); + public ThreadPoolBaseSendMessageService threadPoolSendMessageService(AlarmControlHandler alarmControlHandler) { + return new ThreadPoolBaseSendMessageService(alarmControlHandler); + } + + @Bean + public ThreadPoolBaseSendMessageServiceInitializer threadPoolBaseSendMessageServiceInitializer(NotifyConfigBuilder notifyConfigBuilder, + ThreadPoolBaseSendMessageService threadPoolBaseSendMessageService) { + return new ThreadPoolBaseSendMessageServiceInitializer(notifyConfigBuilder, threadPoolBaseSendMessageService); } @Bean diff --git a/threadpool/message/src/main/java/cn/hippo4j/message/config/ThreadPoolBaseSendMessageServiceInitializer.java b/threadpool/message/src/main/java/cn/hippo4j/message/config/ThreadPoolBaseSendMessageServiceInitializer.java new file mode 100644 index 00000000..2513cf06 --- /dev/null +++ b/threadpool/message/src/main/java/cn/hippo4j/message/config/ThreadPoolBaseSendMessageServiceInitializer.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package cn.hippo4j.message.config; + +import cn.hippo4j.core.config.ApplicationContextHolder; +import cn.hippo4j.threadpool.message.api.NotifyConfigBuilder; +import cn.hippo4j.threadpool.message.api.NotifyConfigDTO; +import cn.hippo4j.threadpool.message.core.service.SendMessageHandler; +import cn.hippo4j.threadpool.message.core.service.ThreadPoolBaseSendMessageService; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.CommandLineRunner; + +import java.util.List; +import java.util.Map; + +@RequiredArgsConstructor +public class ThreadPoolBaseSendMessageServiceInitializer implements CommandLineRunner { + + private final NotifyConfigBuilder notifyConfigBuilder; + private final ThreadPoolBaseSendMessageService threadPoolBaseSendMessageService; + + @Override + public void run(String... args) throws Exception { + Map sendMessageHandlerMap = + ApplicationContextHolder.getBeansOfType(SendMessageHandler.class); + sendMessageHandlerMap.values().forEach(each -> threadPoolBaseSendMessageService.getSendMessageHandlers().put(each.getType(), each)); + Map> buildNotify = notifyConfigBuilder.buildNotify(); + threadPoolBaseSendMessageService.getNotifyConfigs().putAll(buildNotify); + } +} diff --git a/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractDynamicThreadPoolMonitor.java b/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractDynamicThreadPoolMonitor.java index 2e8a77ac..7b55f155 100644 --- a/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractDynamicThreadPoolMonitor.java +++ b/threadpool/monitor/base/src/main/java/cn/hippo4j/monitor/base/AbstractDynamicThreadPoolMonitor.java @@ -17,8 +17,8 @@ package cn.hippo4j.monitor.base; +import cn.hippo4j.common.executor.ThreadPoolExecutorRegistry; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; -import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import javax.annotation.Resource; @@ -41,7 +41,7 @@ public abstract class AbstractDynamicThreadPoolMonitor implements DynamicThreadP @Override public void collect() { - List listDynamicThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); + List listDynamicThreadPoolId = ThreadPoolExecutorRegistry.listThreadPoolExecutorId(); listDynamicThreadPoolId.forEach(each -> execute(threadPoolRunStateHandler.getPoolRunState(each))); } } From b1e181d5b24509b74b51938e54752b132c7b535d Mon Sep 17 00:00:00 2001 From: magestack Date: Fri, 9 Jun 2023 21:49:17 +0800 Subject: [PATCH 57/58] Fix alarm notification asynchronous thread pool factory error (#1377) --- .../alarm/handler/DefaultThreadPoolCheckAlarmHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java index 9bf93f81..f4b7710f 100644 --- a/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java +++ b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java @@ -75,8 +75,10 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC private final AtomicInteger count = new AtomicInteger(); @Override - public Thread newThread(Runnable r) { - return new Thread("client.execute.timeout.alarm_" + count.incrementAndGet()); + public Thread newThread(Runnable runnable) { + Thread thread = new Thread(runnable, "client.execute.timeout.alarm_" + count.incrementAndGet()); + thread.setDaemon(true); + return thread; } }, new ThreadPoolExecutor.AbortPolicy()); From d3e76ff6682027e288595c59fc2e4f0ac2320bf2 Mon Sep 17 00:00:00 2001 From: zjHe <34431616+zjHe@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:26:55 +0800 Subject: [PATCH 58/58] @EnableDynamicThreadPool controls MicrometerMonitorAutoConfiguration (#1380) --- .../elasticsearch/ElasticSearchMonitorAutoConfiguration.java | 3 +++ .../monitor/local/log/LocalLogMonitorAutoConfiguration.java | 2 ++ .../monitor/micrometer/MicrometerMonitorAutoConfiguration.java | 2 ++ 3 files changed, 7 insertions(+) diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java index 73954005..c5b2e2f0 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java @@ -18,9 +18,11 @@ package cn.hippo4j.springboot.starter.monitor.elasticsearch; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.elasticsearch.AdapterThreadPoolElasticSearchMonitorHandler; import cn.hippo4j.monitor.elasticsearch.DynamicThreadPoolElasticSearchMonitorHandler; import cn.hippo4j.monitor.elasticsearch.WebThreadPoolElasticSearchMonitorHandler; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; @@ -30,6 +32,7 @@ import org.springframework.context.annotation.Configuration; * Elastic-search monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('elasticsearch')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class ElasticSearchMonitorAutoConfiguration { diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java index ae6e50d3..01394baa 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java @@ -19,6 +19,7 @@ package cn.hippo4j.springboot.starter.monitor.local.log; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.local.log.AdapterThreadPoolLocalLogMonitorHandler; import cn.hippo4j.monitor.local.log.DynamicThreadPoolLocalLogMonitorHandler; import cn.hippo4j.monitor.local.log.WebThreadPoolLocalLogMonitorHandler; @@ -32,6 +33,7 @@ import org.springframework.context.annotation.Configuration; * Local log monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('log')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class LocalLogMonitorAutoConfiguration { diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java index 02ea862e..5946a2c1 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java @@ -19,6 +19,7 @@ package cn.hippo4j.springboot.starter.monitor.micrometer; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.micrometer.AdapterThreadPoolMicrometerMonitorHandler; import cn.hippo4j.monitor.micrometer.DynamicThreadPoolMicrometerMonitorHandler; import cn.hippo4j.monitor.micrometer.WebThreadPoolMicrometerMonitorHandler; @@ -32,6 +33,7 @@ import org.springframework.context.annotation.Configuration; * Micrometer monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('micrometer')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class MicrometerMonitorAutoConfiguration {