From f23669f1746ecb7d64a46cd18d8a80d54fdc160f Mon Sep 17 00:00:00 2001 From: Miroslav Bauer Date: Thu, 24 Nov 2022 11:06:13 +0000 Subject: [PATCH 01/23] react three next version of meshdirectory --- .devcontainer/devcontainer.json | 47 + .devcontainer/docker-compose.yml | 38 + .editorconfig | 11 + .eslintignore | 3 + .eslintrc | 8 + .gitignore | 53 +- .prettierignore | 7 + .prettierrc | 19 + .vscode/settings.json | 1 + Dockerfile | 7 + LICENSE | 221 +- README.md | 66 +- babel.config.js | 5 - demo/preview.png | Bin 324840 -> 0 bytes demo/providers.json | 460 - dist/css/app.bbd6e6b5.css | 1 - dist/css/chunk-6c78f41b.6e5d0d98.css | 1 - dist/css/chunk-vendors.501fb1dc.css | 5 - dist/icons/favicon-128x128.png | Bin 2926 -> 0 bytes dist/icons/favicon-16x16.png | Bin 416 -> 0 bytes dist/icons/favicon-32x32.png | Bin 771 -> 0 bytes dist/icons/favicon-96x96.png | Bin 2299 -> 0 bytes dist/icons/favicon.png | Bin 12045 -> 0 bytes dist/index.html | 1 - dist/js/app.1f1c457e.js | 2 - dist/js/app.1f1c457e.js.map | 1 - dist/js/chunk-6c78f41b.b10b230d.js | 2 - dist/js/chunk-6c78f41b.b10b230d.js.map | 1 - dist/js/chunk-vendors.64ef7f8c.js | 17 - dist/js/chunk-vendors.64ef7f8c.js.map | 1 - docker-compose.yaml | 18 + example/groups.json | 140 + example/revad.toml | 37 + example/tmp/reva/localhomefs.db | Bin 0 -> 36864 bytes example/tmp/reva/ocm-invites.json | 1 + example/tmp/reva/ocm-shares.json | 1 + example/tmp/reva/publicshares | 1 + example/tmp/reva/shares.json | 1 + example/users.json | 50 + go.mod | 3 - jsconfig.json | 10 + meshdirectory_web.go | 16 - next.config.js | 75 + package.json | 95 +- postcss.config.js | 6 + {dist => public/icons}/favicon.ico | Bin .../img/logo-dark-bg.svg | 2 +- .../img/logo.svg | 2 +- public/index.html | 38 - public/manifest.json | 17 + public/robots.txt | 3 + sandbox.config.json | 8 + src/App.vue | 123 - src/assets/data/europe.geo.json | 1 - src/assets/data/europe.hires.geo.json | 1 - src/assets/data/providers.loc.json | 74 - src/assets/images/document-text-outline.svg | 1 - src/assets/images/enter-outline.svg | 1 - src/assets/images/logo-sciencemesh.svg | 1 - src/assets/images/logo-white.png | Bin 41349 -> 0 bytes src/assets/images/project-logo.svg | 1 - src/assets/images/seo-image.png | Bin 195217 -> 0 bytes src/components/LinkInvalid.vue | 37 - src/components/LoadingSpinner.vue | 29 - src/components/MeshFooter.vue | 145 - src/components/MeshMap.vue | 250 - src/components/Navbar.vue | 74 - src/components/NavbarLinks.vue | 113 - src/components/ProviderSelect.vue | 401 - src/components/canvas/Blob.jsx | 19 + src/components/canvas/Logo.jsx | 35 + src/components/canvas/Scene.jsx | 15 + src/components/dom/AcceptInvite.jsx | 61 + src/components/dom/ErrorBanner.jsx | 13 + src/components/dom/Footer.jsx | 59 + src/components/dom/Layout.jsx | 22 + src/components/dom/MobileMenu.jsx | 50 + src/components/dom/NavLink.jsx | 27 + src/components/dom/Navbar.jsx | 47 + src/components/dom/ProviderSelect.jsx | 161 + src/config.jsx | 58 + src/css/_index.scss | 61 - src/css/_variables.scss | 11 - src/css/animations.scss | 29 - src/main.js | 26 - src/pages/404.jsx | 5 + src/pages/_app.jsx | 27 + src/pages/_error.jsx | 58 + src/pages/blob.jsx | 20 + src/pages/index.jsx | 104 + src/styles/index.css | 26 + src/templates/Scroll.jsx | 76 + src/templates/Shader/Shader.jsx | 36 + src/templates/Shader/glsl/shader.frag | 8 + src/templates/Shader/glsl/shader.vert | 5 + src/templates/hooks/useLocalStorageState.js | 148 + src/templates/hooks/usePostprocess.jsx | 103 + src/use/breakpoints.js | 14 - src/use/fetch.js | 19 - src/use/map.js | 176 - src/use/providers.js | 116 - src/use/query.js | 18 - src/util.js | 78 + tailwind.config.js | 28 + vue.config.js | 3 - yarn.lock | 10980 ++++++---------- 106 files changed, 5967 insertions(+), 9529 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .vscode/settings.json create mode 100644 Dockerfile delete mode 100644 babel.config.js delete mode 100644 demo/preview.png delete mode 100644 demo/providers.json delete mode 100644 dist/css/app.bbd6e6b5.css delete mode 100644 dist/css/chunk-6c78f41b.6e5d0d98.css delete mode 100644 dist/css/chunk-vendors.501fb1dc.css delete mode 100644 dist/icons/favicon-128x128.png delete mode 100644 dist/icons/favicon-16x16.png delete mode 100644 dist/icons/favicon-32x32.png delete mode 100644 dist/icons/favicon-96x96.png delete mode 100644 dist/icons/favicon.png delete mode 100644 dist/index.html delete mode 100644 dist/js/app.1f1c457e.js delete mode 100644 dist/js/app.1f1c457e.js.map delete mode 100644 dist/js/chunk-6c78f41b.b10b230d.js delete mode 100644 dist/js/chunk-6c78f41b.b10b230d.js.map delete mode 100644 dist/js/chunk-vendors.64ef7f8c.js delete mode 100644 dist/js/chunk-vendors.64ef7f8c.js.map create mode 100644 docker-compose.yaml create mode 100644 example/groups.json create mode 100644 example/revad.toml create mode 100644 example/tmp/reva/localhomefs.db create mode 100755 example/tmp/reva/ocm-invites.json create mode 100755 example/tmp/reva/ocm-shares.json create mode 100644 example/tmp/reva/publicshares create mode 100755 example/tmp/reva/shares.json create mode 100644 example/users.json delete mode 100644 go.mod create mode 100644 jsconfig.json delete mode 100644 meshdirectory_web.go create mode 100644 next.config.js create mode 100644 postcss.config.js rename {dist => public/icons}/favicon.ico (100%) rename dist/img/project-logo.f710a49c.svg => public/img/logo-dark-bg.svg (99%) rename dist/img/logo-sciencemesh.59cc7159.svg => public/img/logo.svg (99%) delete mode 100644 public/index.html create mode 100644 public/manifest.json create mode 100644 public/robots.txt create mode 100644 sandbox.config.json delete mode 100644 src/App.vue delete mode 100644 src/assets/data/europe.geo.json delete mode 100644 src/assets/data/europe.hires.geo.json delete mode 100644 src/assets/data/providers.loc.json delete mode 100644 src/assets/images/document-text-outline.svg delete mode 100644 src/assets/images/enter-outline.svg delete mode 100644 src/assets/images/logo-sciencemesh.svg delete mode 100644 src/assets/images/logo-white.png delete mode 100644 src/assets/images/project-logo.svg delete mode 100644 src/assets/images/seo-image.png delete mode 100644 src/components/LinkInvalid.vue delete mode 100644 src/components/LoadingSpinner.vue delete mode 100644 src/components/MeshFooter.vue delete mode 100644 src/components/MeshMap.vue delete mode 100644 src/components/Navbar.vue delete mode 100644 src/components/NavbarLinks.vue delete mode 100644 src/components/ProviderSelect.vue create mode 100644 src/components/canvas/Blob.jsx create mode 100644 src/components/canvas/Logo.jsx create mode 100644 src/components/canvas/Scene.jsx create mode 100644 src/components/dom/AcceptInvite.jsx create mode 100644 src/components/dom/ErrorBanner.jsx create mode 100644 src/components/dom/Footer.jsx create mode 100644 src/components/dom/Layout.jsx create mode 100644 src/components/dom/MobileMenu.jsx create mode 100644 src/components/dom/NavLink.jsx create mode 100644 src/components/dom/Navbar.jsx create mode 100644 src/components/dom/ProviderSelect.jsx create mode 100644 src/config.jsx delete mode 100644 src/css/_index.scss delete mode 100644 src/css/_variables.scss delete mode 100644 src/css/animations.scss delete mode 100644 src/main.js create mode 100644 src/pages/404.jsx create mode 100644 src/pages/_app.jsx create mode 100644 src/pages/_error.jsx create mode 100644 src/pages/blob.jsx create mode 100644 src/pages/index.jsx create mode 100644 src/styles/index.css create mode 100644 src/templates/Scroll.jsx create mode 100644 src/templates/Shader/Shader.jsx create mode 100644 src/templates/Shader/glsl/shader.frag create mode 100644 src/templates/Shader/glsl/shader.vert create mode 100644 src/templates/hooks/useLocalStorageState.js create mode 100644 src/templates/hooks/usePostprocess.jsx delete mode 100644 src/use/breakpoints.js delete mode 100644 src/use/fetch.js delete mode 100644 src/use/map.js delete mode 100644 src/use/providers.js delete mode 100644 src/use/query.js create mode 100644 src/util.js create mode 100644 tailwind.config.js delete mode 100644 vue.config.js diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..fb7cccf --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,47 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/docker-existing-docker-compose +// If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml. +{ + "name": "Mesh Directory", + + // Update the 'dockerComposeFile' list if you have more compose files or use different names. + // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make. + "dockerComposeFile": ["../docker-compose.yaml", "docker-compose.yml"], + + // The 'service' property is the name of the service for the container that VS Code should + // use. Update this value and .devcontainer/docker-compose.yml to the real service name. + "service": "node", + + // The optional 'workspaceFolder' property is the path VS Code should open by default when + // connected. This is typically a file mount in .devcontainer/docker-compose.yml + "workspaceFolder": "/app", + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "formulahendry.auto-rename-tag", + "VisualStudioExptTeam.vscodeintellicode", + "wix.vscode-import-cost", + "naumovs.color-highlight", + "mrmlnc.vscode-attrs-sorter", + "bradlc.vscode-tailwindcss" + ] + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [3000, 19000], + + // Uncomment the next line if you want start specific services in your Docker Compose config. + // "runServices": [], + + // Uncomment the next line if you want to keep your containers running after VS Code shuts down. + // "shutdownAction": "none", + + // Uncomment the next line to run commands after the container is created - for example installing curl. + "postCreateCommand": "yarn run dev", + + // Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "node" +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000..d9bbdf8 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3' +services: + # Update this to the name of the service you want to work with in your docker-compose.yml file + node: + # If you want add a non-root user to your Dockerfile, you can use the "remoteUser" + # property in devcontainer.json to cause VS Code its sub-processes (terminals, tasks, + # debugging) to execute as the user. Uncomment the next line if you want the entire + # container to run as this user instead. Note that, on Linux, you may need to + # ensure the UID and GID of the container user you create matches your local user. + # See https://aka.ms/vscode-remote/containers/non-root for details. + # + user: node + + # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer + # folder. Note that the path of the Dockerfile and context is relative to the *primary* + # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile" + # array). The sample below assumes your primary file is in the root of your project. + # + # build: + # context: . + # dockerfile: .devcontainer/Dockerfile + + volumes: + # Update this to wherever you want VS Code to mount the folder of your project + - .:/app:cached + # - ../src:/app/src + # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details. + # - /var/run/docker.sock:/var/run/docker.sock + + # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust. + # cap_add: + # - SYS_PTRACE + # security_opt: + # - seccomp:unconfined + + # Overrides default command so things don't shut down after the process ends. + command: /bin/sh -c "while sleep 1000; do :; done" + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c1ac02e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 + +[{*.json,.*.yml}] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..422c391 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +.next +dist +node_modules/ diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..65cf70e --- /dev/null +++ b/.eslintrc @@ -0,0 +1,8 @@ +{ + "extends": ["next", "prettier", "plugin:tailwind/recommended"], + "rules": { + "import/prefer-default-export": "off", + "no-console": "warn", + "no-var": "error" + } +} diff --git a/.gitignore b/.gitignore index eefda47..3de3a94 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,42 @@ -.DS_Store -node_modules -#/dist +# dependencies +/node_modules +# testing +/coverage -# local env files -.env.local -.env.*.local +# next.js +/.next/ +/out/ + +# production +/build -# Log files +# misc +.DS_Store +*.pem + +# debug npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel + +# next-pwa +/public/workbox-*.js +/public/sw.js + +# prefer yarn than npm +package-lock.json + +report.*.json + +# .vscode Debugging +.vscode/*-debug-profile diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7613cd0 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +build/* +dist/* +public/* +.next/* +node_modules/* +package.json +*.log diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..31ff7f6 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,19 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxSingleQuote": true, + "jsxBracketSameLine": true, + "printWidth": 120, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..da5aa1c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM node:16 + +WORKDIR /app +COPY . . +RUN yarn + +CMD ["yarn", "run", "dev"] diff --git a/LICENSE b/LICENSE index 261eeb9..ef5fd18 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,20 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. +Copyright (c) 2012-2021 Scott Chacon and others + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 02b0bf6..ee61779 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,3 @@ # meshdirectory-web -![image](demo/preview.png) - -A web frontend SPA for the Science Mesh Directory service written in Vue 3. - -## Development - -### Project setup -``` -yarn install -``` - -### Compiles and hot-reloads for development -``` -yarn serve -``` - -### Compiles and minifies for production -``` -yarn build -``` - -### Lints and fixes files -``` -yarn lint -``` - -## Usage - -To use this frontend in your GOlang projects, run the following: -``` -go get github.com/sciencemesh/meshdirectory-web -``` - -And serve the SPA distribution in your HTTP handler, e.g.: -```go -package mypackage -import ( - "net/http" - "log" - "github.com/sciencemesh/meshdirectory-web" -) - -func Handler() http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - return ServeMeshDirectorySPA(w, r) - } -} - -func main() { - http.Handle("/", Handler()) - log.Fatal(http.ListenAndServe(":8080", nil)) -} -``` - -Finally try to access the Mesh Directory frontend by opening the following url in your browser: -``` -http://localhost:8080/?token=xyz&providerDomain=cesnet.cz -``` - -## Credits - -- Custom GeoJSON map data was generated using the [GeoJSON Maps](https://geojson-maps.ash.ms/) service. - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). +This project was bootstrapped with [`create-r3f-app`](https://github.com/utsuboco/create-r3f-app) \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e955840..0000000 --- a/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/demo/preview.png b/demo/preview.png deleted file mode 100644 index 6555a5a69ab08c1cec5bc69c45f29210cc7d46b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324840 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⪚H)-#>%qAl@{bU^b+!t7c3xhPm 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
wT9!IQ>-Sr|nhhyXeo0gd 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�F9p028YA!~`v)(3xnrZ2U}Jh@_)Pl_5! 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 B&P@OS diff --git a/demo/providers.json b/demo/providers.json deleted file mode 100644 index c59aea4..0000000 --- a/demo/providers.json +++ /dev/null @@ -1,460 +0,0 @@ -[ - { - "name": "WWU", - "full_name": "University of Muenster", - "description": "University of Muenster ScienceMesh Test", - "organization": "WWU Muenster", - "domain": "uni-muenster.de", - "homepage": "http://www.uni-muenster.de", - "email": "daniel.mueller@uni-muenster.de", - "services": [ - { - "host": "sciencemesh-test.uni-muenster.de", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh-test.uni-muenster.de - REVAD", - "path": "https://sciencemesh-test.uni-muenster.de/api", - "is_monitored": true, - "properties": { - "API_VERSION": "0.1.0", - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "9600", - "METRICS_PATH": "/api/metrics" - } - }, - "api_version": "0.1.0" - }, - { - "host": "sciencemesh-test.uni-muenster.de", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh-test.uni-muenster.de - OCM", - "path": "https://sciencemesh-test.uni-muenster.de/api/ocm" - } - }, - { - "host": "sciencemesh-test.uni-muenster.de", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh-test.uni-muenster.de - Webdav", - "path": "https://sciencemesh-test.uni-muenster.de/api/remote.php/webdav/" - } - }, - { - "host": "sciencemesh-test.uni-muenster.de", - "endpoint": { - "type": { - "name": "GATEWAY", - "description": "CS3 Gateway Service" - }, - "name": "sciencemesh-test.uni-muenster.de - GATEWAY", - "path": "sciencemesh-test.uni-muenster.de:9600" - } - } - ], - "properties": { - "AUTHORIZED": "true", - "ORGANIZATION": "WWU Muenster" - } - }, - { - "name": "CESNET", - "full_name": "CESNET a.l.e.", - "description": "CESNET ScienceMesh Test", - "organization": "CESNET a.l.e.", - "domain": "cesnet.cz", - "homepage": "https://www.cesnet.cz/", - "email": "du-support@cesnet.cz", - "services": [ - { - "host": "sciencemesh.cesnet.cz", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh.cesnet.cz - OCM", - "path": "https://sciencemesh.cesnet.cz/iop/ocm" - } - }, - { - "host": "sciencemesh.cesnet.cz", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh.cesnet.cz - REVAD", - "path": "https://sciencemesh.cesnet.cz/iop", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443", - "METRICS_PATH": "/iop/metrics" - } - } - }, - { - "host": "sciencemesh.cesnet.cz", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh.cesnet.cz - Webdav", - "path": "https://sciencemesh.cesnet.cz/iop/remote.php/webdav/" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "CERN", - "full_name": "CERN", - "description": "CERN ScienceMesh", - "organization": "CERN", - "domain": "cern.ch", - "homepage": "https://home.cern/", - "email": "cernbox-service-ops@cern.ch", - "services": [ - { - "host": "sciencemesh.cernbox.cern.ch", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh.cernbox.cern.ch - REVAD", - "path": "https://sciencemesh.cernbox.cern.ch/iop", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443", - "METRICS_PATH": "/iop/metrics" - } - } - }, - { - "host": "sciencemesh.cernbox.cern.ch", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh.cernbox.cern.ch - OCM", - "path": "https://sciencemesh.cernbox.cern.ch/iop/ocm" - } - }, - { - "host": "sciencemesh.cernbox.cern.ch", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh.cernbox.cern.ch - Webdav", - "path": "https://sciencemesh.cernbox.cern.ch/iop/remote.php/webdav/" - } - }, - { - "host": "sciencemesh.cernbox.cern.ch", - "endpoint": { - "type": { - "name": "GATEWAY", - "description": "CS3 Gateway Service" - }, - "name": "sciencemesh.cernbox.cern.ch - GATEWAY", - "path": "https://sciencemesh.cernbox.cern.ch" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "SURFSARA", - "full_name": "SURFSARA", - "description": "Surfsara ScienceMesh", - "organization": "SURFSARA", - "domain": "surfsara.nl", - "homepage": "https://www.surf.nl/en", - "email": "thirsa.deboer@surf.nl", - "services": [ - { - "host": "app.cs3mesh-iop.k8s.surfsara.nl", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "app.cs3mesh-iop.k8s.surfsara.nl - REVAD", - "path": "https://app.cs3mesh-iop.k8s.surfsara.nl/iop", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443", - "METRICS_PATH": "/iop/metrics" - } - } - }, - { - "host": "app.cs3mesh-iop.k8s.surfsara.nl", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "app.cs3mesh-iop.k8s.surfsara.nl - OCM", - "path": "https://app.cs3mesh-iop.k8s.surfsara.nl/iop/ocm" - } - }, - { - "host": "app.cs3mesh-iop.k8s.surfsara.nl", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "app.cs3mesh-iop.k8s.surfsara.nl - Webdav", - "path": "https://app.cs3mesh-iop.k8s.surfsara.nl/iop/remote.php/webdav/" - } - }, - { - "host": "app.cs3mesh-iop.k8s.surfsara.nl", - "endpoint": { - "type": { - "name": "GATEWAY", - "description": "CS3 Gateway Service" - }, - "name": "app.cs3mesh-iop.k8s.surfsara.nl - GATEWAY", - "path": "https://app.cs3mesh-iop.k8s.surfsara.nl" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "CUBBIT", - "full_name": "CUBBIT", - "description": "Cubbit ScienceMesh", - "organization": "CUBBIT", - "domain": "cubbit.io", - "homepage": "http://www.cubbit.io", - "email": "hello@cubbit.io", - "services": [ - { - "host": "sciencemesh.cubbit.io", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh.cubbit.io - REVAD", - "path": "https://sciencemesh.cubbit.io", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443" - } - } - }, - { - "host": "sciencemesh.cubbit.io", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh.cubbit.io - OCM", - "path": "https://sciencemesh.cubbit.io/ocm" - } - }, - { - "host": "sciencemesh.cubbit.io", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh.cubbit.io - Webdav", - "path": "https://sciencemesh.cubbit.io/remote.php/webdav/" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "AILLERON", - "full_name": "Ailleron/Softwaremind", - "description": "Ailleron ScienceMesh", - "organization": "Ailleron/Softwaremind", - "domain": "softwaremind.com", - "homepage": "https://softwaremind.com/", - "email": "dawid.golosz@softwaremind.com", - "services": [ - { - "host": "sciencemesh.softwaremind.com", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh.softwaremind.com - REVAD", - "path": "https://sciencemesh.softwaremind.com/iop/", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443", - "METRICS_PATH": "/iop/metrics" - } - } - }, - { - "host": "sciencemesh.softwaremind.com", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh.softwaremind.com - OCM", - "path": "https://sciencemesh.softwaremind.com/iop/ocm" - } - }, - { - "host": "sciencemesh.softwaremind.com", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh.softwaremind.com - Webdav", - "path": "https://sciencemesh.softwaremind.com/iop/remote.php/webdav/" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "SWITCH", - "full_name": "SWITCH", - "description": "SWITCHdrive provides cloud storage to its students, faculty and researchers.", - "organization": "SWITCH", - "domain": "switch.ch", - "homepage": "https://switch.ch", - "email": "fergus.kerins@switch.ch", - "services": [ - { - "host": "sciencemesh-test.switch.ch", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "sciencemesh-test.switch.ch - REVAD", - "path": "https://sciencemesh-test.switch.ch/iop/", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "443", - "METRICS_PATH": "/iop/metrics" - } - } - }, - { - "host": "sciencemesh-test.switch.ch", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "sciencemesh-test.switch.ch - OCM", - "path": "https://sciencemesh-test.switch.ch/iop/ocm/" - } - }, - { - "host": "sciencemesh-test.switch.ch", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "sciencemesh-test.switch.ch - Webdav", - "path": "https://sciencemesh-test.switch.ch/iop/remote.php/webdav/" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - }, - { - "name": "DTU", - "full_name": "Danmarks Tekniske Universitet", - "description": "DTU ScienceMesh", - "organization": "Danmarks Tekniske Universitet", - "domain": "dtu.dk", - "homepage": "https://www.dtu.dk", - "email": "marpap@dtu.dk", - "services": [ - { - "host": "cs3mesh.sciencedata.dk:20001", - "endpoint": { - "type": { - "name": "REVAD", - "description": "Reva Daemon Service" - }, - "name": "cs3mesh.sciencedata.dk - REVAD", - "path": "http://cs3mesh.sciencedata.dk:20001", - "is_monitored": true, - "properties": { - "ENABLE_HEALTH_CHECKS": "true", - "GRPC_PORT": "19000" - } - } - }, - { - "host": "cs3mesh.sciencedata.dk:20001", - "endpoint": { - "type": { - "name": "Webdav", - "description": "Web Distributed Authoring and Versioning Service" - }, - "name": "cs3mesh.sciencedata.dk - Webdav", - "path": "http://cs3mesh.sciencedata.dk:20001/remote.php/webdav/" - } - }, - { - "host": "cs3mesh.sciencedata.dk:20001", - "endpoint": { - "type": { - "name": "OCM", - "description": "OpenCloudMesh Service" - }, - "name": "cs3mesh.sciencedata.dk - OCM", - "path": "http://cs3mesh.sciencedata.dk:20001/ocm" - } - } - ], - "properties": { - "AUTHORIZED": "true" - } - } -] diff --git a/dist/css/app.bbd6e6b5.css b/dist/css/app.bbd6e6b5.css deleted file mode 100644 index adc4947..0000000 --- a/dist/css/app.bbd6e6b5.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);.nav[data-v-317ef896]{background-color:hsla(0,0%,100%,.9)}.nav__md .row[data-v-317ef896]{flex-direction:row;background:hsla(0,0%,100%,.9);justify-content:start;padding:2em 2em 2em 4em}.nav__lg .wrapper[data-v-317ef896]{padding:2em 2em 2em 10em}.wrapper a[data-v-317ef896]{display:block;padding:0 1em;color:#fff}.row[data-v-317ef896]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2em}.row .app-title[data-v-317ef896]{margin:1rem 0 1rem 0;font-size:2rem;letter-spacing:.13rem;font-weight:700;color:#454a54}.row .logo[data-v-317ef896]{background:url(../img/logo-sciencemesh.59cc7159.svg) no-repeat;width:190px;height:70px}h1[data-v-4342b242]{font-size:8rem}h3[data-v-4342b242]{font-size:2rem}.not-found[data-v-4342b242]{display:flex;flex-direction:column;justify-content:center;height:100%}.not-found .wrapper[data-v-4342b242]{letter-spacing:.3rem;padding-top:10rem;padding-bottom:10rem}@-webkit-keyframes marching-ants-4be4a566{0%[data-v-4be4a566]{stroke-dashoffset:0}to[data-v-4be4a566]{stroke-dashoffset:1000}}@keyframes marching-ants-4be4a566{0%[data-v-4be4a566]{stroke-dashoffset:0}to[data-v-4be4a566]{stroke-dashoffset:1000}}@-webkit-keyframes staggered-opacity-4be4a566{0%[data-v-4be4a566]{opacity:0}to[data-v-4be4a566]{opacity:.5}}@keyframes staggered-opacity-4be4a566{0%[data-v-4be4a566]{opacity:0}to[data-v-4be4a566]{opacity:.5}}@-webkit-keyframes spin-4be4a566{to[data-v-4be4a566]{-webkit-transform:rotate(1turn)}}@keyframes spin-4be4a566{to[data-v-4be4a566]{transform:rotate(1turn)}}.loading[data-v-4be4a566]{position:relative;width:100%;height:100%}.loading .loading-spinner[data-v-4be4a566]{display:block;font-size:5rem;position:absolute;left:50%;margin:1rem auto 0 -2.5rem;animation:"spin" 1s ease-in-out infinite;-moz-animation:"spin" 1s ease-in-out infinite;-webkit-animation:"spin" 1s ease-in-out infinite;-o-animation:"spin" 1s ease-in-out infinite;-ms-animation:"spin" 1s ease-in-out infinite}svg[data-v-808a9ede]{display:none}.provider-details[data-v-808a9ede]{background:#23252a;width:100%;height:100%;max-height:0;display:flex;flex-direction:column;justify-content:space-between;position:absolute;top:0;left:0;overflow:hidden;z-index:999;transition:max-height .3s ease-out;border-radius:3px}.provider-details .provider-title[data-v-808a9ede]{padding-top:0}.provider-details .provider-detail-label[data-v-808a9ede]{padding:1rem 0 0 0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05rem;opacity:.6}.provider-details .provider-detail-home[data-v-808a9ede]{color:#1f91cc}.provider-details .close-btn[data-v-808a9ede]{padding:0 .5rem .2rem .5rem;position:absolute;top:10px;right:20px;font-weight:700;font-size:2rem;color:#686f7e}.provider-details .close-btn[data-v-808a9ede]:hover{background:#fff;border-radius:150px;transition:all .4s ease-in-out}.provider-details .text-description[data-v-808a9ede]{padding:1em 1em 1em 1em}.provider-details .accept-btn[data-v-808a9ede]{font-size:1.2em;font-weight:700;letter-spacing:.2em;padding:2rem 0 2rem 0;background:#df810a;color:#f5f5f5}.provider-details .accept-btn[data-v-808a9ede]:hover{background:#965707}.provider-details__open[data-v-808a9ede]{padding:2rem 0 0 0;max-height:100%}.provider-details__md[data-v-808a9ede]{background:#0b3347}.provider-details__md .close-btn[data-v-808a9ede]{color:#686f7e}#scroll-container[data-v-808a9ede]{overflow:hidden;max-width:100%;margin:auto;position:relative;min-height:200px;z-index:0}#scroll-container .scroll-icon[data-v-808a9ede]{display:inline-block;position:absolute;left:49%;transform:scaleX(1.3)}#scroll-container .scroll-icon__top[data-v-808a9ede]{top:25px}#scroll-container .scroll-icon__bottom[data-v-808a9ede]{bottom:25px}.wrap-container[data-v-808a9ede]{width:100%;height:100%;top:0;left:0;position:relative;max-height:300px;max-width:100%;margin:auto;overflow:auto;-webkit-mask:url(#masking);mask:url(#masking);-webkit-mask-image:-webkit-gradient(linear,left bottom,left top,color-stop(.1,transparent),color-stop(.5,#000),color-stop(.9,transparent))}.wrap-container.provider-details__open[data-v-808a9ede]{-webkit-mask:unset;mask:unset;-webkit-mask-image:unset}#scroll-container[data-v-808a9ede]::-webkit-scrollbar,.ul-scroll[data-v-808a9ede]::-webkit-scrollbar,.wrap-container[data-v-808a9ede]::-webkit-scrollbar{display:none}#scroll-container[data-v-808a9ede],.ul-scroll[data-v-808a9ede],.wrap-container[data-v-808a9ede]{-ms-overflow-style:none;scrollbar-width:none;height:100%}.wrap-container ul[data-v-808a9ede]{list-style:none;position:relative;transition:transform .3s;top:50px}.wrap-container ul[data-v-808a9ede],.wrap-container ul li[data-v-808a9ede]{margin:0;padding:0;text-align:center}.wrap-container ul li[data-v-808a9ede]{height:50px;line-height:50px;transition:transform .3s;overflow:hidden;font-size:.9em;cursor:pointer}.wrap-container ul li.provider-details__open[data-v-808a9ede]{cursor:none;height:100%}.wrap-container ul li[data-v-808a9ede]:first-of-type{margin-top:150px}.wrap-container ul li:first-of-type.provider-details__open[data-v-808a9ede]{margin-top:0}.wrap-container ul li[data-v-808a9ede]:last-of-type{padding-bottom:150px}.wrap-container ul li:last-of-type.provider-details__open[data-v-808a9ede]{padding-bottom:0}.wrap-container ul li.active .item[data-v-808a9ede]{transform:scale(1.9)}.active[data-v-808a9ede]{opacity:1;color:#fff;border-bottom:1px solid #072331;border-radius:10px;font-weight:700}.wrap-container ul li .item[data-v-808a9ede]{position:relative;text-wrap:normal;transition:transform .2s;display:inline-block}.bg-primary-blue[data-v-258d5688]{background-color:#1f91cc}.bg-primary-grey[data-v-258d5688]{background-color:#454a54}.text-title[data-v-258d5688]{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description[data-v-258d5688]{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title[data-v-258d5688]{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body[data-v-258d5688]{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul[data-v-258d5688]{list-style-type:none}a[data-v-258d5688]{text-decoration:none}img[data-v-258d5688]{width:100%}#app[data-v-258d5688]{height:100%}.center-align[data-v-258d5688]{margin:auto}.container[data-v-258d5688]{background:#2e3138;color:#abb0ba;text-align:center;padding:2.5em;opacity:.6}.container .footer-logo[data-v-258d5688]{filter:drop-shadow(2px 2px 6px black);background:url(../img/project-logo.f710a49c.svg) no-repeat;width:300px;height:160px}.container .footer-resource-links[data-v-258d5688]{color:#fff;padding-bottom:1.2em}.container .footer-resource-links h4[data-v-258d5688]{font-weight:700;letter-spacing:.1em;padding:.3em 0 .7em 0;font-size:1.1em}.container .footer-resource-links a[data-v-258d5688]{color:unset;text-decoration:underline}.container .footer-resource-links ul li[data-v-258d5688]{justify-content:flex-start;padding:.4em 0 .4em 0}.container .footer-resource-links ul li .link-icon[data-v-258d5688]{margin-right:.7em}.container .funding a[data-v-258d5688]{color:#fff;text-decoration:underline}.container__md .row[data-v-258d5688]{display:flex;flex-direction:row;justify-content:space-around}.container__md .footer-resource-links[data-v-258d5688]{text-align:left}.container__md .footer-resource-links ul li[data-v-258d5688]{display:grid;grid-template-columns:25% auto}.container__md .col[data-v-258d5688]{display:flex;flex-direction:column}.links-header[data-v-77527f7a]{display:none}.links-header__md[data-v-77527f7a]{background:#e9e7e3;padding:2em 4em 2em 2em;display:flex;flex-direction:row;align-items:center}.links-header__md .row[data-v-77527f7a]{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.links-header__md ul[data-v-77527f7a]{display:flex;justify-content:space-between;width:7em;float:right}.links-header__md ul li[data-v-77527f7a]{cursor:pointer;color:#fff;background:#c77309;margin:0 .3em 0 1em;padding:.5em .2em .5em .2em;border-radius:25px;display:inline-block;opacity:.7;height:100%}.links-header__md ul li[data-v-77527f7a]:hover{background:#2b2823}.links-header__md ul li.outlined[data-v-77527f7a]{background:#554f45}.links-header__md ul li.outlined[data-v-77527f7a]:hover{background:#1c1001}.links-header__md ul a[data-v-77527f7a]{color:#fff;line-height:1;height:100%;padding:.6rem 1.2rem .4rem .9rem;display:block}.links-header__md ul .link-label[data-v-77527f7a]{display:inline-block;align-self:center;font-weight:700;font-size:.8rem;padding-left:.8rem;vertical-align:super;letter-spacing:.11rem}.bg-primary-blue{background-color:#1f91cc}.bg-primary-grey{background-color:#454a54}.text-title{font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.text-description{font-family:Calibri,Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol}.provider-title{padding:2rem 0 2rem 0;font-size:2rem;letter-spacing:.05rem;opacity:.6}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;width:100vw;font-family:Roboto,-apple-system,BlinkMacSystemFont,segoe ui,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;font-style:normal;font-size:1rem}ul{list-style-type:none}a{text-decoration:none}img{width:100%}#app{height:100%}.main{background:#454a54;overflow:hidden;transition:background-color 1s}.main .subtitle{padding:3rem 0 1rem 0;font-size:1.1rem}.main .hero{padding-bottom:5rem;filter:drop-shadow(0 5px 5px #23252a)}.main__md{background:#3a3e46}.main__md .nav-container{filter:drop-shadow(0 0 5px #0c0c0e)}.main__md .hero,.main__md .nav-container{display:grid;grid-template-columns:66% auto}.main__md .hero{background:#1c81b6;padding:0}.main__md .hero .meshselect{background:#15628a;padding:0 2em 0 2em}.hero{display:grid}.full,.hero{color:#fff;text-align:center;height:100%} \ No newline at end of file diff --git a/dist/css/chunk-6c78f41b.6e5d0d98.css b/dist/css/chunk-6c78f41b.6e5d0d98.css deleted file mode 100644 index 92602df..0000000 --- a/dist/css/chunk-6c78f41b.6e5d0d98.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;700&display=swap);@-webkit-keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@keyframes marching-ants{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}@-webkit-keyframes staggered-opacity{0%{opacity:0}to{opacity:.5}}@keyframes staggered-opacity{0%{opacity:0}to{opacity:.5}}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}.map-container{position:relative;min-height:350px}.mesh-map{display:block;max-width:100%;overflow:hidden;background-color:#1f91cc;opacity:1;background:radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent),radial-gradient(circle,transparent 20%,#1f91cc 0,#1f91cc 80%,transparent 0,transparent) 30px 30px,linear-gradient(#15628a 2.4px,transparent 0) 0 -1.2px,linear-gradient(90deg,#15628a 2.4px,#1f91cc 0) -1.2px 0;background-size:23px 33px,33px 23px}.mesh-map .mesh-states{stroke:#1872a0;stroke-width:2;stroke-dasharray:.5em;fill:#0b3347;filter:drop-shadow(12px 12px 13px #125273)}.mesh-map .provider{fill:#fff;stroke-width:2;stroke:transparent;transition:stroke .3s linear}.mesh-map .provider:hover{stroke:hsla(0,0%,100%,.3)}.mesh-map .provider__button{fill:transparent;cursor:pointer}.mesh-map .provider__tooltip{fill:transparent}.mesh-map .provider__originator{fill:#df810a;transform:scaleZ(2);stroke:hsla(0,0%,100%,.3)}.mesh-map .provider-connector{fill:none;opacity:.8;stroke:#abdaf2;stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 8;pointer-events:none;z-index:-1}.mesh-map .provider-connector path{opacity:0;-webkit-animation-name:staggered-opacity;animation-name:staggered-opacity;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-delay:calc(var(--animation-order)*2200ms);animation-delay:calc(var(--animation-order)*2200ms);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:59;animation-iteration-count:59;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-fill-mode:both;animation-fill-mode:both}.mesh-map .provider-connector__active{stroke-width:8px;opacity:1;stroke:#fff;stroke-dasharray:10 4;stroke-linecap:butt;-webkit-animation-delay:0s;animation-delay:0s;animation:marching-ants 50s linear 1s infinite;-moz-animation:marching-ants 50s linear 1s infinite;-webkit-animation:marching-ants 50s linear 1s infinite;-o-animation:marching-ants 50s linear 1s infinite;-ms-animation:marching-ants 50s linear 1s infinite}.mesh-map .marker-fade-enter-active,.mesh-map .marker-fade-leave-active{transition:opacity .3s linear}.mesh-map .marker-fade-enter,.mesh-map .marker-fade-leave-to{opacity:0}.mesh-map .marker{fill:#df810a;stroke:#341e02;stroke-width:3;cursor:pointer;transition:opacity .3s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:inset 0 0 10px #000}.mesh-map .marker>*{transition:transform .3s cubic-bezier(.6,0,.5,1)}.mesh-map .marker path{filter:drop-shadow(1px 5px 3px #17191c)}.mesh-map .marker text{stroke:none;fill:#fff;font-family:inherit;font-weight:700;font-size:.8rem}.mesh-map .marker__origin{fill:#1f91cc;stroke:#072331;pointer-events:none;cursor:pointer}.mesh-map .marker__origin path,.mesh-map .marker__origin text{transform:scale(.7)}.mesh-map .marker__current{opacity:.6}.mesh-map .marker__current>*{transform:scale(.8)}.map-help{padding:15px;background-color:#454a54;position:absolute;left:0;bottom:0;font-size:smaller;display:block;border-top-right-radius:5px;opacity:.8}.map-help .fa-info-circle{margin-right:1em} \ No newline at end of file diff --git a/dist/css/chunk-vendors.501fb1dc.css b/dist/css/chunk-vendors.501fb1dc.css deleted file mode 100644 index adfab2b..0000000 --- a/dist/css/chunk-vendors.501fb1dc.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * ress.css • v3.0.0 - * MIT License - * github.com/filipelinhares/ress - */html{box-sizing:border-box;-webkit-text-size-adjust:100%;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer;color:inherit}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}img{border-style:none}progress{vertical-align:baseline}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default} \ No newline at end of file diff --git a/dist/icons/favicon-128x128.png b/dist/icons/favicon-128x128.png deleted file mode 100644 index 7b586b8da7ca8a3060eeb8b6685f2706ffbb31e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2926 zcmV-!3z77RP)C00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#a!^cEMMrQe{dR6j~nKuS|TN>e{dQvi_8KT1l)l&H$0lKT1e{dQvi_70FcfA zksnsrbJ0cN0=qF_Sq7q$d$u4{0kz#U?tlpJ>U29qtwW*@nRHk%gc!WpeVzh^l-XX zj#?XbiI!W0_0^&A#R`YKb58GA61qSn%ZMVkRu?t@B7LB{@X1;-TAsr~^Y=3}G#vlo z4B@jialqtiiACT%s?`KnPZ;Lhw*^8Jw!aJk_;yx?Pp8LuinlC70ayU8a3C`8`OCQ# z(@k%-064av%mm=7XlxX0$-sZltDfX0k9|)aEPoju){do$Dv(-ML6XI z0MdbUsmu=XKH7(etSk$aL&B$%6dG4iO`nPK7#SbpNpuutx#r_bAY>NjzSa>h51B0V zeCi3g3Z#9dO7Dv6G4B!{{3DIWZGh*O!^&%)BMprOCQCpAlcTG^t;8YznGn&97Nan6 zFCU#jlG2?wdYT@kLNKZ$R-04^C;j6$lVqL$xeEb>N*!2v99=@nIzVwAL!D$qk3Nc( zcd`*PFgZ;TByUYAkOO2kpnPJ`0~7&e&flBag0|XfZLiVb`W-3ls>8P@*0`xbZke!$ zUQI!tvW^9EI?7dm-E`pHI-l7ukXD0(D@n#3^wXPY1;AOC*xJy>1T4?5U{klvTKza4FHIA%qp%deq-em!(o1uy1F$8pf(9yadqBR zd{qfSS+=#sDF85)ly>C*9|8@(mR)Ic7{HZv89fuyURnQy01qdj!2M#k!x-=aVjw8= z?SUgCriK65-dfy?i_&D~!9)fEvn#;hSsv0?A;3f4p6U7_l~yM*AP)A0AmBC^AcW~_ zyIT&9-whAWz0SlG2G}*XqO5LNfG5M`h21S*Wp%+6@r+)=$D~*>z^*H9d69aWz_Yos zKrIzrKMu?sOc8CIfqG^6D4fov&~E^rboTz#h6q|re&{G_GIX)PXG=R-`?_KI8MTPtvUlD$9=-+A&J2JTfvz3eh33;0AV3}`G& z^tEgz11+7cj01%Fkn*Px$ngW&ntpM|*=z<3ghMG>N=vzZqD(k^j9m@WjRVc${8!!utU2N0Ki07&AdaRGw&SQey>MI>_kPAcd#{^Gu%4}g1$0oQe_ zT~C>AWZ`{=~F#E(48w#(!tG`cXc)gGFgho`C=fi%PbKBIG}p;Cv>~8xC#PXFmZ6O9f`uGbBPwfy9yMyN@)2fx4|WVpQdtuo&&I!0f2ca7y?-W za{qn$Gy|~gUyZT@1%WK`4}f4P223nK1VjSiXg&T8G@Lkz%}yVfB9 z#Yt=K;tX)j007|N5S6PafIoixJ_Am&3fTYzzqX1&(`Xd<8L$roG%rQZva^6_~iMBpxSN_fR2Woe*yrvwDu_5uTH1NT{s%v zF<|)|HzqnEfV|9g7tROn0q9^v9FQ?$AowH$Dj4D9&#gyPe~fTZ1}GLZr=P0z$+M1x zpJ9NTa7+%NJfcB|cr72uM#C{RE@j+f09PJ&MgXDe`Q+DpH{@0#)ZvVg&MCanRG4rH z8j1xzM&s{uE6(%tf%Xu^&@qxkZ#M0;t&DHB)fpJzT8hsv<^x#dic59ibU$$WLFk@M zx7+5sZvp@aNC_!FueP(i0N)g4QlCdl2ky+xNwl)iFxQ3@_`1osNXZZK$Q`7 zp_2_AAHY}E&V9khRGl;f&CjW7ni=^3m6c5Uf{ro`yJ~H|tx#O-T!kH@J8EMzDeA zaWow0T}9coD~-vT3y7nFw#j=`iXK^osN1 zq6=X+XZ4;lK(>bsx1cTHCo>PHnVy|q2PSG`jeh~$GoacVUDp_#>6IS5a^S92B*ou8 z%_9a#_uA%BK&`VEPayzl>7ld6pl^*&^8vEGYxj_J{&5b29LesriY_;f^uP`8X~Pos zzrKSoB~w0_IEOy$yDhoUyt zc*B5NuDWRT3v`da>s%-qR!{;8Qf~}hD|J+k730Zo zrF+`;-g*$L7udS<3=r6&eWt&CQLb09s5{#e;R2`OI(gMLR$kPZb!C~ghDNQtbfIs* z-X%Az>sm3^p7f~goO8b1Hx7GU;^6+99BBI4fh``%gOI#b4f{Lksn YU)-yUPuzicrT_o{07*qoM6N<$g2)tP^#A|> diff --git a/dist/icons/favicon-16x16.png b/dist/icons/favicon-16x16.png deleted file mode 100644 index f15d6627ec0f004b02c37fd435c63f3c483cf6b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM*t#0G|+7zk~#PuV4`J46^kOck~Fb2}-c`4hM=jxCMd5L+rgn?7f04f)X9P z!79Cj9Xtc=y?}zjPVT-86V9^Ee!wvC0)NALN1srjxUF{>P`yayVuq<#875s|nETA$ zE0m${jI_ z65>nZjX}Oz*njrsF$|K3}iS}tubCFC@liQ&!x?a8y6 zu1{RXnE%C9e$CdWTaC|z|1;xP=gvD<=zi!v*QDULGi`o~i80+<*}*z-<&A6l7YtGh zp9UVD%VPRGna@^RZw=G+>U)6!b~dt?)2sMQxU>2B*6;CNs9EXn^y-*lI6IqTlb$hO u?7G#R&#P`L{!lvI6;x#X;^) z4C~IxyaaOQ1o(uwx)=CZhbB3C1=}Mb-^fT$|8OUdAbYP6ptyrKimbgSNDzXUCSPEf zaE@WZSs>Th!xy9&CIu4jI}MWZ4rc5>ZRZu@;28jv)k~^jn0SU^%2l9ZhW^tG{bv~Z z&$|c5xdui%`h+@og*f?zGfch8u;>}f)nYNAJ9SHf{DK*{l&-xw`je4aG-vONkMn&l zI7W9`%C7mjLa%)5y>;ETN1p{f3=3_T7560lv%u6@%u9ftJ>%)(7-Dg{baHm}W(A%$ z=BUo7^IO&5Ccdp&`+ir$j{pDfv#kxg`|Fb<=T1*KCx!|>MhT0kvwCH}k~khN7inGS zZvCxEK*M0EF7t=vDCR{!w%)E`y4CetXW5$g>NNIwDJxIEQDV9tI<3IE`j`2_X_Hpv zOpI;MI+_b z%;!}qE95zJF5SJ;TeLg#72BPvRhyqhotyOWVD8jUvt}*Zytsbjw1ZrHnfgn&9r{KE0f2B zFXsE|^_O2&bFwvrH(WiCciQ$J{{|_$F!qGc;SEODtFqRz8M-*gXjSG3Y4kshXx`iJ z@b!S}Y1#CMZF||G+g&{ZFU7AnEP43&AItY-Df9T*rypCC{5`tx#GWqegmo(eOimZP zP~39<($dYDI?Njs7X31+wcNI=?qa}>ulJaQbq?&0%@Uq{EQojIA#tYoJ$c%;p;}KS b-?dkE)yxXqb+aFsAQ(Jd{an^LB{Ts5V?ay> diff --git a/dist/icons/favicon-96x96.png b/dist/icons/favicon-96x96.png deleted file mode 100644 index 4bc1093e480db6d998976132929e635427124600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2299 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 diff --git a/dist/icons/favicon.png b/dist/icons/favicon.png deleted file mode 100644 index 3ae2f62c9555f247087fbc4a432ae420314040f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12045 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 Directory | ScienceMesh

\ No newline at end of file diff --git a/dist/js/app.1f1c457e.js b/dist/js/app.1f1c457e.js deleted file mode 100644 index 5389c6f..0000000 --- a/dist/js/app.1f1c457e.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var a,c,o=t[0],l=t[1],u=t[2],s=0,d=[];sc.internalProviders.length/3]]),Object(a["i"])("div",{ref:"wrapScroll",class:[[c.detailsExpanded?"provider-details__open":""],"wrap-container"],style:{maxHeight:"".concat(n.wrapHeight,"px"),minHeight:"".concat(n.wrapHeight,"px")}},[Object(a["i"])("ul",P,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.internalProviders,(function(e,t){var n;return Object(a["z"])((Object(a["p"])(),Object(a["f"])("li",{key:e.name,ref:function(e){e&&(c.providerOptions[t]=e)},class:[e.name===(null===(n=c.target)||void 0===n?void 0:n.name)?"active":""],onClick:function(t){return c.showDetails(e)}},[Object(a["i"])("span",N,Object(a["v"])(e.full_name),1)],10,["onClick"])),[[a["w"],!c.detailsExpanded]])})),128))],512),Object(a["i"])("div",{class:[[c.detailsExpanded?"provider-details__open":"",c.md?"provider-details__md":""],"provider-details"]},[Object(a["i"])("div",D,[Object(a["i"])("button",{onClick:t[1]||(t[1]=function(){return c.closeDetails&&c.closeDetails.apply(c,arguments)})},[I])]),Object(a["i"])("div",B,[Object(a["i"])("p",A,Object(a["v"])(null===(o=c.target)||void 0===o?void 0:o.full_name),1),Object(a["i"])("p",null,Object(a["v"])(null===(l=c.target)||void 0===l?void 0:l.description),1),U,Object(a["i"])("p",null,Object(a["v"])(null===(u=c.target)||void 0===u?void 0:u.organization),1),null!==(s=c.target)&&void 0!==s&&s.homepage?(Object(a["p"])(),Object(a["f"])("a",{key:0,href:null===(d=c.target)||void 0===d?void 0:d.homepage,class:"provider-detail-home",target:"_new"},Object(a["v"])(c.target.homepage),9,["href"])):Object(a["g"])("",!0)]),Object(a["i"])("a",{href:c.targetLink,class:"accept-btn"},"Accept",8,["href"])],2)],6),Object(a["z"])(Object(a["i"])(b,{class:"scroll-icon scroll-icon__bottom",icon:"angle-down"},null,512),[[a["w"],c.scrollIndex0&&p.value){var e=g.value/p.value.clientHeight;return Math.round(e*Math.abs(w.value.length))}return 0}));function x(e){return w.value.findIndex((function(t){return t.name===e.name}))}function L(e){var t=k.value[e];t&&h(t.clientTop+t.offsetTop)}function S(e){L(x(e))}function C(){S(n.value)}function E(e){c(e),e.name===(null===n||void 0===n?void 0:n.value.name)&&(o.value=!0)}function T(){u(),Object(a["m"])((function(){C()}))}return Object(a["n"])((function(){k.value=[]})),Object(a["o"])((function(){o.value||Object(a["m"])((function(){L(Math.floor(w.value.length/2))}))})),Object(a["x"])([n],(function(){C()})),Object(a["x"])([w],(function(){Object(a["m"])((function(){L(Math.floor(w.value.length/2))}))})),Object(a["x"])([g],(function(){var e;if(!o.value)if(f.value)f.value=!1;else{var t=w.value[_.value];t&&t.name!==(null===(e=n.value)||void 0===e?void 0:e.name)&&c(t)}})),{internalProviders:w,target:n,scrollTop:g,wrapScroll:p,scrollIndex:_,providerOptions:k,providerFilter:y,detailsExpanded:o,expandDetails:l,hideDetails:u,showDetails:E,closeDetails:T,targetLink:i,md:b,loaded:s}}};n("4da7");q.render=M,q.__scopeId="data-v-808a9ede";var F=q,z=Object(a["B"])("data-v-258d5688");Object(a["r"])("data-v-258d5688");var G={class:"row"},J=Object(a["i"])("div",{class:"col"},[Object(a["i"])("div",{class:"footer-logo center-align"})],-1),W={class:"footer-resource-links col-md-3 col-xs-12"},$=Object(a["i"])("h4",null,"Resources",-1),K=Object(a["i"])("div",{class:"row"},[Object(a["i"])("div",{class:"col center-align funding"},[Object(a["i"])("p",null,[Object(a["i"])("a",{href:"https://cs3mesh4eosc.eu/",target:"_new"},"CS3MESH4EOSC"),Object(a["h"])(" has received funding from the European Union's Horizon 2020 research and innovation programme under the Grant Agreement no 863353 ")])])],-1);Object(a["q"])();var Y=z((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("footer",null,[Object(a["i"])("div",{class:[[c.md?"container__md":""],"container"]},[Object(a["i"])("div",G,[J,Object(a["i"])("div",W,[$,Object(a["i"])("ul",null,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.resourcesLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name},[Object(a["i"])(o,{class:"link-icon",icon:e.icon},null,8,["icon"]),Object(a["i"])("a",{href:e.target,target:"_new"},Object(a["v"])(e.name),9,["href"])])})),128))])])]),K],2)])})),Q={name:"MeshFooter",setup:function(){var e=m(),t=e.md,n=Object(a["s"])([{name:"GitHub",target:"https://github.com/sciencemesh/sciencemesh",icon:["fab","github"]},{name:"Gitter",target:"https://gitter.im/sciencemesh/community",icon:["fab","gitter"]},{name:"Documentation",target:"https://developer.sciencemesh.io/docs/",icon:"book"},{name:"Deploy",target:"https://developer.sciencemesh.io/docs/iop/deployment/",icon:"rocket"}]);return{md:t,resourcesLinks:n}}};n("cd3c");Q.render=Y,Q.__scopeId="data-v-258d5688";var V=Q,X=Object(a["B"])("data-v-77527f7a");Object(a["r"])("data-v-77527f7a");var Z={class:"row"},ee={class:"row"},te={class:"link-label"};Object(a["q"])();var ne=X((function(e,t,n,c,i,r){var o=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",{class:[[c.md?"links-header__md":"",c.lg?"links-header__lg":""],"links-header"]},[Object(a["i"])("ul",Z,[(Object(a["p"])(!0),Object(a["f"])(a["a"],null,Object(a["t"])(c.navLinks,(function(e){return Object(a["p"])(),Object(a["f"])("li",{key:e.name,class:e.class},[Object(a["i"])("a",{href:e.target,target:"_new"},[Object(a["i"])("div",ee,[Object(a["i"])(o,{icon:e.icon},null,8,["icon"]),Object(a["i"])("span",te,Object(a["v"])(e.name),1)])],8,["href"])],2)})),128))])],2)})),ae={name:"NavbarLinks",setup:function(){var e=m(),t=e.md,n=e.lg,c=Object(a["s"])([{icon:"sign-in-alt",name:"JOIN",target:"https://developer.sciencemesh.io/docs/how-to-join-sciencemesh/",class:""},{icon:"book",name:"DOCS",target:"https://developer.sciencemesh.io/docs/",class:"outlined"}]);return{md:t,lg:n,navLinks:c}}};n("52d0");ae.render=ne,ae.__scopeId="data-v-77527f7a";var ce=ae,ie=Object(a["j"])((function(){return n.e("chunk-6c78f41b").then(n.bind(null,"eb22"))})),re={name:"App",components:{NavbarLinks:ce,MeshFooter:V,ProviderSelect:F,LinkInvalid:S,Navbar:h,MeshMap:ie},setup:function(){var e=Object(v["a"])(),t=e.fetchProviders,n=e.fetchLocations,a=e.providers,c=e.originator,i=Object(k["a"])(),r=i.validLink,o=i.baseUrl,l=m(),u=l.md,s=l.lg;return t("".concat(o.value,"providers")),n(),{originator:c,validLink:r,providers:a,md:u,lg:s}}};n("6682");re.render=b;var oe=re,le=n("ecee"),ue=n("c074"),se=n("f2d1"),de=n("ad3d");le["c"].add(ue["c"],ue["f"],ue["e"],ue["b"],ue["a"],ue["d"],ue["g"],se["a"],se["b"]);var be=Object(a["e"])(oe);be.component("fa-icon",de["a"]),be.mount("#app")},6682:function(e,t,n){"use strict";n("2a36")},"6d5e":function(e,t,n){},"7b57":function(e,t,n){"use strict";n("7c5e")},"7c5e":function(e,t,n){},"9b23":function(e,t,n){"use strict";n("6d5e")},"9f67":function(e,t,n){"use strict";n.d(t,"a",(function(){return O}));n("7db0"),n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("25f0"),n("5319"),n("ac1f"),n("b0c0");var a=n("7a23"),c=n("ba28");function i(){function e(e,t){fetch(e,{headers:{Accept:"application/json"}}).then((function(e){e.json().then((function(e){t(e)}))})).catch((function(e){console.log(e)}))}return{load:e}}var r=Object(c["a"])(),o=r.searchParams,l=r.validLink,u=i(),s=u.load,d=Object(a["s"])(!1),b=Object(a["s"])([]),v=Object(a["s"])([]),f=Object(a["s"])(null),p=Object(a["s"])(!1);function O(){var e=b,t=v,c=f,i=d,r=Object(a["s"])(!1),u=Object(a["s"])(!1),O=Object(a["d"])((function(){var t=e.value.find((function(e){return e.domain===o.value.get("providerDomain")}));return t||{full_name:""}})),j=Object(a["d"])((function(){return c.value&&l?new URL("?".concat(encodeURI(o.value.toString())),new URL("invites/forward",new URL(m.value.endpoint.path.replace(/\/?$/,"/")))):"#"})),m=Object(a["d"])((function(){var e;return null===(e=c.value)||void 0===e?void 0:e.services.find((function(e){return"OCM"===e.endpoint.type.name}))}));function g(t){s(t,(function(t){e.value=t,r.value=!0,u.value&&(i.value=!0)}))}function h(){t.value=n("3116"),u.value=!0,i.value=!0}function k(t){return Object(a["s"])(e.value.find((function(e){return e.name===t.key})))}function y(e){return Object(a["s"])(t.value.find((function(t){return t.key===e.value.name})))}function w(){p.value=!0}function _(){p.value=!1}function x(e){c.value=e}return{providers:Object(a["d"])((function(){return e.value})),locations:Object(a["d"])((function(){return t.value})),target:Object(a["d"])((function(){return c.value})),targetLink:j,originator:O,detailsExpanded:p,providersLoaded:Object(a["d"])((function(){return r.value})),locationsLoaded:Object(a["d"])((function(){return u.value})),loaded:Object(a["d"])((function(){return i.value})),fetchProviders:g,fetchLocations:h,getLocation:y,setTarget:x,getProvider:k,expandDetails:w,hideDetails:_}}},ba28:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));n("2b3d"),n("d3b7"),n("3ca3"),n("ddb0"),n("841c"),n("ac1f"),n("5319");var a=n("7a23");function c(){var e=Object(a["d"])((function(){return new URLSearchParams(window.location.search)})),t=Object(a["d"])((function(){return window.location.pathname.replace(/\/?$/,"/")})),n=Object(a["d"])((function(){return e.value.has("providerDomain")&&e.value.has("token")}));return{searchParams:e,validLink:n,baseUrl:t}}},cd3c:function(e,t,n){"use strict";n("d8bc")},d76c:function(e,t,n){"use strict";var a=n("7a23"),c=Object(a["B"])("data-v-4be4a566");Object(a["r"])("data-v-4be4a566");var i={class:"loading"};Object(a["q"])();var r=c((function(e,t,n,c,r,o){var l=Object(a["u"])("fa-icon");return Object(a["p"])(),Object(a["f"])("div",i,[Object(a["i"])(l,{class:"loading-spinner",icon:"spinner"})])})),o={name:"LoadingSpinner"};n("f850");o.render=r,o.__scopeId="data-v-4be4a566";t["a"]=o},d8bc:function(e,t,n){},f850:function(e,t,n){"use strict";n("1bfd")}}); -//# sourceMappingURL=app.1f1c457e.js.map \ No newline at end of file diff --git a/dist/js/app.1f1c457e.js.map b/dist/js/app.1f1c457e.js.map deleted file mode 100644 index 961772d..0000000 --- a/dist/js/app.1f1c457e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/ProviderSelect.vue?ee33","webpack:///./src/components/NavbarLinks.vue?4f57","webpack:///./src/App.vue","webpack:///./src/components/Navbar.vue","webpack:///./src/use/breakpoints.js","webpack:///./src/components/Navbar.vue?59c0","webpack:///./src/components/LinkInvalid.vue","webpack:///./src/components/LinkInvalid.vue?2d6a","webpack:///./src/components/ProviderSelect.vue","webpack:///./src/components/ProviderSelect.vue?85c5","webpack:///./src/components/MeshFooter.vue","webpack:///./src/components/MeshFooter.vue?90e2","webpack:///./src/components/NavbarLinks.vue","webpack:///./src/components/NavbarLinks.vue?2e0b","webpack:///./src/App.vue?dfb6","webpack:///./src/main.js","webpack:///./src/App.vue?0430","webpack:///./src/components/Navbar.vue?26dd","webpack:///./src/components/LinkInvalid.vue?3330","webpack:///./src/use/fetch.js","webpack:///./src/use/providers.js","webpack:///./src/use/query.js","webpack:///./src/components/MeshFooter.vue?6047","webpack:///./src/components/LoadingSpinner.vue","webpack:///./src/components/LoadingSpinner.vue?a280","webpack:///./src/components/LoadingSpinner.vue?6b92"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","class","md","lg","validLink","originator","full_name","useBreakpoints","breakpoints","xs","sm","xl","useBreakpoint","current","setup","render","__scopeId","id","ref","x1","x2","y1","y2","offset","stop-color","maskContentUnits","maskUnits","fill","height","width","y","loaded","icon","scrollIndex","internalProviders","detailsExpanded","style","wrapHeight","provider","el","providerOptions","showDetails","closeDetails","description","organization","homepage","targetLink","components","LoadingSpinner","props","Number","default","providers","setTarget","expandDetails","hideDetails","loading","wrapScroll","scrollTop","scrollTopTo","providerFilter","filter","toLowerCase","includes","scrollPercentage","clientHeight","Math","round","abs","providerIndex","findIndex","scrollToIndex","index","targetEl","clientTop","offsetTop","scrollToProvider","onTargetChanged","floor","resourcesLinks","link","navLinks","MeshMap","NavbarLinks","MeshFooter","ProviderSelect","LinkInvalid","Navbar","fetchProviders","fetchLocations","baseUrl","library","add","faBook","faSignInAlt","faRocket","faAngleUp","faAngleDown","faInfoCircle","faSpinner","faGithub","faGitter","app","createApp","App","component","FontAwesomeIcon","mount","useFetch","load","uri","fetch","headers","response","json","res","catch","log","useUrl","searchParams","meshProviders","meshLocations","meshTarget","useProviders","locations","allLoaded","providersLoaded","locationsLoaded","computed","originProvider","find","domain","URL","encodeURI","toString","targetOCMService","endpoint","path","replace","services","providersUri","require","getProvider","location","getLocation","URLSearchParams","search","pathname","has"],"mappings":"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","file":"js/app.1f1c457e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-6c78f41b\":\"b10b230d\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-6c78f41b\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-6c78f41b\":\"6e5d0d98\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProviderSelect.vue?vue&type=style&index=0&id=808a9ede&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"","\n\n\n\n\n","\n\n\n\n","import {useBreakpoint} from \"vue-composable\";\n\nexport default function useBreakpoints() {\n const breakpoints = {\n xs:\t1,\n sm:\t599,\n md: 1024,\n lg: 1439,\n xl:\t1920\n }\n\n const { current, xs, sm, md, lg, xl } = useBreakpoint(breakpoints)\n return { current, xs, sm, md, lg, xl }\n}\n","import { render } from \"./Navbar.vue?vue&type=template&id=317ef896&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\n\nimport \"./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317ef896\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./LinkInvalid.vue?vue&type=template&id=4342b242&scoped=true\"\nimport script from \"./LinkInvalid.vue?vue&type=script&lang=js\"\nexport * from \"./LinkInvalid.vue?vue&type=script&lang=js\"\n\nimport \"./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4342b242\"\n\nexport default script","\n\n\n","import { render } from \"./ProviderSelect.vue?vue&type=template&id=808a9ede&scoped=true\"\nimport script from \"./ProviderSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ProviderSelect.vue?vue&type=script&lang=js\"\n\nimport \"./ProviderSelect.vue?vue&type=style&index=0&id=808a9ede&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-808a9ede\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./MeshFooter.vue?vue&type=template&id=258d5688&scoped=true\"\nimport script from \"./MeshFooter.vue?vue&type=script&lang=js\"\nexport * from \"./MeshFooter.vue?vue&type=script&lang=js\"\n\nimport \"./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-258d5688\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./NavbarLinks.vue?vue&type=template&id=77527f7a&scoped=true\"\nimport script from \"./NavbarLinks.vue?vue&type=script&lang=js\"\nexport * from \"./NavbarLinks.vue?vue&type=script&lang=js\"\n\nimport \"./NavbarLinks.vue?vue&type=style&index=0&id=77527f7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-77527f7a\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=33cd6156\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=33cd6156&lang=scss\"\nscript.render = render\n\nexport default script","import {createApp} from 'vue'\nimport App from './App.vue'\n\nimport {library} from '@fortawesome/fontawesome-svg-core'\nimport {\n faBook,\n faSignInAlt,\n faRocket,\n faAngleUp,\n faAngleDown,\n faInfoCircle,\n faSpinner\n} from '@fortawesome/free-solid-svg-icons'\nimport {faGithub, faGitter} from \"@fortawesome/free-brands-svg-icons\";\nimport {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'\n\nlibrary.add(\n faBook, faSignInAlt, faRocket, faAngleUp, faAngleDown, faInfoCircle, faSpinner,\n faGithub, faGitter\n)\n\nconst app = createApp(App)\n\napp.component('fa-icon', FontAwesomeIcon)\n\napp.mount('#app')\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=33cd6156&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Navbar.vue?vue&type=style&index=0&id=317ef896&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LinkInvalid.vue?vue&type=style&index=0&id=4342b242&lang=scss&scoped=true\"","export default function useFetch() {\n\n function load(uri, resolve) {\n fetch(uri, {\n headers: {\n 'Accept': 'application/json',\n }\n }).then(response => {\n response.json()\n .then((res) => {\n resolve(res)\n })\n })\n .catch(err => {\n console.log(err)\n })\n }\n return {load}\n}\n","import {computed, ref} from 'vue'\nimport useUrl from '@/use/query'\nimport useFetch from '@/use/fetch'\n\nconst {searchParams, validLink} = useUrl()\nconst {load} = useFetch()\n\nconst loaded = ref(false)\nconst meshProviders = ref([])\nconst meshLocations = ref([])\nconst meshTarget = ref(null)\nconst detailsExpanded = ref(false)\n\nexport default function useProviders() {\n const providers = meshProviders\n const locations = meshLocations\n const target = meshTarget\n const allLoaded = loaded\n const providersLoaded = ref(false)\n const locationsLoaded = ref(false)\n\n const originator = computed(() => {\n const originProvider = providers.value.find(p => {\n return p.domain === searchParams.value.get('providerDomain')\n })\n return originProvider || {'full_name': ''}\n })\n\n const targetLink = computed(() => {\n if (!target.value || !validLink) {\n return '#'\n }\n return new URL(\n `?${encodeURI(searchParams.value.toString())}`,\n new URL('invites/forward',\n new URL(targetOCMService.value.endpoint.path.replace(/\\/?$/, '/'))\n )\n )\n })\n\n const targetOCMService = computed(() => {\n return target.value?.services.find(s => {\n return s.endpoint.type.name === 'OCM'\n })\n })\n\n function fetchProviders(providersUri) {\n if (process.env.NODE_ENV === 'development') {\n providers.value = require('../../demo/providers.json')\n providersLoaded.value = true\n allLoaded.value = true\n return\n }\n\n load(providersUri, (res) => {\n providers.value = res\n providersLoaded.value = true\n\n if (locationsLoaded.value) {\n allLoaded.value = true\n }\n })\n }\n\n function fetchLocations() {\n locations.value = require('../assets/data/providers.loc.json')\n locationsLoaded.value = true\n allLoaded.value = true\n // TODO: uncomment when mentix locations provider is in IOP\n // load(locationsUri, (res) => {\n // locations.value = res\n // locationsLoaded.value = true\n // if (providersLoaded.value) {\n // loaded.value = true\n // }\n // })\n }\n\n function getProvider(location) {\n return ref(providers.value.find(p => {\n return p.name === location.key\n }))\n }\n\n function getLocation(provider) {\n return ref(locations.value.find(l => {\n return l.key === provider.value.name\n }))\n }\n\n function expandDetails() {\n detailsExpanded.value = true\n }\n\n function hideDetails() {\n detailsExpanded.value = false\n }\n\n function setTarget(provider) {\n target.value = provider\n }\n\n return {\n providers: computed(() => providers.value),\n locations: computed(() => locations.value),\n target: computed(() => target.value),\n targetLink,\n originator,\n detailsExpanded,\n providersLoaded: computed(() => providersLoaded.value),\n locationsLoaded: computed(() => locationsLoaded.value),\n loaded: computed(() => allLoaded.value),\n fetchProviders, fetchLocations, getLocation, setTarget, getProvider,\n expandDetails, hideDetails\n }\n}\n","import {computed} from 'vue'\n\nexport default function useUrl() {\n const searchParams = computed(() => {\n return new URLSearchParams(window.location.search)\n })\n\n const baseUrl = computed(() => {\n return window.location.pathname.replace(/\\/?$/, '/')\n })\n\n const validLink = computed(() => {\n return searchParams.value.has('providerDomain')\n && searchParams.value.has('token')\n })\n\n return {searchParams, validLink, baseUrl}\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshFooter.vue?vue&type=style&index=0&id=258d5688&lang=scss&scoped=true\"","\n\n\n\n\n","import { render } from \"./LoadingSpinner.vue?vue&type=template&id=4be4a566&scoped=true\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\n\nimport \"./LoadingSpinner.vue?vue&type=style&index=0&id=4be4a566&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4be4a566\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LoadingSpinner.vue?vue&type=style&index=0&id=4be4a566&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-6c78f41b.b10b230d.js b/dist/js/chunk-6c78f41b.b10b230d.js deleted file mode 100644 index 7567505..0000000 --- a/dist/js/chunk-6c78f41b.b10b230d.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6c78f41b"],{"154a":function(n){n.exports=JSON.parse('{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Czech Republic","sov_a3":"CZE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Czech Republic","adm0_a3":"CZE","geou_dif":0,"geounit":"Czech Republic","gu_a3":"CZE","su_dif":0,"subunit":"Czech Republic","su_a3":"CZE","brk_diff":0,"name":"Czech Rep.","name_long":"Czech Republic","brk_a3":"CZE","brk_name":"Czech Rep.","brk_group":null,"abbrev":"Cz. Rep.","postal":"CZ","formal_en":"Czech Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Czech Republic","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":2,"mapcolor13":6,"pop_est":10211904,"gdp_md_est":265200,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CZ","iso_a3":"CZE","iso_n3":"203","un_a3":"203","wb_a2":"CZ","wb_a3":"CZE","woe_id":-99,"adm0_a3_is":"CZE","adm0_a3_us":"CZE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":14,"abbrev_len":8,"tiny":-99,"homepart":1,"filename":"CZE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.960288120194576,48.5969823268506],[16.49928266771877,48.78580801044511],[16.02964725105022,48.73389903420793],[15.253415561593982,49.039074205107575],[14.901447381254057,48.964401760445824],[14.33889773932472,48.5553052842072],[13.595945672264437,48.87717194273715],[13.031328973043431,49.30706818297324],[12.521024204161192,49.547415269562734],[12.415190870827445,49.96912079528057],[12.240111118222558,50.266337795607285],[12.966836785543194,50.484076443069085],[13.338131951560285,50.73323436136435],[14.056227654688172,50.92691762959429],[14.307013380600637,51.117267767941414],[14.570718214586066,51.002339382524276],[15.01699588385867,51.10667409932158],[15.490972120839727,50.78472992614321],[16.23862674323857,50.69773265237984],[16.176253289462267,50.42260732685791],[16.719475945714436,50.21574656839354],[16.868769158605655,50.47397370055603],[17.55456709155112,50.36214590107641],[17.64944502123899,50.049038397819956],[18.392913852622172,49.98862864847075],[18.853144158613617,49.49622976337764],[18.554971144289482,49.49501536721878],[18.399993523846177,49.31500051533004],[18.170498488037964,49.271514797556435],[18.104972771891852,49.04398346617531],[17.913511590250465,48.996492824899086],[17.88648481616181,48.90347524677371],[17.545006951577108,48.80001902932537],[17.101984897538898,48.81696889911711],[16.960288120194576,48.5969823268506]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Switzerland","sov_a3":"CHE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Switzerland","adm0_a3":"CHE","geou_dif":0,"geounit":"Switzerland","gu_a3":"CHE","su_dif":0,"subunit":"Switzerland","su_a3":"CHE","brk_diff":0,"name":"Switzerland","name_long":"Switzerland","brk_a3":"CHE","brk_name":"Switzerland","brk_group":null,"abbrev":"Switz.","postal":"CH","formal_en":"Swiss Confederation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Switzerland","name_alt":null,"mapcolor7":5,"mapcolor8":2,"mapcolor9":7,"mapcolor13":3,"pop_est":7604467,"gdp_md_est":316700,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"CH","iso_a3":"CHE","iso_n3":"756","un_a3":"756","wb_a2":"CH","wb_a3":"CHE","woe_id":-99,"adm0_a3_is":"CHE","adm0_a3_us":"CHE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"CHE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.59422610844635,47.52505809182027],[9.632931756232978,47.34760122332999],[9.479969516649021,47.10280996356337],[9.932448357796659,46.92072805438296],[10.44270145024663,46.89354625099743],[10.363378126678612,46.48357127540986],[9.92283654139038,46.31489940040919],[9.182881707403055,46.44021474871698],[8.966305779667806,46.036931871111186],[8.489952426801324,46.005150865251686],[8.31662967289438,46.16364248309086],[7.755992058959833,45.82449005795931],[7.273850945676656,45.776947740250776],[6.843592970414504,45.99114655210061],[6.500099724970425,46.42967275652944],[6.022609490593537,46.27298981382047],[6.037388950229001,46.725778713561866],[6.768713820023606,47.2877082383037],[6.736571079138059,47.541801255882845],[7.192202182655507,47.44976552997102],[7.46675906742223,47.62058197691181],[8.317301466514152,47.61357982033626],[8.522611932009765,47.830827541691285],[9.59422610844635,47.52505809182027]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Bosnia and Herzegovina","sov_a3":"BIH","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bosnia and Herzegovina","adm0_a3":"BIH","geou_dif":0,"geounit":"Bosnia and Herzegovina","gu_a3":"BIH","su_dif":0,"subunit":"Bosnia and Herzegovina","su_a3":"BIH","brk_diff":0,"name":"Bosnia and Herz.","name_long":"Bosnia and Herzegovina","brk_a3":"BIH","brk_name":"Bosnia and Herz.","brk_group":null,"abbrev":"B.H.","postal":"BiH","formal_en":"Bosnia and Herzegovina","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bosnia and Herzegovina","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":1,"mapcolor13":2,"pop_est":4613414,"gdp_md_est":29700,"pop_year":-99,"lastcensus":1991,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BA","iso_a3":"BIH","iso_n3":"070","un_a3":"070","wb_a2":"BA","wb_a3":"BIH","woe_id":-99,"adm0_a3_is":"BIH","adm0_a3_us":"BIH","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":16,"long_len":22,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"BIH.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.00548628101012,44.86023366960916],[19.36803,44.863],[19.11761,44.42307000000011],[19.59976,44.03847],[19.454,43.56810000000013],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674921502358984,43.02856252702361],[17.297373488034452,43.44634064388736],[16.91615644701733,43.66772247982567],[16.456442905348865,44.04123973243128],[16.23966027188453,44.35114329688571],[15.750026075918981,44.81871165626256],[15.959367303133376,45.233776760430935],[16.318156772535872,45.00412669532591],[16.534939406000206,45.21160757097772],[17.002146030351014,45.233776760430935],[17.861783481526402,45.067740383477144],[18.553214145591653,45.08158966733145],[19.00548628101012,44.86023366960916]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Belarus","sov_a3":"BLR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belarus","adm0_a3":"BLR","geou_dif":0,"geounit":"Belarus","gu_a3":"BLR","su_dif":0,"subunit":"Belarus","su_a3":"BLR","brk_diff":0,"name":"Belarus","name_long":"Belarus","brk_a3":"BLR","brk_name":"Belarus","brk_group":null,"abbrev":"Bela.","postal":"BY","formal_en":"Republic of Belarus","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belarus","name_alt":null,"mapcolor7":1,"mapcolor8":1,"mapcolor9":5,"mapcolor13":11,"pop_est":9648533,"gdp_md_est":114100,"pop_year":-99,"lastcensus":2009,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BY","iso_a3":"BLR","iso_n3":"112","un_a3":"112","wb_a2":"BY","wb_a3":"BLR","woe_id":-99,"adm0_a3_is":"BLR","adm0_a3_us":"BLR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BLR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[23.48412763844985,53.91249766704114],[24.450683628037037,53.905702216194754],[25.536353794056993,54.28242340760253],[25.7684326514798,54.84696259217509],[26.58827924979039,55.16717560487167],[26.494331495883753,55.615106919977634],[27.10245975109453,55.783313707087686],[28.176709425577993,56.16912995057881],[29.229513380660308,55.918344224666356],[29.371571893030673,55.670090643936184],[29.896294386522356,55.78946320253041],[30.873909132620007,55.55097646750341],[30.971835971813135,55.08154775656404],[30.757533807098717,54.81177094178432],[31.38447228366374,54.157056382862436],[31.79142418796224,53.97463857687212],[31.731272820774507,53.79402944601202],[32.405598585751164,53.618045355842035],[32.69364301934604,53.35142080343212],[32.304519484188226,53.1327261419729],[31.49764367038293,53.1674268662569],[31.305200636528014,53.07399587667321],[31.54001834486226,52.74205231384636],[31.785998162571587,52.101677964885454],[30.927549269338982,52.04235342061438],[30.619454380014844,51.822806098022376],[30.555117221811457,51.31950348571566],[30.157363722460897,51.41613841410147],[29.254938185347925,51.368234361366895],[28.99283532076353,51.602044379271476],[28.61761274589225,51.42771393493484],[28.24161502453657,51.57222707783907],[27.454066196408434,51.59230337178447],[26.337958611768556,51.83228872334793],[25.327787713327005,51.91065603291855],[24.553106316839518,51.888461005249184],[24.00507775238421,51.61744395609446],[23.52707075368437,51.57845408793023],[23.508002150168693,52.02364655212473],[23.199493849386187,52.486977444053664],[23.799198846133375,52.69109935160657],[23.80493493011778,53.089731350306074],[23.527535841575002,53.470121568406555],[23.48412763844985,53.91249766704114]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Bulgaria","sov_a3":"BGR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Bulgaria","adm0_a3":"BGR","geou_dif":0,"geounit":"Bulgaria","gu_a3":"BGR","su_dif":0,"subunit":"Bulgaria","su_a3":"BGR","brk_diff":0,"name":"Bulgaria","name_long":"Bulgaria","brk_a3":"BGR","brk_name":"Bulgaria","brk_group":null,"abbrev":"Bulg.","postal":"BG","formal_en":"Republic of Bulgaria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Bulgaria","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":1,"mapcolor13":8,"pop_est":7204687,"gdp_md_est":93750,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"BG","iso_a3":"BGR","iso_n3":"100","un_a3":"100","wb_a2":"BG","wb_a3":"BGR","woe_id":-99,"adm0_a3_is":"BGR","adm0_a3_us":"BGR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BGR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.65714969248299,44.23492300066128],[22.944832391051847,43.82378530534713],[23.33230228037632,43.89701080990471],[24.100679152124172,43.74105133724785],[25.569271681426926,43.68844472917472],[26.065158725699746,43.94349376075126],[27.242399529740908,44.175986029632405],[27.970107049275075,43.81246816667521],[28.558081495891997,43.70746165625813],[28.03909508638472,43.293171698574184],[27.67389773937805,42.577892361006214],[27.99672041190539,42.00735871028779],[27.135739373490477,42.14148489030134],[26.117041863720797,41.82690460872456],[26.106138136507212,41.32889883072778],[25.197201368925445,41.23448598893053],[24.49264489105803,41.583896185872035],[23.692073601992348,41.30908091894385],[22.952377150166452,41.33799388281115],[22.88137373219743,41.99929718685026],[22.380525750424592,42.32025950781509],[22.54501183440962,42.46136200618804],[22.43659467946128,42.580321153323936],[22.60480146657133,42.898518785161144],[22.986018507588483,43.211161200526966],[22.50015669118028,43.64281443946099],[22.410446404721597,44.00806346289995],[22.65714969248299,44.23492300066128]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Austria","sov_a3":"AUT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Austria","adm0_a3":"AUT","geou_dif":0,"geounit":"Austria","gu_a3":"AUT","su_dif":0,"subunit":"Austria","su_a3":"AUT","brk_diff":0,"name":"Austria","name_long":"Austria","brk_a3":"AUT","brk_name":"Austria","brk_group":null,"abbrev":"Aust.","postal":"A","formal_en":"Republic of Austria","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Austria","name_alt":null,"mapcolor7":3,"mapcolor8":1,"mapcolor9":3,"mapcolor13":4,"pop_est":8210281,"gdp_md_est":329500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"AT","iso_a3":"AUT","iso_n3":"040","un_a3":"040","wb_a2":"AT","wb_a3":"AUT","woe_id":-99,"adm0_a3_is":"AUT","adm0_a3_us":"AUT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"AUT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.979666782304037,48.123497015976305],[16.90375410326726,47.71486562762833],[16.340584344150415,47.71290192320123],[16.534267612380376,47.49617096616912],[16.202298211337364,46.85238597267696],[16.011663852612656,46.6836107448117],[15.137091912504985,46.65870270444703],[14.63247155117483,46.43181732846955],[13.806475457421527,46.509306138691215],[12.376485223040817,46.76755910906985],[12.153088006243054,47.11539317482645],[11.16482791509327,46.94157949481273],[11.048555942436536,46.75135854754634],[10.44270145024663,46.89354625099743],[9.932448357796659,46.92072805438296],[9.479969516649021,47.10280996356337],[9.632931756232978,47.34760122332999],[9.59422610844635,47.52505809182027],[9.896068149463188,47.580196845075704],[10.402083774465211,47.30248769793916],[10.544504021861627,47.56639923765377],[11.426414015354737,47.523766181012974],[12.141357456112788,47.703083401065776],[12.620759718484491,47.67238760028441],[12.932626987365948,47.467645575544],[13.02585127122049,47.637583523135824],[12.884102817443903,48.28914581968792],[13.243357374737,48.416114813829054],[13.595945672264437,48.87717194273715],[14.33889773932472,48.5553052842072],[14.901447381254057,48.964401760445824],[15.253415561593982,49.039074205107575],[16.02964725105022,48.73389903420793],[16.49928266771877,48.78580801044511],[16.960288120194576,48.5969823268506],[16.879982944413,48.47001333270947],[16.979666782304037,48.123497015976305]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Belgium","sov_a3":"BEL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Belgium","adm0_a3":"BEL","geou_dif":0,"geounit":"Belgium","gu_a3":"BEL","su_dif":0,"subunit":"Belgium","su_a3":"BEL","brk_diff":0,"name":"Belgium","name_long":"Belgium","brk_a3":"BEL","brk_name":"Belgium","brk_group":null,"abbrev":"Belg.","postal":"B","formal_en":"Kingdom of Belgium","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Belgium","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":8,"pop_est":10414336,"gdp_md_est":389300,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"BE","iso_a3":"BEL","iso_n3":"056","un_a3":"056","wb_a2":"BE","wb_a3":"BEL","woe_id":-99,"adm0_a3_is":"BEL","adm0_a3_us":"BEL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"BEL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[3.314971144228537,51.345780951536085],[4.047071160507527,51.26725861266857],[4.973991326526914,51.475023708698124],[5.606975945670001,51.037298488969775],[6.156658155958779,50.80372101501058],[6.043073357781111,50.128051662794235],[5.782417433300906,50.09032786722122],[5.674051954784829,49.529483547557504],[4.799221632515809,49.985373033236385],[4.286022983425084,49.907496649772554],[3.588184441755686,50.37899241800358],[3.123251580425801,50.780363267614575],[2.658422071960274,50.79684804951574],[2.513573032246143,51.14850617126183],[3.314971144228537,51.345780951536085]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Albania","sov_a3":"ALB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Albania","adm0_a3":"ALB","geou_dif":0,"geounit":"Albania","gu_a3":"ALB","su_dif":0,"subunit":"Albania","su_a3":"ALB","brk_diff":0,"name":"Albania","name_long":"Albania","brk_a3":"ALB","brk_name":"Albania","brk_group":null,"abbrev":"Alb.","postal":"AL","formal_en":"Republic of Albania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Albania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":1,"mapcolor13":6,"pop_est":3639453,"gdp_md_est":21810,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"AL","iso_a3":"ALB","iso_n3":"008","un_a3":"008","wb_a2":"AL","wb_a3":"ALB","woe_id":-99,"adm0_a3_is":"ALB","adm0_a3_us":"ALB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ALB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.590247430104906,41.855404161133606],[20.463175083099202,41.51508901627533],[20.605181919037364,41.08622630468522],[21.0200403174764,40.84272695572588],[20.999989861747224,40.58000397395397],[20.674996779063633,40.43499990494303],[20.615000441172754,40.11000682225938],[20.15001590341052,39.62499766698397],[19.980000441170144,39.69499339452341],[19.960001661873207,39.91500580500605],[19.406081984136733,40.250773423822466],[19.319058872157143,40.72723012955356],[19.40354983895429,41.40956574153546],[19.540027296637106,41.71998607031276],[19.37176883309496,41.877547512370654],[19.304486118250793,42.19574514420782],[19.738051385179627,42.688247382165564],[19.801613396898688,42.50009349219084],[20.0707,42.58863],[20.283754510181893,42.32025950781508],[20.52295,42.21787],[20.590247430104906,41.855404161133606]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Germany","sov_a3":"DEU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Germany","adm0_a3":"DEU","geou_dif":0,"geounit":"Germany","gu_a3":"DEU","su_dif":0,"subunit":"Germany","su_a3":"DEU","brk_diff":0,"name":"Germany","name_long":"Germany","brk_a3":"DEU","brk_name":"Germany","brk_group":null,"abbrev":"Ger.","postal":"D","formal_en":"Federal Republic of Germany","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Germany","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":5,"mapcolor13":1,"pop_est":82329758,"gdp_md_est":2918000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DE","iso_a3":"DEU","iso_n3":"276","un_a3":"276","wb_a2":"DE","wb_a3":"DEU","woe_id":-99,"adm0_a3_is":"DEU","adm0_a3_us":"DEU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DEU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[9.921906365609232,54.983104153048025],[9.9395797054529,54.596641954153256],[10.950112338920519,54.363607082733154],[10.939466993868448,54.00869334575258],[11.956252475643282,54.19648550070116],[12.518440382546714,54.47037059184799],[13.647467075259499,54.0755109727059],[14.119686313542559,53.75702912049103],[14.353315463934168,53.248171291713106],[14.074521111719434,52.98126251892535],[14.4375997250022,52.624850165408304],[14.685026482815713,52.089947414755216],[14.607098422919648,51.745188096719964],[15.016995883858781,51.10667409932171],[14.570718214586122,51.00233938252438],[14.307013380600665,51.11726776794137],[14.056227654688314,50.92691762959435],[13.338131951560397,50.73323436136428],[12.96683678554325,50.48407644306917],[12.240111118222671,50.26633779560723],[12.415190870827473,49.96912079528062],[12.521024204161336,49.54741526956275],[13.031328973043514,49.30706818297324],[13.595945672264577,48.877171942737164],[13.243357374737116,48.41611481382903],[12.884102817443873,48.28914581968786],[13.025851271220517,47.63758352313595],[12.932626987366064,47.467645575544],[12.620759718484521,47.672387600284424],[12.141357456112871,47.70308340106578],[11.426414015354851,47.52376618101306],[10.544504021861597,47.5663992376538],[10.402083774465325,47.30248769793916],[9.896068149463188,47.580196845075704],[9.594226108446376,47.5250580918202],[8.522611932009795,47.83082754169135],[8.317301466514095,47.61357982033627],[7.466759067422288,47.62058197691192],[7.593676385131062,48.33301911070373],[8.099278598674855,49.01778351500343],[6.658229607783709,49.20195831969164],[6.186320428094177,49.463802802114515],[6.242751092156993,49.90222565367873],[6.043073357781111,50.128051662794235],[6.156658155958779,50.80372101501058],[5.988658074577813,51.851615709025054],[6.589396599970826,51.852029120483394],[6.842869500362383,52.22844025329755],[7.092053256873896,53.14404328064489],[6.905139601274129,53.48216217713064],[7.100424838905268,53.69393219666267],[7.936239454793962,53.74829580343379],[8.121706170289485,53.52779246684429],[8.800734490604668,54.020785630908904],[8.572117954145368,54.39564647075405],[8.526229282270208,54.96274363872516],[9.282048780971136,54.83086538351631],[9.921906365609232,54.983104153048025]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":4,"sovereignt":"Denmark","sov_a3":"DN1","adm0_dif":1,"level":2,"type":"Country","admin":"Denmark","adm0_a3":"DNK","geou_dif":0,"geounit":"Denmark","gu_a3":"DNK","su_dif":0,"subunit":"Denmark","su_a3":"DNK","brk_diff":0,"name":"Denmark","name_long":"Denmark","brk_a3":"DNK","brk_name":"Denmark","brk_group":null,"abbrev":"Den.","postal":"DK","formal_en":"Kingdom of Denmark","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Denmark","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":3,"mapcolor13":12,"pop_est":5500510,"gdp_md_est":203600,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"DK","iso_a3":"DNK","iso_n3":"208","un_a3":"208","wb_a2":"DK","wb_a3":"DNK","woe_id":-99,"adm0_a3_is":"DNK","adm0_a3_us":"DNK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"DNK.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[12.69000613775563,55.609990953180784],[12.089991082414741,54.80001455343793],[11.043543328504228,55.364863796604254],[10.903913608451631,55.77995473898875],[12.370904168353292,56.111407375708836],[12.69000613775563,55.609990953180784]]],[[[10.912181837618363,56.458621324277914],[10.667803989309988,56.08138336854722],[10.369992710011985,56.19000722922473],[9.649984978889307,55.469999498102055],[9.921906365609175,54.98310415304806],[9.282048780971136,54.83086538351616],[8.526229282270236,54.96274363872499],[8.120310906617588,55.517722683323626],[8.08997684086225,56.540011705137594],[8.256581658571264,56.8099693874303],[8.543437534223386,57.110002753316905],[9.42446902836761,57.17206614849948],[9.775558709358563,57.447940782289656],[10.580005730846153,57.73001658795485],[10.546105991262692,57.215732733786155],[10.250000034230226,56.89001618105047],[10.369992710011985,56.609981594460834],[10.912181837618363,56.458621324277914]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Estonia","sov_a3":"EST","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Estonia","adm0_a3":"EST","geou_dif":0,"geounit":"Estonia","gu_a3":"EST","su_dif":0,"subunit":"Estonia","su_a3":"EST","brk_diff":0,"name":"Estonia","name_long":"Estonia","brk_a3":"EST","brk_name":"Estonia","brk_group":null,"abbrev":"Est.","postal":"EST","formal_en":"Republic of Estonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Estonia","name_alt":null,"mapcolor7":3,"mapcolor8":2,"mapcolor9":1,"mapcolor13":10,"pop_est":1299371,"gdp_md_est":27410,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"EE","iso_a3":"EST","iso_n3":"233","un_a3":"233","wb_a2":"EE","wb_a3":"EST","woe_id":-99,"adm0_a3_is":"EST","adm0_a3_us":"EST","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"EST.geojson"},"geometry":{"type":"Polygon","coordinates":[[[24.312862583114622,57.79342357037698],[24.42892785004216,58.38341339785328],[24.061198357853186,58.25737457949341],[23.42656009287668,58.612753404364625],[23.339795363058645,59.18724030215338],[24.604214308376182,59.46585378685502],[25.86418908051664,59.61109039981134],[26.949135776484525,59.445803331125774],[27.981114129353244,59.47538808861287],[28.13169925305175,59.30082510033092],[27.42016645682494,58.72458120384424],[27.71668582531572,57.79189911562437],[27.28818484875151,57.47452830670383],[26.463532342237787,57.47638865826633],[25.602809685984365,57.84752879498657],[25.16459354014927,57.97015696881519],[24.312862583114622,57.79342357037698]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Spain","sov_a3":"ESP","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Spain","adm0_a3":"ESP","geou_dif":0,"geounit":"Spain","gu_a3":"ESP","su_dif":0,"subunit":"Spain","su_a3":"ESP","brk_diff":0,"name":"Spain","name_long":"Spain","brk_a3":"ESP","brk_name":"Spain","brk_group":null,"abbrev":"Sp.","postal":"E","formal_en":"Kingdom of Spain","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Spain","name_alt":null,"mapcolor7":4,"mapcolor8":5,"mapcolor9":5,"mapcolor13":5,"pop_est":40525002,"gdp_md_est":1403000,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"ES","iso_a3":"ESP","iso_n3":"724","un_a3":"724","wb_a2":"ES","wb_a3":"ESP","woe_id":-99,"adm0_a3_is":"ESP","adm0_a3_us":"ESP","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"ESP.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.984433152695672,42.59277517350627],[-9.392883673530648,43.0266246608127],[-7.978189663108309,43.748337714200986],[-6.754491746436756,43.567909450853925],[-5.411886359061596,43.574239813809676],[-4.347842779955783,43.40344920508504],[-3.51753170410609,43.4559007838613],[-1.901351284177764,43.42280202897834],[-1.502770961910528,43.03401439063043],[0.338046909190581,42.57954600683954],[0.701590610363894,42.7957343613326],[1.826793247087153,42.34338471126569],[2.985998976258458,42.47301504166986],[3.039484083680549,41.892120266276905],[2.091841668312185,41.22608856868309],[0.810524529635188,41.01473196060934],[0.721331007499401,40.678318386389236],[0.106691521819869,40.12393362076202],[-0.278711310212941,39.30997813573272],[0.111290724293838,38.73851430923303],[-0.467123582349103,38.29236583104115],[-0.683389451490598,37.642353827457825],[-1.438382127274849,37.443063666324214],[-2.146452602538119,36.67414419203728],[-3.415780808923387,36.65889964451118],[-4.368900926114719,36.677839056946155],[-4.995219285492211,36.32470815687964],[-5.377159796561457,35.946850083961465],[-5.866432257500904,36.02981659600606],[-6.236693894872175,36.367677110330334],[-6.520190802425404,36.94291331638732],[-7.453725551778092,37.09778758396607],[-7.537105475281024,37.42890432387623],[-7.166507941099865,37.803894354802225],[-7.029281175148796,38.07576406508977],[-7.374092169616318,38.37305858006492],[-7.098036668313128,39.03007274022378],[-7.498632371439725,39.62957103124181],[-7.066591559263529,39.71189158788277],[-7.026413133156595,40.184524237624245],[-6.864019944679385,40.33087189387483],[-6.851126674822552,41.11108266861753],[-6.389087693700915,41.381815497394655],[-6.668605515967656,41.883386949219584],[-7.251308966490824,41.91834605566505],[-7.422512986673795,41.79207469335983],[-8.013174607769912,41.790886135417125],[-8.263856980817792,42.28046865495034],[-8.67194576662672,42.13468943945496],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Finland","sov_a3":"FI1","adm0_dif":1,"level":2,"type":"Country","admin":"Finland","adm0_a3":"FIN","geou_dif":0,"geounit":"Finland","gu_a3":"FIN","su_dif":0,"subunit":"Finland","su_a3":"FIN","brk_diff":0,"name":"Finland","name_long":"Finland","brk_a3":"FIN","brk_name":"Finland","brk_group":null,"abbrev":"Fin.","postal":"FIN","formal_en":"Republic of Finland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Finland","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":6,"pop_est":5250275,"gdp_md_est":193500,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FI","iso_a3":"FIN","iso_n3":"246","un_a3":"246","wb_a2":"FI","wb_a3":"FIN","woe_id":-99,"adm0_a3_is":"FIN","adm0_a3_us":"FIN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"FIN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[28.591929559043194,69.06477692328666],[28.445943637818658,68.36461294216404],[29.977426385220607,67.69829702419266],[29.054588657352326,66.94428620062193],[30.21765,65.80598],[29.544429559046986,64.94867157659048],[30.44468468600371,64.20445343693909],[30.035872430142714,63.55281362573855],[31.51609215671112,62.86768748641288],[31.139991082490894,62.35769277612441],[30.211107212044446,61.78002777774969],[28.069997592895277,60.503516547275844],[26.25517296723697,60.4239606797625],[24.496623976344523,60.05731639265165],[22.869694858499457,59.846373196036225],[22.290763787533592,60.39192129174154],[21.322244093519316,60.72016998965952],[21.544866163832694,61.7053294948718],[21.05921105315369,62.60739329695874],[21.536029493910803,63.18973501245587],[22.442744174903993,63.81781037053129],[24.730511508897536,64.90234365504082],[25.398067661243942,65.11142650009373],[25.294043003040404,65.53434642197045],[23.903378533633802,66.00692739527962],[23.565879754335583,66.39605093043743],[23.53947309743444,67.93600861273525],[21.978534783626117,68.6168456081807],[20.645592889089528,69.10624726020087],[21.244936150810673,69.37044302029307],[22.356237827247412,68.84174144151491],[23.66204959483076,68.89124746365054],[24.735679152126725,68.64955678982146],[25.68921268077636,69.09211375596904],[26.17962202322624,69.82529897732614],[27.732292107867863,70.16419302029625],[29.01557295097197,69.76649119737799],[28.591929559043194,69.06477692328666]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"France","sov_a3":"FR1","adm0_dif":1,"level":2,"type":"Country","admin":"France","adm0_a3":"FRA","geou_dif":0,"geounit":"France","gu_a3":"FRA","su_dif":0,"subunit":"France","su_a3":"FRA","brk_diff":0,"name":"France","name_long":"France","brk_a3":"FRA","brk_name":"France","brk_group":null,"abbrev":"Fr.","postal":"F","formal_en":"French Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"France","name_alt":null,"mapcolor7":7,"mapcolor8":5,"mapcolor9":9,"mapcolor13":11,"pop_est":64057792,"gdp_md_est":2128000,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"FR","iso_a3":"FRA","iso_n3":"250","un_a3":"250","wb_a2":"FR","wb_a3":"FRA","woe_id":-99,"adm0_a3_is":"FRA","adm0_a3_us":"FRA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":3,"tiny":-99,"homepart":1,"filename":"FRA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-52.55642473001839,2.504705308437053],[-52.93965715189498,2.124857692875622],[-53.418465135295264,2.053389187016037],[-53.554839240113495,2.334896551925965],[-53.77852067728889,2.376702785650053],[-54.08806250671728,2.105556545414629],[-54.52475419779975,2.311848863123785],[-54.27122962097578,2.738747870286943],[-54.18428402364474,3.194172268075235],[-54.01150387227682,3.622569891774858],[-54.399542202356514,4.212611395683481],[-54.47863298197922,4.896755682795643],[-53.95804460307093,5.756548163267809],[-53.618452928264844,5.646529038918402],[-52.88214128275408,5.409850979021599],[-51.82334286152593,4.565768133966145],[-51.65779741067888,4.156232408053029],[-52.24933753112398,3.241094468596287],[-52.55642473001839,2.504705308437053]]],[[[9.560016310269134,42.15249197037957],[9.229752231491773,41.38000682226445],[8.77572309737536,41.58361196549444],[8.54421268070783,42.25651662858308],[8.746009148807588,42.62812185319396],[9.390000848028905,43.00998484961474],[9.560016310269134,42.15249197037957]]],[[[3.588184441755715,50.37899241800358],[4.28602298342514,49.907496649772554],[4.799221632515753,49.98537303323633],[5.674051954784885,49.52948354755745],[5.897759230176376,49.44266714130717],[6.186320428094206,49.46380280211446],[6.658229607783539,49.20195831969155],[8.099278598674772,49.01778351500337],[7.593676385131062,48.33301911070373],[7.46675906742223,47.620581976911865],[7.192202182655535,47.44976552997099],[6.736571079138088,47.54180125588289],[6.768713820023634,47.28770823830368],[6.037388950228972,46.72577871356191],[6.022609490593567,46.272989813820516],[6.500099724970454,46.42967275652944],[6.843592970414562,45.99114655210067],[6.802355177445662,45.70857982032867],[7.096652459347837,45.333098863295874],[6.749955275101711,45.02851797136759],[7.007562290076663,44.25476675066139],[7.549596388386163,44.12790110938482],[7.435184767291843,43.69384491634918],[6.529245232783068,43.12889232031836],[4.556962517931396,43.39965098731158],[3.10041059735272,43.075200507167125],[2.985998976258486,42.47301504166989],[1.826793247087181,42.34338471126566],[0.701590610363922,42.79573436133265],[0.338046909190581,42.579546006839564],[-1.502770961910471,43.03401439063049],[-1.901351284177735,43.42280202897834],[-1.384225226232957,44.02261037859017],[-1.193797573237362,46.014917710954876],[-2.225724249673789,47.06436269793821],[-2.963276129559574,47.570326646507965],[-4.491554938159481,47.95495433205642],[-4.592349819344747,48.68416046812695],[-3.295813971357745,48.901692409859635],[-1.616510789384932,48.644421291694584],[-1.933494025063254,49.776341864615766],[-0.98946895995536,49.347375800160876],[1.338761020522753,50.12717316344526],[1.6390010921385,50.946606350297515],[2.513573032246171,51.14850617126185],[2.658422071960331,50.79684804951566],[3.123251580425716,50.78036326761452],[3.588184441755715,50.37899241800358]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"United Kingdom","sov_a3":"GB1","adm0_dif":1,"level":2,"type":"Country","admin":"United Kingdom","adm0_a3":"GBR","geou_dif":0,"geounit":"United Kingdom","gu_a3":"GBR","su_dif":0,"subunit":"United Kingdom","su_a3":"GBR","brk_diff":0,"name":"United Kingdom","name_long":"United Kingdom","brk_a3":"GBR","brk_name":"United Kingdom","brk_group":null,"abbrev":"U.K.","postal":"GB","formal_en":"United Kingdom of Great Britain and Northern Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"United Kingdom","name_alt":null,"mapcolor7":6,"mapcolor8":6,"mapcolor9":6,"mapcolor13":3,"pop_est":62262000,"gdp_md_est":1977704,"pop_year":0,"lastcensus":2011,"gdp_year":2009,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GB","iso_a3":"GBR","iso_n3":"826","un_a3":"826","wb_a2":"GB","wb_a3":"GBR","woe_id":-99,"adm0_a3_is":"GBR","adm0_a3_us":"GBR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":14,"long_len":14,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"GBR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661948614921897,54.55460317648385],[-6.197884894220977,53.86756500916334],[-6.953730231137996,54.073702297575636],[-7.572167934591079,54.05995636658599],[-7.366030646178785,54.595840969452695],[-7.572167934591079,55.1316222194549],[-6.733847011736145,55.1728600124238],[-5.661948614921897,54.55460317648385]]],[[[-3.005004848635281,58.63500010846633],[-4.073828497728016,57.55302480735525],[-3.055001796877661,57.69001902936095],[-1.959280564776918,57.68479970969951],[-2.219988165689301,56.87001740175353],[-3.119003058271118,55.973793036515474],[-2.085009324543023,55.90999848085127],[-2.005675679673857,55.80490285035023],[-1.11499101399221,54.62498647726539],[-0.4304849918542,54.46437612570216],[0.184981316742039,53.32501414653103],[0.469976840831777,52.92999949809197],[1.681530795914739,52.739520168664],[1.559987827164377,52.09999848083601],[1.050561557630914,51.806760565795685],[1.449865349950301,51.28942780212196],[0.550333693045502,50.765738837275876],[-0.78751746255864,50.77498891865622],[-2.489997524414377,50.50001862243124],[-2.956273972984036,50.696879991247016],[-3.617448085942328,50.22835561787272],[-4.542507900399244,50.34183706318566],[-5.245023159191135,49.95999990498108],[-5.776566941745301,50.15967763935682],[-4.309989793301838,51.21000112568916],[-3.414850633142123,51.42600861266925],[-3.422719467108323,51.42684816740609],[-4.984367234710874,51.593466091510976],[-5.267295701508885,51.99140045837458],[-4.222346564134853,52.301355699261364],[-4.770013393564113,52.840004991255626],[-4.579999152026915,53.49500377055517],[-3.093830673788659,53.404547400669685],[-3.092079637047106,53.404440822963544],[-2.945008510744344,53.984999701546684],[-3.614700825433034,54.600936773292574],[-3.63000545898933,54.615012925833014],[-4.844169073903004,54.790971177786844],[-5.082526617849226,55.06160065369937],[-4.719112107756644,55.50847260194348],[-5.047980922862109,55.78398550070752],[-5.586397670911139,55.31114614523682],[-5.644998745130181,56.275014960344805],[-6.149980841486354,56.78500967063354],[-5.786824713555291,57.81884837506465],[-5.009998745127575,58.63001333275005],[-4.211494513353557,58.55084503847917],[-3.005004848635281,58.63500010846633]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Italy","sov_a3":"ITA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Italy","adm0_a3":"ITA","geou_dif":0,"geounit":"Italy","gu_a3":"ITA","su_dif":0,"subunit":"Italy","su_a3":"ITA","brk_diff":0,"name":"Italy","name_long":"Italy","brk_a3":"ITA","brk_name":"Italy","brk_group":null,"abbrev":"Italy","postal":"I","formal_en":"Italian Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Italy","name_alt":null,"mapcolor7":6,"mapcolor8":7,"mapcolor9":8,"mapcolor13":7,"pop_est":58126212,"gdp_md_est":1823000,"pop_year":-99,"lastcensus":2012,"gdp_year":-99,"economy":"1. Developed region: G7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IT","iso_a3":"ITA","iso_n3":"380","un_a3":"380","wb_a2":"IT","wb_a3":"ITA","woe_id":-99,"adm0_a3_is":"ITA","adm0_a3_us":"ITA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":5,"long_len":5,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"ITA.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376010813834,38.23115509699147],[15.160242954171736,37.44404551853782],[15.309897902089006,37.1342194687318],[15.099988234119449,36.6199872909954],[14.335228712632016,36.996630967754754],[13.826732618879928,37.10453135838019],[12.431003859108813,37.61294993748381],[12.570943637755136,38.12638113051968],[13.741156447004585,38.03496552179536],[14.76124922044616,38.143873602850505],[15.520376010813834,38.23115509699147]]],[[[9.210011834356266,41.20999136002422],[9.809975213264977,40.5000088567661],[9.669518670295673,39.177376410471794],[9.21481774255949,39.240473334300134],[8.80693566247973,38.90661774347847],[8.428302443077115,39.17184703221662],[8.38825320805094,40.378310858718805],[8.15999840661766,40.95000722916379],[8.709990675500109,40.89998444270523],[9.210011834356266,41.20999136002422]]],[[[12.376485223040843,46.76755910906987],[13.806475457421556,46.50930613869119],[13.698109978905478,46.016778062517375],[13.937630242578335,45.591015936864665],[13.141606479554298,45.73669179949541],[12.328581170306306,45.38177806251485],[12.383874952858605,44.88537425391908],[12.261453484759159,44.600482082694015],[12.589237094786483,44.091365871754476],[13.526905958722494,43.5877273626379],[14.029820997787027,42.76100779883248],[15.142569614327956,41.955139675456905],[15.926191033601896,41.96131500911574],[16.169897088290412,41.74029490820342],[15.889345737377797,41.5410822617182],[16.785001661860576,41.179605617836586],[17.519168735431208,40.87714345963224],[18.376687452882575,40.35562490494266],[18.4802470231954,40.168866278639825],[18.293385044028096,39.81077444107325],[17.738380161213286,40.2776710068303],[16.869595981522338,40.44223460546385],[16.448743116937322,39.79540070246648],[17.1714896989715,39.42469981542072],[17.05284061042934,38.9028712021373],[16.635088331781844,38.8435724960824],[16.100960727613057,37.98589874933418],[15.684086948314501,37.90884918878703],[15.687962680736321,38.214592800441864],[15.891981235424707,38.750942491199226],[16.109332309644312,38.96454702407769],[15.718813510814641,39.544072374014945],[15.413612501698822,40.04835683853517],[14.998495721098237,40.17294871679093],[14.70326826341477,40.604550279292624],[14.060671827865264,40.78634796809544],[13.627985060285397,41.188287258461656],[12.88808190273042,41.25308950455562],[12.10668257004491,41.70453481705741],[11.191906365614187,42.35542531998967],[10.511947869517797,42.931462510747224],[10.200028924204048,43.920006822274615],[9.702488234097814,44.03627879493132],[8.88894616052687,44.36633616797954],[8.428560825238577,44.23122813575242],[7.850766635783201,43.76714793555524],[7.435184767291843,43.69384491634918],[7.549596388386163,44.12790110938482],[7.007562290076663,44.25476675066139],[6.749955275101711,45.02851797136759],[7.096652459347837,45.333098863295874],[6.802355177445662,45.70857982032867],[6.843592970414562,45.99114655210067],[7.273850945676685,45.77694774025076],[7.755992058959833,45.82449005795928],[8.31662967289438,46.163642483090854],[8.489952426801295,46.00515086525175],[8.966305779667834,46.036931871111165],[9.182881707403112,46.44021474871698],[9.922836541390353,46.31489940040919],[10.363378126678668,46.483571275409844],[10.442701450246602,46.893546250997446],[11.048555942436508,46.7513585475464],[11.164827915093326,46.94157949481274],[12.153088006243081,47.11539317482644],[12.376485223040843,46.76755910906987]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Kosovo","sov_a3":"KOS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Kosovo","adm0_a3":"KOS","geou_dif":0,"geounit":"Kosovo","gu_a3":"KOS","su_dif":0,"subunit":"Kosovo","su_a3":"KOS","brk_diff":1,"name":"Kosovo","name_long":"Kosovo","brk_a3":"B57","brk_name":"Kosovo","brk_group":null,"abbrev":"Kos.","postal":"KO","formal_en":"Republic of Kosovo","formal_fr":null,"note_adm0":null,"note_brk":"Self admin.; Claimed by Serbia","name_sort":"Kosovo","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":3,"mapcolor13":11,"pop_est":1804838,"gdp_md_est":5352,"pop_year":-99,"lastcensus":1981,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"-99","iso_a3":"-99","iso_n3":"-99","un_a3":"-099","wb_a2":"KV","wb_a3":"KSV","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"KOS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"KOS.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.76216,42.05186],[20.71731000000011,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.3202500000001],[20.0707,42.58863],[20.25758,42.81275000000011],[20.49679,42.88469],[20.63508,43.21671],[20.81448,43.27205],[20.95651,43.13094],[21.143395,43.06868500000012],[21.27421,42.90959],[21.43866,42.86255],[21.63302,42.67717],[21.77505,42.6827],[21.66292,42.43922],[21.54332,42.3202500000001],[21.57663598940212,42.24522439706186],[21.35270000000014,42.2068],[20.76216,42.05186]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Greece","sov_a3":"GRC","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Greece","adm0_a3":"GRC","geou_dif":0,"geounit":"Greece","gu_a3":"GRC","su_dif":0,"subunit":"Greece","su_a3":"GRC","brk_diff":0,"name":"Greece","name_long":"Greece","brk_a3":"GRC","brk_name":"Greece","brk_group":null,"abbrev":"Greece","postal":"GR","formal_en":"Hellenic Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Greece","name_alt":null,"mapcolor7":2,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":10737428,"gdp_md_est":343000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"GR","iso_a3":"GRC","iso_n3":"300","un_a3":"300","wb_a2":"GR","wb_a3":"GRC","woe_id":-99,"adm0_a3_is":"GRC","adm0_a3_us":"GRC","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":6,"tiny":-99,"homepart":1,"filename":"GRC.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[23.699980096133004,35.70500438083553],[24.24666507334868,35.368022365860156],[25.02501549652888,35.42499563246198],[25.769207797964185,35.35401805270908],[25.745023227651586,35.179997666966216],[26.290002882601723,35.29999034274792],[26.16499759288766,35.004995429009796],[24.724982130642303,34.91998769788961],[24.735007358506945,35.08499054619759],[23.51497846852811,35.27999156345098],[23.699980096133004,35.70500438083553]]],[[[26.604195590936282,41.562114569661105],[26.29460208507578,40.93626129817426],[26.056942172965506,40.824123440100834],[25.447677036244187,40.85254547786147],[24.92584842296094,40.94706167252323],[23.714811232200816,40.687129218095116],[24.407998894964066,40.1249929876241],[23.899967889102584,39.96200552017558],[23.3429993018608,39.96099782974579],[22.81398766448896,40.476005153966554],[22.62629886240478,40.25656118423919],[22.849747755634805,39.65931081802577],[23.3500272966526,39.19001129816726],[22.973099399515547,38.97090322524966],[23.530016310324953,38.51000112563847],[24.025024855248944,38.21999298761645],[24.040011020613605,37.655014553369426],[23.115002882589152,37.92001129816222],[23.409971958111072,37.409990749657396],[22.774971958108633,37.30501007745656],[23.15422529469862,36.422505804992056],[22.490028110451107,36.41000010837746],[21.670026482843696,36.8449864771942],[21.295010613701574,37.644989325504696],[21.120034213961333,38.31032339126273],[20.730032179454582,38.769985256498785],[20.217712029712857,39.340234686839636],[20.15001590341052,39.62499766698403],[20.615000441172782,40.11000682225943],[20.674996779063633,40.434999904943055],[20.99998986174728,40.58000397395397],[21.02004031747643,40.84272695572588],[21.674160597426976,40.93127452245798],[22.05537763844427,41.14986583105269],[22.597308383889015,41.130487168943205],[22.76177,41.3048],[22.952377150166566,41.33799388281122],[23.692073601992462,41.30908091894386],[24.49264489105803,41.58389618587205],[25.197201368925533,41.23448598893066],[26.106138136507184,41.32889883072784],[26.117041863720914,41.82690460872473],[26.604195590936282,41.562114569661105]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Croatia","sov_a3":"HRV","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Croatia","adm0_a3":"HRV","geou_dif":0,"geounit":"Croatia","gu_a3":"HRV","su_dif":0,"subunit":"Croatia","su_a3":"HRV","brk_diff":0,"name":"Croatia","name_long":"Croatia","brk_a3":"HRV","brk_name":"Croatia","brk_group":null,"abbrev":"Cro.","postal":"HR","formal_en":"Republic of Croatia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Croatia","name_alt":null,"mapcolor7":5,"mapcolor8":4,"mapcolor9":5,"mapcolor13":1,"pop_est":4489409,"gdp_md_est":82390,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"2. High income: nonOECD","wikipedia":-99,"fips_10":null,"iso_a2":"HR","iso_a3":"HRV","iso_n3":"191","un_a3":"191","wb_a2":"HR","wb_a3":"HRV","woe_id":-99,"adm0_a3_is":"HRV","adm0_a3_us":"HRV","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HRV.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.829838087650046,45.908877671891844],[19.072768995854176,45.52151113543209],[19.39047570158459,45.236515611342384],[19.00548628101012,44.86023366960916],[18.553214145591653,45.08158966733145],[17.861783481526402,45.067740383477144],[17.002146030351014,45.233776760430935],[16.534939406000206,45.21160757097772],[16.318156772535872,45.00412669532591],[15.959367303133376,45.233776760430935],[15.750026075918981,44.81871165626256],[16.23966027188453,44.35114329688571],[16.456442905348865,44.04123973243128],[16.91615644701733,43.66772247982567],[17.297373488034452,43.44634064388736],[17.674921502358984,43.02856252702361],[18.56,42.65],[18.450016310304818,42.47999136002932],[17.509970330483327,42.849994615239154],[16.930005730871642,43.20999848080038],[16.015384555737683,43.50721548112722],[15.174453973052096,44.243191229827914],[15.376250441151795,44.31791535092208],[14.920309279040508,44.73848399512946],[14.901602410550877,45.07606028907611],[14.258747592839995,45.233776760430935],[13.952254672917034,44.80212352149687],[13.656975538801191,45.13693512631596],[13.67940311041582,45.48414907488501],[13.715059848697251,45.500323798192426],[14.4119682145855,45.46616567644742],[14.595109490627918,45.63494090431282],[14.935243767972963,45.471695054702764],[15.327674594797427,45.452316392593325],[15.323953891672431,45.731782538427694],[15.671529575267641,45.8341535507979],[15.768732944408612,46.23810822202353],[16.564808383864943,46.50375092221981],[16.882515089595415,46.38063182228444],[17.630066359129557,45.9517691106941],[18.45606245288286,45.75948110613615],[18.829838087650046,45.908877671891844]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Hungary","sov_a3":"HUN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Hungary","adm0_a3":"HUN","geou_dif":0,"geounit":"Hungary","gu_a3":"HUN","su_dif":0,"subunit":"Hungary","su_a3":"HUN","brk_diff":0,"name":"Hungary","name_long":"Hungary","brk_a3":"HUN","brk_name":"Hungary","brk_group":null,"abbrev":"Hun.","postal":"HU","formal_en":"Republic of Hungary","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Hungary","name_alt":null,"mapcolor7":4,"mapcolor8":6,"mapcolor9":1,"mapcolor13":5,"pop_est":9905596,"gdp_md_est":196600,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"HU","iso_a3":"HUN","iso_n3":"348","un_a3":"348","wb_a2":"HU","wb_a3":"HUN","woe_id":-99,"adm0_a3_is":"HUN","adm0_a3_us":"HUN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"HUN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[16.202298211337364,46.85238597267696],[16.534267612380376,47.49617096616912],[16.340584344150415,47.71290192320123],[16.90375410326726,47.71486562762833],[16.979666782304037,48.123497015976305],[17.48847293464982,47.86746613218621],[17.857132602620027,47.758428860050365],[18.696512892336926,47.880953681014404],[18.77702477384767,48.081768296900634],[19.17436486173989,48.11137889260387],[19.661363559658497,48.26661489520866],[19.769470656013112,48.202691148463614],[20.239054396249347,48.32756724709692],[20.473562045989866,48.56285004332181],[20.801293979584926,48.623854071642384],[21.872236362401736,48.31997081155002],[22.08560835133485,48.42226430927179],[22.640819939878753,48.15023956968735],[22.710531447040495,47.88219391538941],[22.099767693782834,47.6724392767167],[21.62651492685387,46.99423777931816],[21.02195234547125,46.3160879583519],[20.220192498462836,46.127468980486555],[19.596044549241583,46.17172984474454],[18.82983808764996,45.90887767189193],[18.45606245288286,45.759481106136136],[17.630066359129557,45.95176911069419],[16.8825150895953,46.38063182228444],[16.564808383864857,46.50375092221983],[16.370504998447416,46.8413272161665],[16.202298211337364,46.85238597267696]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ireland","sov_a3":"IRL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ireland","adm0_a3":"IRL","geou_dif":0,"geounit":"Ireland","gu_a3":"IRL","su_dif":0,"subunit":"Ireland","su_a3":"IRL","brk_diff":0,"name":"Ireland","name_long":"Ireland","brk_a3":"IRL","brk_name":"Ireland","brk_group":null,"abbrev":"Ire.","postal":"IRL","formal_en":"Ireland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ireland","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":2,"pop_est":4203200,"gdp_md_est":188400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IE","iso_a3":"IRL","iso_n3":"372","un_a3":"372","wb_a2":"IE","wb_a3":"IRL","woe_id":-99,"adm0_a3_is":"IRL","adm0_a3_us":"IRL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"IRL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-6.197884894220991,53.86756500916336],[-6.03298539877761,53.15316417094435],[-6.788856573910849,52.260117906292336],[-8.56161658368356,51.669301255899356],[-9.977085740590269,51.82045482035307],[-9.16628251793078,52.86462881124268],[-9.688524542672454,53.8813626165853],[-8.327987433292009,54.66451894796863],[-7.572167934591064,55.13162221945487],[-7.366030646178785,54.59584096945272],[-7.572167934591064,54.059956366586],[-6.953730231138067,54.073702297575636],[-6.197884894220991,53.86756500916336]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Iceland","sov_a3":"ISL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Iceland","adm0_a3":"ISL","geou_dif":0,"geounit":"Iceland","gu_a3":"ISL","su_dif":0,"subunit":"Iceland","su_a3":"ISL","brk_diff":0,"name":"Iceland","name_long":"Iceland","brk_a3":"ISL","brk_name":"Iceland","brk_group":null,"abbrev":"Iceland","postal":"IS","formal_en":"Republic of Iceland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Iceland","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":306694,"gdp_md_est":12710,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"IS","iso_a3":"ISL","iso_n3":"352","un_a3":"352","wb_a2":"IS","wb_a3":"ISL","woe_id":-99,"adm0_a3_is":"ISL","adm0_a3_us":"ISL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":7,"tiny":-99,"homepart":1,"filename":"ISL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-14.508695441129236,66.45589223903141],[-14.739637417041605,65.8087482774403],[-13.60973222497981,65.12667104761987],[-14.909833746794902,64.36408193628868],[-17.794438035543422,63.67874909123385],[-18.656245896874992,63.49638296167582],[-19.97275468594276,63.64363495549153],[-22.762971971110158,63.960178941495386],[-21.778484259517683,64.40211579045551],[-23.95504391121911,64.89112986923348],[-22.184402635170358,65.0849681667603],[-22.227423265053332,65.37859365504272],[-24.326184047939336,65.61118927678847],[-23.65051469572309,66.26251902939522],[-22.134922451250883,66.41046865504687],[-20.57628373867955,65.73211212835143],[-19.05684160000159,66.27660085719477],[-17.79862382655905,65.99385325790978],[-16.167818976292125,66.52679230413587],[-14.508695441129236,66.45589223903141]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Lithuania","sov_a3":"LTU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Lithuania","adm0_a3":"LTU","geou_dif":0,"geounit":"Lithuania","gu_a3":"LTU","su_dif":0,"subunit":"Lithuania","su_a3":"LTU","brk_diff":0,"name":"Lithuania","name_long":"Lithuania","brk_a3":"LTU","brk_name":"Lithuania","brk_group":null,"abbrev":"Lith.","postal":"LT","formal_en":"Republic of Lithuania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Lithuania","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":3,"mapcolor13":9,"pop_est":3555179,"gdp_md_est":63330,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LT","iso_a3":"LTU","iso_n3":"440","un_a3":"440","wb_a2":"LT","wb_a3":"LTU","woe_id":-99,"adm0_a3_is":"LTU","adm0_a3_us":"LTU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"LTU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.731098667092652,54.327536932993326],[22.65105187347254,54.582740993866736],[22.75776370615526,54.85657440858138],[22.315723504330577,55.015298570365864],[21.268448927503467,55.190481675835315],[21.055800408622414,56.03107636171106],[22.201156853939494,56.33780182557948],[23.878263787539964,56.273671373105266],[24.860684441840757,56.37252838807963],[25.000934279080894,56.16453074810484],[25.533046502390334,56.10029694276603],[26.494331495883753,55.615106919977634],[26.58827924979039,55.16717560487167],[25.7684326514798,54.84696259217509],[25.536353794056993,54.28242340760253],[24.450683628037037,53.905702216194754],[23.48412763844985,53.91249766704114],[23.24398725758951,54.22056671814914],[22.731098667092652,54.327536932993326]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Latvia","sov_a3":"LVA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Latvia","adm0_a3":"LVA","geou_dif":0,"geounit":"Latvia","gu_a3":"LVA","su_dif":0,"subunit":"Latvia","su_a3":"LVA","brk_diff":0,"name":"Latvia","name_long":"Latvia","brk_a3":"LVA","brk_name":"Latvia","brk_group":null,"abbrev":"Lat.","postal":"LV","formal_en":"Republic of Latvia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Latvia","name_alt":null,"mapcolor7":4,"mapcolor8":7,"mapcolor9":6,"mapcolor13":13,"pop_est":2231503,"gdp_md_est":38860,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"LV","iso_a3":"LVA","iso_n3":"428","un_a3":"428","wb_a2":"LV","wb_a3":"LVA","woe_id":-99,"adm0_a3_is":"LVA","adm0_a3_us":"LVA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"LVA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[21.055800408622414,56.03107636171106],[21.09042361825797,56.78387278912293],[21.581866489353672,57.41187063254993],[22.524341261492875,57.75337433535076],[23.318452996522097,57.00623647727487],[24.12072960785343,57.02569265403277],[24.312862583114622,57.79342357037698],[25.16459354014927,57.97015696881519],[25.602809685984365,57.84752879498657],[26.463532342237787,57.47638865826633],[27.28818484875151,57.47452830670383],[27.77001590344093,57.24425812441123],[27.855282016722526,56.75932648378429],[28.176709425577993,56.16912995057881],[27.10245975109453,55.783313707087686],[26.494331495883753,55.615106919977634],[25.533046502390334,56.10029694276603],[25.000934279080894,56.16453074810484],[24.860684441840757,56.37252838807963],[23.878263787539964,56.273671373105266],[22.201156853939494,56.33780182557948],[21.055800408622414,56.03107636171106]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Luxembourg","sov_a3":"LUX","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Luxembourg","adm0_a3":"LUX","geou_dif":0,"geounit":"Luxembourg","gu_a3":"LUX","su_dif":0,"subunit":"Luxembourg","su_a3":"LUX","brk_diff":0,"name":"Luxembourg","name_long":"Luxembourg","brk_a3":"LUX","brk_name":"Luxembourg","brk_group":null,"abbrev":"Lux.","postal":"L","formal_en":"Grand Duchy of Luxembourg","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Luxembourg","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":3,"mapcolor13":7,"pop_est":491775,"gdp_md_est":39370,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"LU","iso_a3":"LUX","iso_n3":"442","un_a3":"442","wb_a2":"LU","wb_a3":"LUX","woe_id":-99,"adm0_a3_is":"LUX","adm0_a3_us":"LUX","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":4,"tiny":5,"homepart":1,"filename":"LUX.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.043073357781111,50.128051662794235],[6.242751092156993,49.90222565367873],[6.186320428094177,49.463802802114515],[5.897759230176405,49.44266714130703],[5.674051954784829,49.529483547557504],[5.782417433300906,50.09032786722122],[6.043073357781111,50.128051662794235]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Macedonia","sov_a3":"MKD","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Macedonia","adm0_a3":"MKD","geou_dif":0,"geounit":"Macedonia","gu_a3":"MKD","su_dif":0,"subunit":"Macedonia","su_a3":"MKD","brk_diff":0,"name":"Macedonia","name_long":"Macedonia","brk_a3":"MKD","brk_name":"Macedonia","brk_group":null,"abbrev":"Mkd.","postal":"MK","formal_en":"Former Yugoslav Republic of Macedonia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Macedonia, FYR","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":7,"mapcolor13":3,"pop_est":2066718,"gdp_md_est":18780,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MK","iso_a3":"MKD","iso_n3":"807","un_a3":"807","wb_a2":"MK","wb_a3":"MKD","woe_id":-99,"adm0_a3_is":"MKD","adm0_a3_us":"MKD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":9,"long_len":9,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MKD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731000000011,41.84711],[20.76216,42.05186],[21.35270000000014,42.2068],[21.57663598940212,42.24522439706186],[21.917080000000112,42.30364],[22.38052575042468,42.32025950781508],[22.881373732197346,41.999297186850356],[22.952377150166512,41.33799388281119],[22.76177,41.3048],[22.597308383889015,41.130487168943205],[22.05537763844427,41.14986583105269],[21.674160597426976,40.93127452245795],[21.0200403174764,40.84272695572588],[20.60518,41.08622],[20.46315,41.5150900000001],[20.59023,41.85541]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Moldova","sov_a3":"MDA","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Moldova","adm0_a3":"MDA","geou_dif":0,"geounit":"Moldova","gu_a3":"MDA","su_dif":0,"subunit":"Moldova","su_a3":"MDA","brk_diff":0,"name":"Moldova","name_long":"Moldova","brk_a3":"MDA","brk_name":"Moldova","brk_group":null,"abbrev":"Mda.","postal":"MD","formal_en":"Republic of Moldova","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Moldova","name_alt":null,"mapcolor7":3,"mapcolor8":5,"mapcolor9":4,"mapcolor13":12,"pop_est":4320748,"gdp_md_est":10670,"pop_year":-99,"lastcensus":2004,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"MD","iso_a3":"MDA","iso_n3":"498","un_a3":"498","wb_a2":"MD","wb_a3":"MDA","woe_id":-99,"adm0_a3_is":"MDA","adm0_a3_us":"MDA","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"MDA.geojson"},"geometry":{"type":"Polygon","coordinates":[[[26.619336785597795,48.22072622333347],[26.857823520624805,48.368210761094495],[27.522537469195154,48.467119452501116],[28.259546746541844,48.15556224221342],[28.670891147585163,48.1181485052341],[29.12269819511303,47.84909516050646],[29.05086795422733,47.51022695575249],[29.41513512545274,47.34664520933257],[29.559674106573112,46.928582872091326],[29.908851759569302,46.67436066343146],[29.838210076626297,46.52532583270169],[30.02465864433537,46.42393667254503],[29.75997195813639,46.34998769793536],[29.170653924279886,46.3792623968287],[29.072106967899295,46.517677720722496],[28.862972446414062,46.43788930926383],[28.93371748222162,46.2588304713725],[28.659987420371575,45.93998688413164],[28.485269402792767,45.5969070501459],[28.233553501099042,45.48828318946837],[28.0544429867754,45.944586086605625],[28.160017937947714,46.37156260841722],[28.128030226359044,46.810476386088254],[27.551166212684848,47.40511709247083],[27.233872918412743,47.82677094175638],[26.924176059687568,48.123264472030996],[26.619336785597795,48.22072622333347]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Montenegro","sov_a3":"MNE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Montenegro","adm0_a3":"MNE","geou_dif":0,"geounit":"Montenegro","gu_a3":"MNE","su_dif":0,"subunit":"Montenegro","su_a3":"MNE","brk_diff":0,"name":"Montenegro","name_long":"Montenegro","brk_a3":"MNE","brk_name":"Montenegro","brk_group":null,"abbrev":"Mont.","postal":"ME","formal_en":"Montenegro","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Montenegro","name_alt":null,"mapcolor7":4,"mapcolor8":1,"mapcolor9":4,"mapcolor13":5,"pop_est":672180,"gdp_md_est":6816,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"ME","iso_a3":"MNE","iso_n3":"499","un_a3":"499","wb_a2":"ME","wb_a3":"MNE","woe_id":-99,"adm0_a3_is":"MNE","adm0_a3_us":"MNE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":10,"long_len":10,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"MNE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[19.801613396898688,42.50009349219084],[19.738051385179627,42.688247382165564],[19.3044900000001,42.19574],[19.37177000000014,41.87755],[19.16246,41.95502],[18.88214,42.28151],[18.45,42.48],[18.56,42.65],[18.70648,43.20011],[19.03165,43.43253],[19.21852,43.52384],[19.48389,43.35229],[19.63,43.21377997027054],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275000000011],[20.0707,42.58863],[19.801613396898688,42.50009349219084]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Netherlands","sov_a3":"NL1","adm0_dif":1,"level":2,"type":"Country","admin":"Netherlands","adm0_a3":"NLD","geou_dif":0,"geounit":"Netherlands","gu_a3":"NLD","su_dif":0,"subunit":"Netherlands","su_a3":"NLD","brk_diff":0,"name":"Netherlands","name_long":"Netherlands","brk_a3":"NLD","brk_name":"Netherlands","brk_group":null,"abbrev":"Neth.","postal":"NL","formal_en":"Kingdom of the Netherlands","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Netherlands","name_alt":null,"mapcolor7":4,"mapcolor8":2,"mapcolor9":2,"mapcolor13":9,"pop_est":16715999,"gdp_md_est":672000,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NL","iso_a3":"NLD","iso_n3":"528","un_a3":"528","wb_a2":"NL","wb_a3":"NLD","woe_id":-99,"adm0_a3_is":"NLD","adm0_a3_us":"NLD","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Western Europe","region_wb":"Europe & Central Asia","name_len":11,"long_len":11,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"NLD.geojson"},"geometry":{"type":"Polygon","coordinates":[[[6.074182570020923,53.510403347378144],[6.905139601274129,53.48216217713064],[7.092053256873896,53.14404328064489],[6.842869500362383,52.22844025329755],[6.589396599970826,51.852029120483394],[5.988658074577813,51.851615709025054],[6.156658155958779,50.80372101501058],[5.606975945670001,51.037298488969775],[4.973991326526914,51.475023708698124],[4.047071160507527,51.26725861266857],[3.314971144228537,51.34575511331991],[3.830288527043137,51.62054454203195],[4.705997348661185,53.09179840759776],[6.074182570020923,53.510403347378144]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Norway","sov_a3":"NOR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Norway","adm0_a3":"NOR","geou_dif":0,"geounit":"Norway","gu_a3":"NOR","su_dif":0,"subunit":"Norway","su_a3":"NOR","brk_diff":0,"name":"Norway","name_long":"Norway","brk_a3":"NOR","brk_name":"Norway","brk_group":null,"abbrev":"Nor.","postal":"N","formal_en":"Kingdom of Norway","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Norway","name_alt":null,"mapcolor7":5,"mapcolor8":3,"mapcolor9":8,"mapcolor13":12,"pop_est":4676305,"gdp_md_est":276400,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"NO","iso_a3":"NOR","iso_n3":"578","un_a3":"578","wb_a2":"NO","wb_a3":"NOR","woe_id":-99,"adm0_a3_is":"NOR","adm0_a3_us":"NOR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"NOR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547316202915,71.18547435168051],[31.29341840996548,70.45378774685992],[30.005435011522792,70.1862588568849],[31.10107872897512,69.55808014594486],[29.399580519332886,69.15691600206307],[28.591929559043194,69.0647769232867],[29.01557295097197,69.76649119737797],[27.73229210786789,70.16419302029628],[26.1796220232263,69.82529897732616],[25.68921268077639,69.09211375596902],[24.73567915212672,68.64955678982145],[23.662049594830762,68.89124746365053],[22.356237827247412,68.84174144151494],[21.24493615081073,69.37044302029312],[20.64559288908958,69.10624726020085],[20.025268995857914,69.06513865831272],[19.878559604581255,68.40719432237262],[17.99386844246439,68.56739126247734],[17.729181756265348,68.01055186631623],[16.76887861498554,68.01393667263139],[16.108712192456835,67.3024555528369],[15.108411492583059,66.19386688909543],[13.55568973150909,64.78702769638147],[13.919905226302205,64.44542064071611],[13.57191613124877,64.04911408146967],[12.57993533697393,64.06621898055835],[11.93056928879423,63.128317572676984],[11.992064243221535,61.800362453856565],[12.631146681375242,61.29357168237009],[12.3003658382749,60.11793284773006],[11.468271925511175,59.432393296946],[11.027368605196926,58.856149400459394],[10.356556837616097,59.46980703392538],[8.382000359743643,58.31328847923328],[7.048748406613299,58.07888418235728],[5.665835402050419,58.58815542259367],[5.308234490590735,59.66323191999382],[4.992078077829007,61.970998033284275],[5.912900424837885,62.614472968182696],[8.553411085655766,63.45400828719647],[10.527709181366788,64.48603831649748],[12.358346795306375,65.87972585719316],[14.761145867581604,67.81064158799515],[16.43592736172897,68.56320547146169],[19.184028354578516,69.81744415961782],[21.378416375420613,70.25516937934606],[23.023742303161583,70.20207184516626],[24.546543409938522,71.03049673123724],[26.370049676221807,70.98626170519537],[28.165547316202915,71.18547435168051]]],[[[24.72412,77.85385],[22.49032,77.44493],[20.72601,77.67704],[21.41611,77.93504],[20.8119,78.25463],[22.88426,78.45494],[23.28134,78.07954],[24.72412,77.85385]]],[[[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.66956,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.17077,80.01046],[13.71852,79.66039],[15.14282,79.67431],[15.52255,80.01608],[16.99085,80.05086],[18.25183,79.70175]]],[[[25.447625359811894,80.40734039989451],[27.4075057309135,80.05640574820046],[25.92465050629818,79.51783397085455],[23.02446577321362,79.4000117052291],[20.075188429451885,79.56682322866726],[19.897266473070914,79.84236196564751],[18.462263624757924,79.85988027619442],[17.368015170977458,80.31889618602702],[20.455992059010697,80.59815562613224],[21.9079447771154,80.35767934846209],[22.919252557067438,80.65714427359349],[25.447625359811894,80.40734039989451]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Russia","sov_a3":"RUS","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Russia","adm0_a3":"RUS","geou_dif":0,"geounit":"Russia","gu_a3":"RUS","su_dif":0,"subunit":"Russia","su_a3":"RUS","brk_diff":0,"name":"Russia","name_long":"Russian Federation","brk_a3":"RUS","brk_name":"Russia","brk_group":null,"abbrev":"Rus.","postal":"RUS","formal_en":"Russian Federation","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Russian Federation","name_alt":null,"mapcolor7":2,"mapcolor8":5,"mapcolor9":7,"mapcolor13":7,"pop_est":140041247,"gdp_md_est":2266000,"pop_year":-99,"lastcensus":2010,"gdp_year":-99,"economy":"3. Emerging region: BRIC","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RU","iso_a3":"RUS","iso_n3":"643","un_a3":"643","wb_a2":"RU","wb_a3":"RUS","woe_id":-99,"adm0_a3_is":"RUS","adm0_a3_us":"RUS","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":18,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"RUS.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[143.64800744036287,50.74760040954151],[144.65414757708564,48.976390692737596],[143.17392785051723,49.30655141865037],[142.5586682476501,47.861575018904915],[143.53349246640406,46.83672801369249],[143.5052771343726,46.13790761980948],[142.74770063697392,46.74076487892657],[142.0920300640545,45.96675527605879],[141.90692508358504,46.80592886004655],[142.0184428244709,47.780132961612935],[141.90444461483506,48.85918854429956],[142.13580000220568,49.61516307229746],[142.1799833518153,50.95234243428192],[141.59407596249002,51.93543488220254],[141.68254601457366,53.30196645772878],[142.60693403541075,53.762145087287905],[142.2097489768154,54.22547597921687],[142.654786411713,54.36588084575388],[142.91461551327657,53.704577541714734],[143.26084760963207,52.74076040303905],[143.23526777564766,51.75666026468875],[143.64800744036287,50.74760040954151]]],[[[22.731098667092652,54.327536932993326],[20.892244500418652,54.312524929412575],[19.660640089606403,54.426083889373984],[19.888481479581344,54.8661603867715],[21.2684489275035,55.19048167583528],[22.315723504330606,55.0152985703659],[22.757763706155288,54.85657440858142],[22.651051873472568,54.58274099386671],[22.731098667092652,54.327536932993326]]],[[[-175.01425,66.58435],[-174.33983,66.33556],[-174.57182,67.06219],[-171.85731,66.91308],[-169.89958,65.97724],[-170.89107,65.54139],[-172.53025,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392,64.63125],[-175.98353,64.92288],[-176.20716,65.35667],[-177.22266,65.52024],[-178.35993,65.39052],[-178.90332,65.74044],[-178.68611,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.97970870219837],[-180,68.96363636363635],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180.00000000000014,70.83219920854668],[178.9034250000001,70.78114],[178.7253,71.0988],[180.00000000000014,71.51571433642826],[180.00000000000014,70.83219920854668]]],[[[-178.69378,70.89302],[-180,70.83219920854668],[-180,71.51571433642826],[-179.871875,71.55762],[-179.02433,71.55553],[-177.577945,71.26948],[-177.663575,71.13277],[-178.69378,70.89302]]],[[[143.60385,73.21244],[142.08763,73.20544],[140.038155,73.31692],[139.86312,73.36983],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244]]],[[[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845],[150.73167,75.08406]]],[[[145.086285,75.562625],[144.3,74.82],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167],[137.51176,75.94917],[138.831075,76.13676],[141.471615,76.09289],[145.086285,75.562625]]],[[[57.5356925799924,70.72046397570216],[56.94497928246395,70.63274323188668],[53.6773751157842,70.76265778266847],[53.41201663596539,71.2066616889202],[51.60189456564572,71.47475901965049],[51.45575361512422,72.01488108996514],[52.47827518088357,72.22944163684096],[52.444168735570855,72.77473135038485],[54.42761355979766,73.62754751249759],[53.50828982932515,73.74981395130015],[55.90245893740766,74.62748647734533],[55.631932814359715,75.08141225859717],[57.86864383324885,75.60939036732321],[61.170044386647504,76.25188345000814],[64.49836836127022,76.43905548776928],[66.2109770038551,76.80978221303124],[68.15705976753483,76.93969676381292],[68.85221113472512,76.54481130645462],[68.18057254422766,76.23364166940911],[64.637326287703,75.73775462513623],[61.58350752141476,75.2608845079468],[58.47708214705338,74.30905630156283],[56.98678551618801,73.33304352486624],[55.419335971910954,72.37126760526598],[55.622837762276305,71.54059479439033],[57.5356925799924,70.72046397570216]]],[[[106.97013000000013,76.97419],[107.24000000000015,76.48],[108.1538,76.72335000000015],[111.07726000000017,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779000000014],[112.77918,75.03186],[110.1512500000002,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774000000011],[113.01954000000026,73.97693000000015],[113.52958000000032,73.33505000000011],[113.96881,73.59488],[115.56782,73.75285],[118.77633000000023,73.58772],[119.02,73.12],[123.20066000000011,72.97122],[123.25777000000018,73.73503000000011],[125.38000000000018,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46000000000012,71.98],[129.7159900000002,71.19304],[131.28858000000028,70.78699000000012],[132.25350000000017,71.83630000000011],[133.85766000000032,71.38642000000016],[135.56193,71.65525000000014],[137.49755,71.34763],[138.23409000000018,71.62803],[139.86983000000012,71.48783000000014],[139.14791,72.4161900000001],[140.46817,72.84941000000013],[149.5,72.2],[150.3511800000002,71.60643],[152.96890000000022,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031000000025,70.45324],[159.70866,69.72198],[160.94053000000034,69.4372800000001],[162.27907000000013,69.64204],[164.05248000000014,69.66823],[165.94037000000023,69.47199],[167.83567,69.58269],[169.5776300000002,68.6938],[170.81688000000028,69.01363],[170.0082000000002,69.65276],[170.4534500000003,70.09703],[173.64391000000026,69.81743],[175.72403000000023,69.87725000000023],[178.6,69.4],[180.00000000000014,68.96363636363657],[180.00000000000014,64.97970870219848],[179.99281,64.97433],[178.70720000000026,64.53493],[177.41128000000018,64.60821],[178.31300000000024,64.07593],[178.9082500000002,63.251970000000135],[179.37034,62.982620000000104],[179.48636,62.56894],[179.22825000000014,62.30410000000015],[177.3643,62.5219],[174.56929000000022,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985000000001,60.33618],[170.3308500000003,59.88177],[168.90046,60.57355],[166.29498000000032,59.788550000000214],[165.84000000000023,60.16],[164.87674,59.7316],[163.53929000000014,59.86871],[163.21711000000025,59.21101],[162.0173300000001,58.24328],[162.05297,57.83912],[163.19191,57.61503000000011],[163.05794000000017,56.159240000000125],[162.12958000000023,56.12219],[161.70146,55.285680000000156],[162.11749000000017,54.85514],[160.36877000000032,54.34433],[160.02173000000022,53.20257],[158.5309400000002,52.958680000000236],[158.23118,51.94269],[156.7897900000003,51.01105],[156.42000000000016,51.7],[155.99182,53.15895],[155.43366000000012,55.38103000000012],[155.91442000000032,56.767920000000146],[156.75815,57.3647],[156.8103500000001,57.83204],[158.3643300000002,58.05575],[160.15064000000012,59.31477000000012],[161.87204,60.34300000000013],[163.66969,61.1409],[164.47355000000013,62.55061],[163.2584200000002,62.46627],[162.65791,61.6425],[160.1214800000001,60.54423],[159.30232,61.77396],[156.7206800000001,61.43442],[154.21806000000035,59.75818000000013],[155.04375,59.14495],[152.81185,58.88385],[151.26573000000025,58.78089],[151.33815000000013,59.50396],[149.78371,59.65573000000014],[148.54481,59.16448],[145.48722,59.33637],[142.19782000000018,59.03998],[138.95848000000032,57.08805],[135.12619,54.72959],[136.70171,54.603550000000126],[137.19342,53.97732],[138.1647,53.755010000000254],[138.80463,54.25455000000011],[139.90151,54.18968000000018],[141.34531,53.08957000000012],[141.37923,52.23877],[140.5974200000002,51.2396700000001],[140.51308,50.04553000000013],[140.06193000000022,48.44671000000017],[138.5547200000002,46.99965],[138.21971,46.30795],[136.86232,45.14350000000019],[135.5153500000002,43.989],[134.86939000000027,43.39821],[133.53687000000028,42.81147],[132.90627000000015,42.79849],[132.27807000000027,43.28456000000011],[130.93587000000014,42.55274],[130.78,42.22000000000019],[130.64000000000019,42.395],[130.6338664084098,42.90301463477056],[131.144687941615,42.92998973242695],[131.28855512911562,44.111519680348266],[131.02519000000026,44.96796],[131.8834542176596,45.32116160743652],[133.09712000000022,45.14409],[133.7696439963132,46.116926988299156],[134.1123500000002,47.21248000000014],[134.50081,47.578450000000146],[135.0263114767868,48.47822988544391],[133.37359581922803,48.18344167743484],[132.50669000000013,47.78896],[130.98726000000013,47.79013],[130.58229332898267,48.729687404976204],[129.3978178244205,49.440600084015614],[127.65740000000038,49.76027],[127.28745568248493,50.73979726826545],[126.93915652883786,51.3538941514059],[126.56439904185699,51.7842554795327],[125.94634891164647,52.79279857035695],[125.06821129771045,53.161044826868924],[123.57147,53.4588],[122.24574791879307,53.43172597921369],[121.00308475147037,53.25140106873124],[120.1770886577169,52.75388621684121],[120.725789015792,52.51622630473091],[120.7382,51.96411],[120.18208000000018,51.64355],[119.27939,50.58292],[119.28846072802585,50.14288279886196],[117.8792444194265,49.51098338479704],[116.67880089728621,49.888531399121405],[115.48569542853144,49.80517731383475],[114.96210981655038,50.14024730081513],[114.36245649623534,50.248302720737485],[112.89773969935439,49.54356537535699],[111.58123091028668,49.37796824807767],[110.66201053267886,49.13012807880585],[109.40244917199672,49.29296051695769],[108.47516727095127,49.28254771585071],[107.86817589725112,49.79370514586588],[106.88880415245532,50.27429596618029],[105.8865914245869,50.406019192092174],[104.62158,50.275320000000164],[103.67654544476036,50.089966132195144],[102.25589000000011,50.51056000000011],[102.06521,51.25991],[100.88948042196265,51.51685578063842],[99.98173221232356,51.63400625264395],[98.8614905131005,52.04736603454671],[97.82573978067452,51.01099518493325],[98.23176150919173,50.42240062112873],[97.25976000000023,49.72605],[95.81402000000017,49.977460000000114],[94.81594933469879,50.01343333597088],[94.14756635943561,50.48053660745716],[93.10421,50.49529],[92.23471154171969,50.80217072204175],[90.71366743364078,50.331811835321105],[88.80556684769559,49.47052073831247],[87.75126427607685,49.29719798440556],[87.35997033076269,49.21498078062916],[86.82935672398966,49.82667470966813],[85.5412699726825,49.69285858824816],[85.11555952346211,50.11730296487763],[84.41637739455304,50.311399644565824],[83.93511478061893,50.88924551045358],[83.38300377801247,51.069182847693895],[81.94598554883994,50.81219594990633],[80.56844689323546,51.38833649352844],[80.03555952344172,50.864750881547224],[77.80091556184433,53.40441498474754],[76.52517947785478,54.177003485727134],[76.89110029491346,54.49052440044193],[74.38482000000013,53.54685000000011],[73.42567874542053,53.489810289109755],[73.50851606638437,54.035616766976595],[72.22415001820221,54.37665538188679],[71.1801310566095,54.133285224008254],[70.86526655465516,55.169733588270105],[69.06816694527289,55.3852501491435],[68.1691003762589,54.97039175070438],[65.6668700000001,54.601250000000164],[65.17853356309595,54.35422781027208],[61.43660000000013,54.00625],[60.97806644068325,53.66499339457914],[61.699986199800634,52.97999644633427],[60.739993117114544,52.71998647725775],[60.92726850774025,52.447548326215006],[59.96753380721557,51.960420437215674],[61.58800337102414,51.272658799843185],[61.33742435084101,50.79907013610426],[59.93280724471557,50.842194118851836],[59.64228234237057,50.545442206415714],[58.36332000000013,51.06364],[56.77798,51.04355],[55.71694000000011,50.62171000000015],[54.532878452376195,51.02623973245937],[52.32872358583106,51.718652248738096],[50.76664839051219,51.69276235615987],[48.702381626181044,50.60512848571284],[48.577841424357615,49.874759629915644],[47.549480421749394,50.454698391311126],[46.75159630716277,49.35600576435374],[47.0436715024766,49.152038886097586],[46.46644575377629,48.39415233010493],[47.31524000000016,47.71585],[48.05725,47.74377],[48.694733514201886,47.0756281601779],[48.593250000000154,46.561040000000105],[49.101160000000135,46.39933],[48.64541000000011,45.80629],[47.67591,45.64149000000012],[46.68201,44.6092000000001],[47.59094,43.66016000000013],[47.49252,42.98658],[48.58437000000018,41.80888],[47.98728315612604,41.4058192001944],[47.81566572448466,41.151416124021345],[47.373315464066394,41.21973236751114],[46.686070591016716,41.827137152669906],[46.40495079934894,41.860675157227426],[45.7764,42.09244000000024],[45.470279168485916,42.50278066667005],[44.53762291848207,42.711992702803684],[43.93121000000011,42.5549600000001],[43.755990000000196,42.74083],[42.39440000000016,43.2203],[40.92219000000014,43.38215000000014],[40.07696495947985,43.553104153002494],[39.955008579271095,43.434997666999294],[38.68,44.28],[37.53912000000011,44.65721],[36.67546000000013,45.24469],[37.40317,45.4045100000001],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475000000013],[39.12120000000013,47.26336],[38.22353803889948,47.10218984637598],[38.25511233902981,47.54640045835697],[38.77057,47.82562000000024],[39.738277622238996,47.89893707945208],[39.89562000000015,48.23241],[39.67465,48.783820000000134],[40.08078901546949,49.30742991799937],[40.069040000000115,49.60105],[38.59498823421356,49.92646190042373],[38.010631137857075,49.91566152607473],[37.39345950699524,50.38395335550368],[36.626167840325394,50.225590928745135],[35.35611616388812,50.57719737405915],[35.37791,50.77394],[35.02218305841794,51.2075723333715],[34.2248157081544,51.255993150428935],[34.14197838719061,51.566413479206204],[34.39173058445723,51.768881740925906],[33.75269982273588,52.33507457133166],[32.71576053236716,52.23846548116216],[32.41205813978777,52.28869497334977],[32.15944000000022,52.061250000000115],[31.78597,52.10168],[31.54001834486226,52.74205231384644],[31.30520063652798,53.0739958766733],[31.49764,53.16743000000014],[32.304519484188376,53.132726141972846],[32.693643019346126,53.35142080343214],[32.405598585751164,53.618045355842014],[31.731272820774592,53.79402944601202],[31.791424187962406,53.974638576872195],[31.384472283663822,54.15705638286238],[30.75753380709878,54.811770941784395],[30.971835971813245,55.081547756564134],[30.87390913262007,55.55097646750351],[29.89629438652244,55.7894632025305],[29.37157189303079,55.67009064393628],[29.22951338066039,55.91834422466641],[28.17670942557794,56.16912995057879],[27.855282016722526,56.75932648378438],[27.770015903440992,57.244258124411196],[27.288184848751655,57.47452830670392],[27.71668582531578,57.79189911562445],[27.420150000000202,58.72457000000014],[28.131699253051863,59.300825100331],[27.98112,59.47537],[29.1177,60.02805000000012],[28.07,60.50352000000015],[30.211107212044652,61.78002777774969],[31.139991082491036,62.357692776124445],[31.51609215671127,62.867687486412905],[30.035872430142803,63.552813625738565],[30.444684686003736,64.20445343693908],[29.544429559047018,64.94867157659056],[30.21765,65.80598],[29.054588657352383,66.94428620062203],[29.977426385220696,67.69829702419275],[28.44594363781877,68.36461294216399],[28.591929559043365,69.0647769232867],[29.39955,69.15692000000018],[31.10108000000011,69.55811],[32.13272000000026,69.90595000000025],[33.77547,69.30142000000012],[36.51396,69.06342],[40.292340000000166,67.9324],[41.059870000000124,67.4571300000001],[41.12595000000019,66.79158000000012],[40.01583,66.26618000000013],[38.38295,65.9995300000001],[33.918710000000175,66.75961],[33.18444,66.63253],[34.81477,65.90015000000014],[34.87857425307877,65.4362128770482],[34.94391000000015,64.41437000000016],[36.23129,64.10945],[37.01273000000012,63.84983000000011],[37.14197000000016,64.33471],[36.539579035089815,64.76446],[37.17604000000014,65.14322000000013],[39.59345,64.52079000000018],[40.43560000000011,64.76446],[39.76260000000016,65.49682],[42.0930900000001,66.47623],[43.01604000000012,66.41858],[43.94975000000014,66.06908],[44.53226,66.75634000000014],[43.69839,67.35245],[44.18795000000014,67.95051],[43.45282,68.57079],[46.25000000000014,68.25],[46.82134000000016,67.68997],[45.55517,67.56652],[45.5620200000001,67.01005000000019],[46.34915000000015,66.6676700000001],[47.894160000000255,66.88455000000016],[48.13876,67.52238],[50.22766000000016,67.99867000000013],[53.71743000000018,68.85738000000012],[54.47171,68.80815],[53.48582000000013,68.20131],[54.72628,68.09702],[55.44268000000014,68.43866],[57.317020000000156,68.46628],[58.80200000000021,68.88082],[59.94142000000019,68.2784400000001],[61.07784000000018,68.94069],[60.03,69.52],[60.55,69.85],[63.50400000000016,69.54739],[64.888115,69.23483500000013],[68.51216000000014,68.09233000000017],[69.18068,68.61563000000012],[68.16444,69.14436],[68.13522,69.35649],[66.93008000000012,69.45461000000012],[67.25976,69.92873],[66.72492000000014,70.70889000000014],[66.69466,71.02897000000024],[68.54006000000011,71.93450000000024],[69.19636000000011,72.84336000000016],[69.94,73.04000000000013],[72.58754,72.7762900000001],[72.79603,72.22006],[71.8481100000001,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.56470000000022,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28000000000011,66.32000000000016],[72.42301000000018,66.17267000000018],[72.82077,66.53267],[73.92099000000016,66.78946000000013],[74.1865100000002,67.28429],[75.052,67.76047000000017],[74.46926000000016,68.32899],[74.93584000000013,68.98918],[73.84236,69.07146],[73.60187000000022,69.62763],[74.3998,70.63175],[73.1011,71.44717000000026],[74.89082000000022,72.12119],[74.65926,72.83227],[75.15801000000019,72.85497000000011],[75.68351,72.30056000000013],[75.28898000000012,71.33556],[76.35911,71.15287000000015],[75.90313000000017,71.87401],[77.57665000000011,72.26717],[79.65202000000014,72.32011],[81.5,71.75],[80.61071000000013,72.58285000000012],[80.51109,73.6482],[82.25,73.85000000000011],[84.65526,73.80591000000018],[86.82230000000024,73.93688],[86.00956,74.45967000000014],[87.16682000000017,75.11643],[88.31571000000011,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421000000016,76.0472],[95.86000000000016,76.14],[96.67821,75.91548],[98.92254000000023,76.44689],[100.75967000000023,76.43028],[101.03532,76.86189],[101.99084000000013,77.2875400000002],[104.3516000000001,77.69792],[106.06664000000013,77.37389],[104.70500000000024,77.1274],[106.97013000000013,76.97419]]],[[[105.07547,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129],[105.37243,78.71334],[105.07547,78.30689]]],[[[51.13618655783128,80.54728017854093],[49.79368452332071,80.4154277615482],[48.89441124857754,80.3395667589437],[48.754936557821765,80.17546824820084],[47.586119012244154,80.01018117951533],[46.502825962109654,80.24724681265437],[47.07245527526291,80.55942414012945],[44.846958042181114,80.58980988231718],[46.79913862487123,80.77191762971364],[48.318477410684665,80.78400991486996],[48.522806023966695,80.51456899690015],[49.09718956889091,80.75398590770843],[50.03976769389462,80.91888540315182],[51.52293297710369,80.6997256538019],[51.13618655783128,80.54728017854093]]],[[[99.93976,78.88094],[97.75794,78.7562],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379],[91.18107,80.34146],[93.77766,81.0246],[95.940895,81.2504],[97.88385,80.746975],[100.186655,79.780135],[99.93976,78.88094]]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovakia","sov_a3":"SVK","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovakia","adm0_a3":"SVK","geou_dif":0,"geounit":"Slovakia","gu_a3":"SVK","su_dif":0,"subunit":"Slovakia","su_a3":"SVK","brk_diff":0,"name":"Slovakia","name_long":"Slovakia","brk_a3":"SVK","brk_name":"Slovakia","brk_group":null,"abbrev":"Svk.","postal":"SK","formal_en":"Slovak Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovak Republic","name_alt":null,"mapcolor7":2,"mapcolor8":4,"mapcolor9":4,"mapcolor13":9,"pop_est":5463046,"gdp_md_est":119500,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SK","iso_a3":"SVK","iso_n3":"703","un_a3":"703","wb_a2":"SK","wb_a3":"SVK","woe_id":-99,"adm0_a3_is":"SVK","adm0_a3_us":"SVK","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVK.geojson"},"geometry":{"type":"Polygon","coordinates":[[[18.853144158613617,49.49622976337764],[18.909574822676316,49.435845852244576],[19.320712517990472,49.571574001659194],[19.825022820726872,49.21712535256923],[20.41583947111985,49.43145335549977],[20.887955356538413,49.32877228453583],[21.607808058364213,49.47010732685409],[22.558137648211755,49.085738023467144],[22.28084191253356,48.82539215758067],[22.08560835133485,48.42226430927179],[21.872236362401736,48.31997081155002],[20.801293979584926,48.623854071642384],[20.473562045989866,48.56285004332181],[20.239054396249347,48.32756724709692],[19.769470656013112,48.202691148463614],[19.661363559658497,48.26661489520866],[19.17436486173989,48.11137889260387],[18.77702477384767,48.081768296900634],[18.696512892336926,47.880953681014404],[17.857132602620027,47.758428860050365],[17.48847293464982,47.86746613218621],[16.979666782304037,48.123497015976305],[16.879982944413,48.47001333270947],[16.960288120194576,48.5969823268506],[17.101984897538898,48.81696889911711],[17.545006951577108,48.80001902932537],[17.88648481616181,48.90347524677371],[17.913511590250465,48.996492824899086],[18.104972771891852,49.04398346617531],[18.170498488037964,49.271514797556435],[18.399993523846177,49.31500051533004],[18.554971144289482,49.49501536721878],[18.853144158613617,49.49622976337764]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":6,"sovereignt":"Slovenia","sov_a3":"SVN","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Slovenia","adm0_a3":"SVN","geou_dif":0,"geounit":"Slovenia","gu_a3":"SVN","su_dif":0,"subunit":"Slovenia","su_a3":"SVN","brk_diff":0,"name":"Slovenia","name_long":"Slovenia","brk_a3":"SVN","brk_name":"Slovenia","brk_group":null,"abbrev":"Slo.","postal":"SLO","formal_en":"Republic of Slovenia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Slovenia","name_alt":null,"mapcolor7":2,"mapcolor8":3,"mapcolor9":2,"mapcolor13":12,"pop_est":2005692,"gdp_md_est":59340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SI","iso_a3":"SVN","iso_n3":"705","un_a3":"705","wb_a2":"SI","wb_a3":"SVN","woe_id":-99,"adm0_a3_is":"SVN","adm0_a3_us":"SVN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SVN.geojson"},"geometry":{"type":"Polygon","coordinates":[[[13.806475457421527,46.509306138691215],[14.63247155117483,46.43181732846955],[15.137091912504985,46.65870270444703],[16.011663852612656,46.6836107448117],[16.202298211337364,46.85238597267696],[16.370504998447416,46.8413272161665],[16.564808383864857,46.50375092221983],[15.768732944408551,46.23810822202345],[15.671529575267556,45.83415355079788],[15.323953891672403,45.73178253842768],[15.327674594797427,45.45231639259323],[14.935243767972935,45.471695054702685],[14.595109490627804,45.634940904312714],[14.411968214585414,45.46616567644746],[13.715059848697221,45.50032379819237],[13.937630242578306,45.59101593686462],[13.698109978905478,46.01677806251735],[13.806475457421527,46.509306138691215]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Ukraine","sov_a3":"UKR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Ukraine","adm0_a3":"UKR","geou_dif":0,"geounit":"Ukraine","gu_a3":"UKR","su_dif":0,"subunit":"Ukraine","su_a3":"UKR","brk_diff":0,"name":"Ukraine","name_long":"Ukraine","brk_a3":"UKR","brk_name":"Ukraine","brk_group":null,"abbrev":"Ukr.","postal":"UA","formal_en":"Ukraine","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Ukraine","name_alt":null,"mapcolor7":5,"mapcolor8":1,"mapcolor9":6,"mapcolor13":3,"pop_est":45700395,"gdp_md_est":339800,"pop_year":-99,"lastcensus":2001,"gdp_year":-99,"economy":"6. Developing region","income_grp":"4. Lower middle income","wikipedia":-99,"fips_10":null,"iso_a2":"UA","iso_a3":"UKR","iso_n3":"804","un_a3":"804","wb_a2":"UA","wb_a3":"UKR","woe_id":-99,"adm0_a3_is":"UKR","adm0_a3_us":"UKR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"UKR.geojson"},"geometry":{"type":"Polygon","coordinates":[[[31.785998162571587,52.101677964885454],[32.15941206231267,52.06126699483322],[32.41205813978763,52.28869497334975],[32.71576053236697,52.23846548116205],[33.7526998227357,52.335074571331695],[34.39173058445701,51.76888174092579],[34.14197838719039,51.56641347920623],[34.22481570815427,51.25599315042895],[35.02218305841788,51.20757233337145],[35.37792361831512,50.77395539001034],[35.35611616388795,50.577197374059054],[36.62616784032534,50.225590928745135],[37.39345950699507,50.38395335550359],[38.010631137856905,49.91566152607463],[38.59498823421342,49.92646190042363],[40.06905846533911,49.6010554062817],[40.08078901546935,49.307429917999286],[39.67466393408753,48.78381846780187],[39.89563235856758,48.23240509703143],[39.738277622238826,47.89893707945198],[38.7705847511412,47.825608222029814],[38.25511233902975,47.546400458356814],[38.22353803889942,47.10218984637588],[37.42513715998999,47.022220567404204],[36.75985477066439,46.698700263040934],[35.82368452326483,46.64596446388707],[34.96234174982388,46.27319651954964],[35.020787794745985,45.65121898048466],[35.51000857925317,45.40999339454619],[36.52999799983016,45.46998973243706],[36.33471276219916,45.113215643893966],[35.23999922052812,44.939996242851606],[33.882511020652885,44.36147858334407],[33.326420932760044,44.56487702084489],[33.54692426934946,45.03477081967489],[32.4541744321055,45.32746613217608],[32.630804477679135,45.519185695978905],[33.58816206231839,45.85156850848024],[33.29856733575471,46.080598456397844],[31.74414025241518,46.333347886737386],[31.675307244602408,46.70624502215554],[30.748748813609097,46.583100084004],[30.377608676888883,46.03241018328567],[29.603289015427432,45.293308010431126],[29.149724969201653,45.46492544207245],[28.679779493939378,45.304030870131704],[28.233553501099042,45.48828318946837],[28.485269402792767,45.5969070501459],[28.659987420371575,45.93998688413164],[28.93371748222162,46.2588304713725],[28.862972446414062,46.43788930926383],[29.072106967899295,46.517677720722496],[29.170653924279886,46.3792623968287],[29.75997195813639,46.34998769793536],[30.02465864433537,46.42393667254503],[29.838210076626297,46.52532583270169],[29.908851759569302,46.67436066343146],[29.559674106573112,46.928582872091326],[29.41513512545274,47.34664520933257],[29.05086795422733,47.51022695575249],[29.12269819511303,47.84909516050646],[28.670891147585163,48.1181485052341],[28.259546746541844,48.15556224221342],[27.522537469195154,48.467119452501116],[26.857823520624805,48.368210761094495],[26.619336785597795,48.22072622333347],[26.19745039236693,48.22088125263035],[25.9459411964024,47.987148749374214],[25.20774336111299,47.89105642352747],[24.866317172960578,47.73752574318831],[24.40205610525038,47.98187775328042],[23.76095828623741,47.985598456405455],[23.142236362406802,48.09634105080695],[22.710531447040495,47.88219391538941],[22.640819939878753,48.15023956968735],[22.08560835133485,48.42226430927179],[22.28084191253356,48.82539215758067],[22.558137648211755,49.085738023467144],[22.776418898212626,49.02739533140962],[22.518450148211603,49.47677358661974],[23.426508416444392,50.30850576435745],[23.922757195743262,50.42488108987875],[24.029985792748903,50.70540660257518],[23.52707075368437,51.57845408793023],[24.00507775238421,51.61744395609446],[24.553106316839518,51.888461005249184],[25.327787713327005,51.91065603291855],[26.337958611768556,51.83228872334793],[27.454066196408434,51.59230337178447],[28.24161502453657,51.57222707783907],[28.61761274589225,51.42771393493484],[28.99283532076353,51.602044379271476],[29.254938185347925,51.368234361366895],[30.157363722460897,51.41613841410147],[30.555117221811457,51.31950348571566],[30.619454380014844,51.822806098022376],[30.927549269338982,52.04235342061438],[31.785998162571587,52.101677964885454]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Sweden","sov_a3":"SWE","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Sweden","adm0_a3":"SWE","geou_dif":0,"geounit":"Sweden","gu_a3":"SWE","su_dif":0,"subunit":"Sweden","su_a3":"SWE","brk_diff":0,"name":"Sweden","name_long":"Sweden","brk_a3":"SWE","brk_name":"Sweden","brk_group":null,"abbrev":"Swe.","postal":"S","formal_en":"Kingdom of Sweden","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Sweden","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":2,"mapcolor13":4,"pop_est":9059651,"gdp_md_est":344300,"pop_year":-99,"lastcensus":-99,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"SE","iso_a3":"SWE","iso_n3":"752","un_a3":"752","wb_a2":"SE","wb_a3":"SWE","woe_id":-99,"adm0_a3_is":"SWE","adm0_a3_us":"SWE","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Northern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"SWE.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.183173455501926,65.72374054632017],[21.21351687997722,65.02600535751527],[21.369631381930958,64.41358795842429],[19.77887576669022,63.60955434839504],[17.84777916837521,62.74940013289681],[17.119554884518124,61.34116567651097],[17.83134606290639,60.63658336042741],[18.78772179533209,60.081914374422595],[17.86922488777634,58.9537661810587],[16.829185011470088,58.71982697207339],[16.447709588291474,57.041118069071885],[15.879785597403783,56.10430186626866],[14.666681349352075,56.200885118222175],[14.100721062891465,55.40778107362265],[12.942910597392057,55.36173737245058],[12.625100538797028,56.30708018658197],[11.787942335668674,57.44181712506307],[11.027368605196866,58.85614940045936],[11.468271925511146,59.43239329694604],[12.3003658382749,60.11793284773003],[12.631146681375183,61.293571682370136],[11.992064243221563,61.80036245385656],[11.93056928879423,63.12831757267698],[12.579935336973932,64.06621898055833],[13.571916131248711,64.04911408146971],[13.919905226302204,64.44542064071608],[13.55568973150909,64.78702769638151],[15.108411492583002,66.19386688909547],[16.108712192456778,67.30245555283689],[16.768878614985482,68.01393667263139],[17.729181756265348,68.01055186631628],[17.993868442464333,68.56739126247736],[19.878559604581255,68.40719432237258],[20.025268995857886,69.0651386583127],[20.645592889089528,69.10624726020087],[21.978534783626117,68.6168456081807],[23.53947309743444,67.93600861273525],[23.565879754335583,66.39605093043743],[23.903378533633802,66.00692739527962],[22.183173455501926,65.72374054632017]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Poland","sov_a3":"POL","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Poland","adm0_a3":"POL","geou_dif":0,"geounit":"Poland","gu_a3":"POL","su_dif":0,"subunit":"Poland","su_a3":"POL","brk_diff":0,"name":"Poland","name_long":"Poland","brk_a3":"POL","brk_name":"Poland","brk_group":null,"abbrev":"Pol.","postal":"PL","formal_en":"Republic of Poland","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Poland","name_alt":null,"mapcolor7":3,"mapcolor8":7,"mapcolor9":1,"mapcolor13":2,"pop_est":38482919,"gdp_md_est":667900,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PL","iso_a3":"POL","iso_n3":"616","un_a3":"616","wb_a2":"PL","wb_a3":"POL","woe_id":-99,"adm0_a3_is":"POL","adm0_a3_us":"POL","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"POL.geojson"},"geometry":{"type":"Polygon","coordinates":[[[15.01699588385867,51.10667409932158],[14.607098422919535,51.745188096719964],[14.685026482815688,52.0899474147552],[14.4375997250022,52.62485016540838],[14.074521111719491,52.98126251892543],[14.353315463934138,53.24817129171297],[14.119686313542587,53.75702912049103],[14.802900424873458,54.05070628520575],[16.36347700365573,54.513158677785725],[17.622831658608675,54.85153595643291],[18.62085859546164,54.68260569927078],[18.696254510175464,54.43871877706929],[19.660640089606403,54.42608388937393],[20.892244500418624,54.31252492941253],[22.731098667092652,54.327536932993326],[23.24398725758951,54.22056671814914],[23.48412763844985,53.91249766704114],[23.527535841575002,53.470121568406555],[23.80493493011778,53.089731350306074],[23.799198846133375,52.69109935160657],[23.199493849386187,52.486977444053664],[23.508002150168693,52.02364655212473],[23.52707075368437,51.57845408793023],[24.029985792748903,50.70540660257518],[23.922757195743262,50.42488108987875],[23.426508416444392,50.30850576435745],[22.518450148211603,49.47677358661974],[22.776418898212626,49.02739533140962],[22.558137648211755,49.085738023467144],[21.607808058364213,49.47010732685409],[20.887955356538413,49.32877228453583],[20.41583947111985,49.43145335549977],[19.825022820726872,49.21712535256923],[19.320712517990472,49.571574001659194],[18.909574822676316,49.435845852244576],[18.853144158613617,49.49622976337764],[18.392913852622172,49.98862864847075],[17.64944502123899,50.049038397819956],[17.55456709155112,50.36214590107641],[16.868769158605655,50.47397370055603],[16.719475945714436,50.21574656839354],[16.176253289462267,50.42260732685791],[16.23862674323857,50.69773265237984],[15.490972120839727,50.78472992614321],[15.01699588385867,51.10667409932158]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Portugal","sov_a3":"PRT","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Portugal","adm0_a3":"PRT","geou_dif":0,"geounit":"Portugal","gu_a3":"PRT","su_dif":1,"subunit":"Portugal","su_a3":"PR1","brk_diff":0,"name":"Portugal","name_long":"Portugal","brk_a3":"PR1","brk_name":"Portugal","brk_group":null,"abbrev":"Port.","postal":"P","formal_en":"Portuguese Republic","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Portugal","name_alt":null,"mapcolor7":1,"mapcolor8":7,"mapcolor9":1,"mapcolor13":4,"pop_est":10707924,"gdp_md_est":208627,"pop_year":-99,"lastcensus":2011,"gdp_year":0,"economy":"2. Developed region: nonG7","income_grp":"1. High income: OECD","wikipedia":-99,"fips_10":null,"iso_a2":"PT","iso_a3":"PRT","iso_n3":"620","un_a3":"620","wb_a2":"PT","wb_a3":"PRT","woe_id":-99,"adm0_a3_is":"PRT","adm0_a3_us":"PRT","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":8,"long_len":8,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"PRT.geojson"},"geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.88057058365967],[-8.67194576662672,42.13468943945496],[-8.263856980817792,42.28046865495034],[-8.013174607769912,41.790886135417125],[-7.422512986673795,41.79207469335983],[-7.251308966490824,41.91834605566505],[-6.668605515967656,41.883386949219584],[-6.389087693700915,41.381815497394655],[-6.851126674822552,41.11108266861753],[-6.864019944679385,40.33087189387483],[-7.026413133156595,40.184524237624245],[-7.066591559263529,39.71189158788277],[-7.498632371439725,39.62957103124181],[-7.098036668313128,39.03007274022378],[-7.374092169616318,38.37305858006492],[-7.029281175148796,38.07576406508977],[-7.166507941099865,37.803894354802225],[-7.537105475281024,37.42890432387623],[-7.453725551778092,37.09778758396607],[-7.855613165711985,36.83826854099627],[-8.382816127953689,36.97888011326246],[-8.898856980820327,36.86880931248078],[-8.746101446965554,37.65134552667661],[-8.839997524439879,38.26624339451761],[-9.287463751655224,38.3584858261586],[-9.526570603869715,38.73742910415491],[-9.446988898140232,39.39206614842837],[-9.048305223008427,39.75509308527877],[-8.977353481471681,40.15930613866581],[-8.768684047877102,40.76063894303019],[-8.79085323733031,41.18433401139126],[-8.99078935386757,41.54345937760364],[-9.034817674180246,41.88057058365967]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":3,"sovereignt":"Romania","sov_a3":"ROU","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Romania","adm0_a3":"ROU","geou_dif":0,"geounit":"Romania","gu_a3":"ROU","su_dif":0,"subunit":"Romania","su_a3":"ROU","brk_diff":0,"name":"Romania","name_long":"Romania","brk_a3":"ROU","brk_name":"Romania","brk_group":null,"abbrev":"Rom.","postal":"RO","formal_en":"Romania","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Romania","name_alt":null,"mapcolor7":1,"mapcolor8":4,"mapcolor9":3,"mapcolor13":13,"pop_est":22215421,"gdp_md_est":271400,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"2. Developed region: nonG7","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RO","iso_a3":"ROU","iso_n3":"642","un_a3":"642","wb_a2":"RO","wb_a3":"ROM","woe_id":-99,"adm0_a3_is":"ROU","adm0_a3_us":"ROU","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Eastern Europe","region_wb":"Europe & Central Asia","name_len":7,"long_len":7,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"ROU.geojson"},"geometry":{"type":"Polygon","coordinates":[[[22.710531447040495,47.88219391538941],[23.142236362406802,48.09634105080695],[23.76095828623741,47.985598456405455],[24.40205610525038,47.98187775328042],[24.866317172960578,47.73752574318831],[25.20774336111299,47.89105642352747],[25.9459411964024,47.987148749374214],[26.19745039236693,48.22088125263035],[26.619336785597795,48.22072622333347],[26.924176059687568,48.123264472030996],[27.233872918412743,47.82677094175638],[27.551166212684848,47.40511709247083],[28.128030226359044,46.810476386088254],[28.160017937947714,46.37156260841722],[28.0544429867754,45.944586086605625],[28.233553501099042,45.48828318946837],[28.679779493939378,45.304030870131704],[29.149724969201653,45.46492544207245],[29.603289015427432,45.293308010431126],[29.626543409958767,45.03539093686239],[29.141611769331835,44.82021027279904],[28.837857700320203,44.913873806328056],[28.558081495891997,43.70746165625813],[27.970107049275075,43.81246816667521],[27.242399529740908,44.175986029632405],[26.065158725699746,43.94349376075126],[25.569271681426926,43.68844472917472],[24.100679152124172,43.74105133724785],[23.33230228037632,43.89701080990471],[22.944832391051847,43.82378530534713],[22.65714969248299,44.23492300066128],[22.4740084164406,44.40922760678177],[22.705725538837356,44.57800283464702],[22.459022251075936,44.7025171982543],[22.14508792490281,44.47842234962059],[21.562022739353605,44.7689472519655],[21.483526238702233,45.18117015235778],[20.874312778413355,45.416375433934235],[20.762174920339987,45.734573065771436],[20.220192498462836,46.127468980486555],[21.02195234547125,46.3160879583519],[21.62651492685387,46.99423777931816],[22.099767693782834,47.6724392767167],[22.710531447040495,47.88219391538941]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":5,"sovereignt":"Republic of Serbia","sov_a3":"SRB","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Republic of Serbia","adm0_a3":"SRB","geou_dif":0,"geounit":"Republic of Serbia","gu_a3":"SRB","su_dif":0,"subunit":"Republic of Serbia","su_a3":"SRB","brk_diff":0,"name":"Serbia","name_long":"Serbia","brk_a3":"SRB","brk_name":"Serbia","brk_group":null,"abbrev":"Serb.","postal":"RS","formal_en":"Republic of Serbia","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Serbia","name_alt":null,"mapcolor7":3,"mapcolor8":3,"mapcolor9":2,"mapcolor13":10,"pop_est":7379339,"gdp_md_est":80340,"pop_year":-99,"lastcensus":2011,"gdp_year":-99,"economy":"6. Developing region","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"RS","iso_a3":"SRB","iso_n3":"688","un_a3":"688","wb_a2":"YF","wb_a3":"SRB","woe_id":-99,"adm0_a3_is":"SRB","adm0_a3_us":"SRB","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Europe","region_un":"Europe","subregion":"Southern Europe","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":5,"tiny":-99,"homepart":1,"filename":"SRB.geojson"},"geometry":{"type":"Polygon","coordinates":[[[20.87431277841341,45.41637543393432],[21.48352623870221,45.18117015235788],[21.562022739353722,44.76894725196564],[22.145087924902896,44.47842234962059],[22.459022251075965,44.70251719825444],[22.70572553883744,44.57800283464701],[22.474008416440654,44.40922760678177],[22.657149692483074,44.234923000661354],[22.410446404721597,44.008063462900054],[22.500156691180223,43.642814439461006],[22.986018507588483,43.2111612005271],[22.60480146657136,42.898518785161116],[22.43659467946139,42.58032115332394],[22.54501183440965,42.46136200618804],[22.38052575042468,42.32025950781508],[21.917080000000112,42.30364],[21.57663598940212,42.24522439706186],[21.54332,42.3202500000001],[21.66292,42.43922],[21.77505,42.6827],[21.63302,42.67717],[21.43866,42.86255],[21.27421,42.90959],[21.143395,43.06868500000012],[20.95651,43.13094],[20.81448,43.27205],[20.63508,43.21671],[20.49679,42.88469],[20.25758,42.81275000000011],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21377997027054],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.56810000000013],[19.59976,44.03847],[19.11761,44.42307000000011],[19.36803,44.863],[19.00548,44.86023],[19.39047570158459,45.236515611342384],[19.072768995854176,45.52151113543209],[18.82982,45.90888],[19.59604454924164,46.171729844744554],[20.220192498462893,46.12746898048658],[20.762174920339987,45.734573065771485],[20.87431277841341,45.41637543393432]]]}},{"type":"Feature","properties":{"scalerank":1,"featurecla":"Admin-0 country","labelrank":2,"sovereignt":"Turkey","sov_a3":"TUR","adm0_dif":0,"level":2,"type":"Sovereign country","admin":"Turkey","adm0_a3":"TUR","geou_dif":0,"geounit":"Turkey","gu_a3":"TUR","su_dif":0,"subunit":"Turkey","su_a3":"TUR","brk_diff":0,"name":"Turkey","name_long":"Turkey","brk_a3":"TUR","brk_name":"Turkey","brk_group":null,"abbrev":"Tur.","postal":"TR","formal_en":"Republic of Turkey","formal_fr":null,"note_adm0":null,"note_brk":null,"name_sort":"Turkey","name_alt":null,"mapcolor7":6,"mapcolor8":3,"mapcolor9":8,"mapcolor13":4,"pop_est":76805524,"gdp_md_est":902700,"pop_year":-99,"lastcensus":2000,"gdp_year":-99,"economy":"4. Emerging region: MIKT","income_grp":"3. Upper middle income","wikipedia":-99,"fips_10":null,"iso_a2":"TR","iso_a3":"TUR","iso_n3":"792","un_a3":"792","wb_a2":"TR","wb_a3":"TUR","woe_id":-99,"adm0_a3_is":"TUR","adm0_a3_us":"TUR","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Asia","region_un":"Asia","subregion":"Western Asia","region_wb":"Europe & Central Asia","name_len":6,"long_len":6,"abbrev_len":4,"tiny":-99,"homepart":1,"filename":"TUR.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[36.91312706884215,41.335358384764305],[38.34766482926452,40.94858612727572],[39.51260664242025,41.102762763018575],[40.373432651538245,41.01367259374734],[41.554084100110714,41.53565623632761],[42.619548781104555,41.58317271581993],[43.58274580259271,41.09214325618257],[43.7526579119685,40.74020091405882],[43.65643639504096,40.25356395116617],[44.400008579288766,40.00500031184231],[44.793989699082005,39.713002631177034],[44.109225294782355,39.428136298168056],[44.4214026222576,38.28128123631453],[44.22575564960053,37.97158437758935],[44.77269900897775,37.17044464776845],[44.29345177590286,37.00151439060635],[43.94225874204736,37.256227525372935],[42.77912560402186,37.38526357680581],[42.34959109881177,37.22987254490411],[41.21208947120303,37.07435232192173],[40.673259311695716,37.09127635349736],[39.52258019385252,36.71605377862602],[38.69989139176593,36.71292735447233],[38.16772749202416,36.90121043552779],[37.06676110204583,36.62303620050062],[36.739494256341374,36.817520453431115],[36.68538903173183,36.259699205056506],[36.41755008316309,36.0406169703551],[36.14976281102659,35.82153473565367],[35.782084995269855,36.274995429014915],[36.160821567537056,36.650605577128374],[35.55093631362834,36.56544281671134],[34.714553256984374,36.795532131490916],[34.02689497247647,36.21996002862397],[32.5091581560641,36.1075637883892],[31.699595167779567,36.64427521417261],[30.62162479017107,36.677864895162315],[30.39109622571712,36.26298065850698],[29.699975620245567,36.144357408181],[28.73290286633539,36.67683136651644],[27.64118655773737,36.658822129862756],[27.048767937943296,37.65336090753601],[26.318218214633045,38.208133246405396],[26.804700148228733,38.98576019953356],[26.17078535330438,39.463612168936464],[27.280019972449395,40.42001373957831],[28.819977654747216,40.46001129817221],[29.24000369641558,41.21999074967269],[31.145933872204434,41.08762156835706],[32.34797936374579,41.73626414648464],[33.51328291192752,42.018960069337304],[35.16770389175187,42.04022492122544],[36.91312706884215,41.335358384764305]]],[[[27.192376743282406,40.690565700842455],[26.35800906749779,40.15199392349649],[26.04335127127254,40.61775360774317],[26.056942172965336,40.82412344010075],[26.29460208507569,40.93626129817417],[26.604195590936282,41.56211456966102],[26.117041863720825,41.82690460872456],[27.135739373490505,42.14148489030131],[27.996720411905414,42.00735871028777],[28.115524529744444,41.622886054036286],[28.988442824018787,41.29993419042819],[28.80643842948675,41.05496206314854],[27.61901736828412,40.99982330989312],[27.192376743282406,40.690565700842455]]]]}}]}')},3995:function(n,e,t){},"81d5":function(n,e,t){"use strict";var r=t("7b0b"),o=t("23cb"),a=t("50c4");n.exports=function(n){var e=r(this),t=a(e.length),i=arguments.length,l=o(i>1?arguments[1]:void 0,t),u=i>2?arguments[2]:void 0,s=void 0===u?t:o(u,t);while(s>l)e[l++]=n;return e}},"99af":function(n,e,t){"use strict";var r=t("23e7"),o=t("d039"),a=t("e8b5"),i=t("861d"),l=t("7b0b"),u=t("50c4"),s=t("8418"),_=t("65f0"),c=t("1dde"),p=t("b622"),f=t("2d00"),m=p("isConcatSpreadable"),d=9007199254740991,g="Maximum allowed index exceeded",h=f>=51||!o((function(){var n=[];return n[m]=!1,n.concat()[0]!==n})),b=c("concat"),v=function(n){if(!i(n))return!1;var e=n[m];return void 0!==e?!!e:a(n)},y=!h||!b;r({target:"Array",proto:!0,forced:y},{concat:function(n){var e,t,r,o,a,i=l(this),c=_(i,0),p=0;for(e=-1,r=arguments.length;ed)throw TypeError(g);for(t=0;t=d)throw TypeError(g);s(c,p++,a)}return c.length=p,c}})},a434:function(n,e,t){"use strict";var r=t("23e7"),o=t("23cb"),a=t("a691"),i=t("50c4"),l=t("7b0b"),u=t("65f0"),s=t("8418"),_=t("1dde"),c=_("splice"),p=Math.max,f=Math.min,m=9007199254740991,d="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!c},{splice:function(n,e){var t,r,_,c,g,h,b=l(this),v=i(b.length),y=o(n,v),w=arguments.length;if(0===w?t=r=0:1===w?(t=0,r=v-y):(t=w-2,r=f(p(a(e),0),v-y)),v+t-r>m)throw TypeError(d);for(_=u(b,r),c=0;cv-r+t;c--)delete b[c-1]}else if(t>r)for(c=v-r;c>y;c--)g=c+r-1,h=c+t-1,g in b?b[h]=b[g]:delete b[h];for(c=0;cn.length)&&(e=n.length);for(var t=0,r=new Array(e);t{}};function y(){for(var n,e=0,t=arguments.length,r={};e=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function E(n,e){for(var t,r=0,o=n.length;r0)for(var t,r,o=new Array(t),a=0;a=w&&(w=y+1);while(!(v=g[w])&&++w=0;)(r=o[a])&&(i&&4^r.compareDocumentPosition(i)&&i.parentNode.insertBefore(r,i),i=r);return this},rn=function(n){function e(e,t){return e&&t?n(e.__data__,t.__data__):!e-!t}n||(n=on);for(var t=this._groups,r=t.length,o=new Array(r),a=0;ae?1:n>=e?0:NaN}var an=function(){var n=arguments[0];return arguments[0]=this,n.apply(null,arguments),this},ln=function(){return Array.from(this)},un=function(){for(var n=this._groups,e=0,t=n.length;e=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),fn.hasOwnProperty(e)?{space:fn[e],local:n}:n};function dn(n){return function(){this.removeAttribute(n)}}function gn(n){return function(){this.removeAttributeNS(n.space,n.local)}}function hn(n,e){return function(){this.setAttribute(n,e)}}function bn(n,e){return function(){this.setAttributeNS(n.space,n.local,e)}}function vn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttribute(n):this.setAttribute(n,t)}}function yn(n,e){return function(){var t=e.apply(this,arguments);null==t?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,t)}}var wn=function(n,e){var t=mn(n);if(arguments.length<2){var r=this.node();return t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}return this.each((null==e?t.local?gn:dn:"function"===typeof e?t.local?yn:vn:t.local?bn:hn)(t,e))},kn=function(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView};function En(n){return function(){this.style.removeProperty(n)}}function Sn(n,e,t){return function(){this.style.setProperty(n,e,t)}}function An(n,e,t){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,t)}}var Rn=function(n,e,t){return arguments.length>1?this.each((null==e?En:"function"===typeof e?An:Sn)(n,e,null==t?"":t)):xn(this.node(),n)};function xn(n,e){return n.style.getPropertyValue(e)||kn(n).getComputedStyle(n,null).getPropertyValue(e)}function Mn(n){return function(){delete this[n]}}function Nn(n,e){return function(){this[n]=e}}function Ln(n,e){return function(){var t=e.apply(this,arguments);null==t?delete this[n]:this[n]=t}}var Cn=function(n,e){return arguments.length>1?this.each((null==e?Mn:"function"===typeof e?Ln:Nn)(n,e)):this.node()[n]};function On(n){return n.trim().split(/^|\s+/)}function Dn(n){return n.classList||new Bn(n)}function Bn(n){this._node=n,this._names=On(n.getAttribute("class")||"")}function Un(n,e){var t=Dn(n),r=-1,o=e.length;while(++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Hn=function(n,e){var t=On(n+"");if(arguments.length<2){var r=Dn(this.node()),o=-1,a=t.length;while(++o=0&&(e=n.slice(t+1),n=n.slice(0,t)),{type:n,name:e}}))}function fe(n){return function(){var e=this.__on;if(e){for(var t,r=0,o=-1,a=e.length;r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===t?Ye(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===t?Ye(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Pe.exec(n))?new $e(e[1],e[2],e[3],1):(e=je.exec(n))?new $e(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ie.exec(n))?Ye(e[1],e[2],e[3],e[4]):(e=Te.exec(n))?Ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=He.exec(n))?et(e[1],e[2]/100,e[3]/100,1):(e=Fe.exec(n))?et(e[1],e[2]/100,e[3]/100,e[4]):Ge.hasOwnProperty(n)?qe(Ge[n]):"transparent"===n?new $e(NaN,NaN,NaN,0):null}function qe(n){return new $e(n>>16&255,n>>8&255,255&n,1)}function Ye(n,e,t,r){return r<=0&&(n=e=t=NaN),new $e(n,e,t,r)}function We(n){return n instanceof Ne||(n=Xe(n)),n?(n=n.rgb(),new $e(n.r,n.g,n.b,n.opacity)):new $e}function Ze(n,e,t,r){return 1===arguments.length?We(n):new $e(n,e,t,null==r?1:r)}function $e(n,e,t,r){this.r=+n,this.g=+e,this.b=+t,this.opacity=+r}function Je(){return"#"+nt(this.r)+nt(this.g)+nt(this.b)}function Qe(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function nt(n){return n=Math.max(0,Math.min(255,Math.round(n)||0)),(n<16?"0":"")+n.toString(16)}function et(n,e,t,r){return r<=0?n=e=t=NaN:t<=0||t>=1?n=e=NaN:e<=0&&(n=NaN),new ot(n,e,t,r)}function tt(n){if(n instanceof ot)return new ot(n.h,n.s,n.l,n.opacity);if(n instanceof Ne||(n=Xe(n)),!n)return new ot;if(n instanceof ot)return n;n=n.rgb();var e=n.r/255,t=n.g/255,r=n.b/255,o=Math.min(e,t,r),a=Math.max(e,t,r),i=NaN,l=a-o,u=(a+o)/2;return l?(i=e===a?(t-r)/l+6*(t0&&u<1?0:i,new ot(i,l,u,n.opacity)}function rt(n,e,t,r){return 1===arguments.length?tt(n):new ot(n,e,t,null==r?1:r)}function ot(n,e,t,r){this.h=+n,this.s=+e,this.l=+t,this.opacity=+r}function at(n,e,t){return 255*(n<60?e+(t-e)*n/60:n<180?t:n<240?e+(t-e)*(240-n)/60:e)}function it(n,e,t,r,o){var a=n*n,i=a*n;return((1-3*n+3*a-i)*e+(4-6*a+3*i)*t+(1+3*n+3*a-3*i)*r+i*o)/6}xe(Ne,Xe,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:Ke,formatHex:Ke,formatHsl:Ve,formatRgb:ze,toString:ze}),xe($e,Ze,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new $e(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Je,formatHex:Je,formatRgb:Qe,toString:Qe})),xe(ot,rt,Me(Ne,{brighter:function(n){return n=null==n?Ce:Math.pow(Ce,n),new ot(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Le:Math.pow(Le,n),new ot(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),e=isNaN(n)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*e,o=2*t-r;return new $e(at(n>=240?n-240:n+120,o,r),at(n,o,r),at(n<120?n+240:n-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return n=isNaN(n)?1:Math.max(0,Math.min(1,n)),(1===n?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var lt=function(n){var e=n.length-1;return function(t){var r=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),o=n[r],a=n[r+1],i=r>0?n[r-1]:2*o-a,l=r()=>n;function _t(n,e){return function(t){return n+t*e}}function ct(n,e,t){return n=Math.pow(n,t),e=Math.pow(e,t)-n,t=1/t,function(r){return Math.pow(n+r*e,t)}}function pt(n){return 1===(n=+n)?ft:function(e,t){return t-e?ct(e,t,n):st(isNaN(e)?t:e)}}function ft(n,e){var t=e-n;return t?_t(n,t):st(isNaN(n)?e:n)}var mt=function n(e){var t=pt(e);function r(n,e){var r=t((n=Ze(n)).r,(e=Ze(e)).r),o=t(n.g,e.g),a=t(n.b,e.b),i=ft(n.opacity,e.opacity);return function(e){return n.r=r(e),n.g=o(e),n.b=a(e),n.opacity=i(e),n+""}}return r.gamma=n,r}(1);function dt(n){return function(e){var t,r,o=e.length,a=new Array(o),i=new Array(o),l=new Array(o);for(t=0;ta&&(o=e.slice(a,o),l[i]?l[i]+=o:l[++i]=o),(t=t[0])===(r=r[0])?l[i]?l[i]+=r:l[++i]=r:(l[++i]=null,u.push({i:i,x:gt(t,r)})),a=bt.lastIndex;return a=0&&e._call.call(null,n),e=e._next;--Rt}function Ht(){Ct=(Lt=Dt.now())+Ot,Rt=xt=0;try{Tt()}finally{Rt=0,Gt(),Ct=0}}function Ft(){var n=Dt.now(),e=n-Lt;e>Nt&&(Ot-=e,Lt=n)}function Gt(){var n,e,t=wt,r=1/0;while(t)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:wt=e);kt=n,Kt(r)}function Kt(n){if(!Rt){xt&&(xt=clearTimeout(xt));var e=n-Ct;e>24?(n<1/0&&(xt=setTimeout(Ht,n-Dt.now()-Ot)),Mt&&(Mt=clearInterval(Mt))):(Mt||(Lt=Dt.now(),Mt=setInterval(Ft,Nt)),Rt=1,Bt(Ht))}}jt.prototype=It.prototype={constructor:jt,restart:function(n,e,t){if("function"!==typeof n)throw new TypeError("callback is not a function");t=(null==t?Ut():+t)+(null==e?0:+e),this._next||kt===this||(kt?kt._next=this:wt=this,kt=this),this._call=n,this._time=t,Kt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Kt())}};var Vt=function(n,e,t){var r=new jt;return e=null==e?0:+e,r.restart(t=>{r.stop(),n(t+e)},e,t),r},zt=A("start","end","cancel","interrupt"),Xt=[],qt=0,Yt=1,Wt=2,Zt=3,$t=4,Jt=5,Qt=6,nr=function(n,e,t,r,o,a){var i=n.__transition;if(i){if(t in i)return}else n.__transition={};or(n,t,{name:e,index:r,group:o,on:zt,tween:Xt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:qt})};function er(n,e){var t=rr(n,e);if(t.state>qt)throw new Error("too late; already scheduled");return t}function tr(n,e){var t=rr(n,e);if(t.state>Zt)throw new Error("too late; already running");return t}function rr(n,e){var t=n.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function or(n,e,t){var r,o=n.__transition;function a(n){t.state=Yt,t.timer.restart(i,t.delay,t.time),t.delay<=n&&i(n-t.delay)}function i(a){var s,_,c,p;if(t.state!==Yt)return u();for(s in o)if(p=o[s],p.name===t.name){if(p.state===Zt)return Vt(i);p.state===$t?(p.state=Qt,p.timer.stop(),p.on.call("interrupt",n,n.__data__,p.index,p.group),delete o[s]):+sWt&&t.state180?e+=360:e-n>180&&(n+=360),a.push({i:t.push(o(t)+"rotate(",null,r)-2,x:gt(n,e)})):e&&t.push(o(t)+"rotate("+e+r)}function l(n,e,t,a){n!==e?a.push({i:t.push(o(t)+"skewX(",null,r)-2,x:gt(n,e)}):e&&t.push(o(t)+"skewX("+e+r)}function u(n,e,t,r,a,i){if(n!==t||e!==r){var l=a.push(o(a)+"scale(",null,",",null,")");i.push({i:l-4,x:gt(n,t)},{i:l-2,x:gt(e,r)})}else 1===t&&1===r||a.push(o(a)+"scale("+t+","+r+")")}return function(e,t){var r=[],o=[];return e=n(e),t=n(t),a(e.translateX,e.translateY,t.translateX,t.translateY,r,o),i(e.rotate,t.rotate,r,o),l(e.skewX,t.skewX,r,o),u(e.scaleX,e.scaleY,t.scaleX,t.scaleY,r,o),e=t=null,function(n){var e,t=-1,a=o.length;while(++t=0&&(n=n.slice(0,e)),!n||"start"===n}))}function Xr(n,e,t){var r,o,a=zr(e)?er:tr;return function(){var i=a(this,n),l=i.on;l!==r&&(o=(r=l).copy()).on(e,t),i.on=o}}var qr=function(n,e){var t=this._id;return arguments.length<2?rr(this.node(),t).on.on(n):this.each(Xr(t,n,e))};function Yr(n){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==n)return;e&&e.removeChild(this)}}var Wr=function(){return this.on("end.remove",Yr(this._id))},Zr=function(n){var e=this._name,t=this._id;"function"!==typeof n&&(n=x(n));for(var r=this._groups,o=r.length,a=new Array(o),i=0;in;function Bo(n,e){n&&Po.hasOwnProperty(n.type)&&Po[n.type](n,e)}var Uo={Feature:function(n,e){Bo(n.geometry,e)},FeatureCollection:function(n,e){var t=n.features,r=-1,o=t.length;while(++r0){a=n[--o];while(o>0)if(e=a,t=n[--o],a=e+t,r=t-(a-e),r)break;o>0&&(r<0&&n[o-1]<0||r>0&&n[o-1]>0)&&(t=2*r,e=a+t,t==e-a&&(a=e))}return a}}var Fo=1e-6,Go=1e-12,Ko=Math.PI,Vo=Ko/2,zo=Ko/4,Xo=2*Ko,qo=180/Ko,Yo=Ko/180,Wo=Math.abs,Zo=Math.atan,$o=Math.atan2,Jo=Math.cos,Qo=(Math.ceil,Math.exp),na=(Math.floor,Math.hypot,Math.log),ea=(Math.pow,Math.sin),ta=Math.sign||function(n){return n>0?1:n<0?-1:0},ra=Math.sqrt,oa=Math.tan;function aa(n){return n>1?0:n<-1?Ko:Math.acos(n)}function ia(n){return n>1?Vo:n<-1?-Vo:Math.asin(n)}function la(){}var ua,sa,_a,ca,pa=new Ho,fa=new Ho,ma={point:la,lineStart:la,lineEnd:la,polygonStart:function(){ma.lineStart=da,ma.lineEnd=ba},polygonEnd:function(){ma.lineStart=ma.lineEnd=ma.point=la,pa.add(Wo(fa)),fa=new Ho},result:function(){var n=pa/2;return pa=new Ho,n}};function da(){ma.point=ga}function ga(n,e){ma.point=ha,ua=_a=n,sa=ca=e}function ha(n,e){fa.add(ca*n-_a*e),_a=n,ca=e}function ba(){ha(ua,sa)}var va=ma,ya=1/0,wa=ya,ka=-ya,Ea=ka,Sa={point:Aa,lineStart:la,lineEnd:la,polygonStart:la,polygonEnd:la,result:function(){var n=[[ya,wa],[ka,Ea]];return ka=Ea=-(wa=ya=1/0),n}};function Aa(n,e){nka&&(ka=n),eEa&&(Ea=e)}var Ra,xa,Ma,Na,La=Sa,Ca=0,Oa=0,Da=0,Ba=0,Ua=0,Pa=0,ja=0,Ia=0,Ta=0,Ha={point:Fa,lineStart:Ga,lineEnd:za,polygonStart:function(){Ha.lineStart=Xa,Ha.lineEnd=qa},polygonEnd:function(){Ha.point=Fa,Ha.lineStart=Ga,Ha.lineEnd=za},result:function(){var n=Ta?[ja/Ta,Ia/Ta]:Pa?[Ba/Pa,Ua/Pa]:Da?[Ca/Da,Oa/Da]:[NaN,NaN];return Ca=Oa=Da=Ba=Ua=Pa=ja=Ia=Ta=0,n}};function Fa(n,e){Ca+=n,Oa+=e,++Da}function Ga(){Ha.point=Ka}function Ka(n,e){Ha.point=Va,Fa(Ma=n,Na=e)}function Va(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,Fa(Ma=n,Na=e)}function za(){Ha.point=Fa}function Xa(){Ha.point=Ya}function qa(){Wa(Ra,xa)}function Ya(n,e){Ha.point=Wa,Fa(Ra=Ma=n,xa=Na=e)}function Wa(n,e){var t=n-Ma,r=e-Na,o=ra(t*t+r*r);Ba+=o*(Ma+n)/2,Ua+=o*(Na+e)/2,Pa+=o,o=Na*n-Ma*e,ja+=o*(Ma+n),Ia+=o*(Na+e),Ta+=3*o,Fa(Ma=n,Na=e)}var Za=Ha;function $a(n){this._context=n}$a.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._context.moveTo(n,e),this._point=1;break;case 1:this._context.lineTo(n,e);break;default:this._context.moveTo(n+this._radius,e),this._context.arc(n,e,this._radius,0,Xo);break}},result:la};var Ja,Qa,ni,ei,ti,ri=new Ho,oi={point:la,lineStart:function(){oi.point=ai},lineEnd:function(){Ja&&ii(Qa,ni),oi.point=la},polygonStart:function(){Ja=!0},polygonEnd:function(){Ja=null},result:function(){var n=+ri;return ri=new Ho,n}};function ai(n,e){oi.point=ii,Qa=ei=n,ni=ti=e}function ii(n,e){ei-=n,ti-=e,ri.add(ra(ei*ei+ti*ti)),ei=n,ti=e}var li=oi;function ui(){this._string=[]}function si(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}ui.prototype={_radius:4.5,_circle:si(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,e){switch(this._point){case 0:this._string.push("M",n,",",e),this._point=1;break;case 1:this._string.push("L",n,",",e);break;default:null==this._circle&&(this._circle=si(this._radius)),this._string.push("M",n,",",e,this._circle);break}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};var _i=function(n,e){var t,r,o=4.5;function a(n){return n&&("function"===typeof o&&r.pointRadius(+o.apply(this,arguments)),To(n,t(r))),r.result()}return a.area=function(n){return To(n,t(va)),va.result()},a.measure=function(n){return To(n,t(li)),li.result()},a.bounds=function(n){return To(n,t(La)),La.result()},a.centroid=function(n){return To(n,t(Za)),Za.result()},a.projection=function(e){return arguments.length?(t=null==e?(n=null,Do):(n=e).stream,a):n},a.context=function(n){return arguments.length?(r=null==n?(e=null,new ui):new $a(e=n),"function"!==typeof o&&r.pointRadius(o),a):e},a.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(r.pointRadius(+n),+n),a):o},a.projection(n).context(e)},ci=function(n,e){function t(t,r){return t=n(t,r),e(t[0],t[1])}return n.invert&&e.invert&&(t.invert=function(t,r){return t=e.invert(t,r),t&&n.invert(t[0],t[1])}),t};function pi(n,e){return[Wo(n)>Ko?n+Math.round(-n/Xo)*Xo:n,e]}function fi(n,e,t){return(n%=Xo)?e||t?ci(di(n),gi(e,t)):di(n):e||t?gi(e,t):pi}function mi(n){return function(e,t){return e+=n,[e>Ko?e-Xo:e<-Ko?e+Xo:e,t]}}function di(n){var e=mi(n);return e.invert=mi(-n),e}function gi(n,e){var t=Jo(n),r=ea(n),o=Jo(e),a=ea(e);function i(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*t+l*r;return[$o(u*o-_*a,l*t-s*r),ia(_*o+u*a)]}return i.invert=function(n,e){var i=Jo(e),l=Jo(n)*i,u=ea(n)*i,s=ea(e),_=s*o-u*a;return[$o(u*o+s*a,l*t+_*r),ia(_*t-l*r)]},i}pi.invert=pi;var hi=function(n){function e(e){return e=n(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e}return n=fi(n[0]*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),e.invert=function(e){return e=n.invert(e[0]*Yo,e[1]*Yo),e[0]*=qo,e[1]*=qo,e},e},bi=function(){var n,e=[];return{point:function(e,t,r){n.push([e,t,r])},lineStart:function(){e.push(n=[])},lineEnd:la,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var t=e;return e=[],n=null,t}}},vi=function(n,e){return Wo(n[0]-e[0])=0;--a)o.point((_=s[a])[0],_[1]);else r(p.x,p.p.x,-1,o);p=p.p}p=p.o,s=p.z,f=!f}while(!p.v);o.lineEnd()}}};function ki(n){if(e=n.length){var e,t,r=0,o=n[0];while(++r=0?1:-1,R=A*S,x=R>Ko,M=g*k;if(u.add($o(M*A*ea(R),h*E+M*Jo(R))),i+=x?S+A*Xo:S,x^m>=t^y>=t){var N=Ri(Si(f),Si(v));Ni(N);var L=Ri(a,N);Ni(L);var C=(x^S>=0?-1:1)*ia(L[2]);(r>C||r===C&&(N[0]||N[1]))&&(l+=x^S>=0?1:-1)}}return(i<-Fo||i0){for(c||(o.polygonStart(),c=!0),o.lineStart(),n=0;n1&&2&u&&p.push(p.pop().concat(p.shift())),i.push(p.filter(Ui))}return p}};function Ui(n){return n.length>1}function Pi(n,e){return((n=n.x)[0]<0?n[1]-Vo-Fo:Vo-n[1])-((e=e.x)[0]<0?e[1]-Vo-Fo:Vo-e[1])}var ji=Bi((function(){return!0}),Ii,Hi,[-Ko,-Vo]);function Ii(n){var e,t=NaN,r=NaN,o=NaN;return{lineStart:function(){n.lineStart(),e=1},point:function(a,i){var l=a>0?Ko:-Ko,u=Wo(a-t);Wo(u-Ko)0?Vo:-Vo),n.point(o,r),n.lineEnd(),n.lineStart(),n.point(l,r),n.point(a,r),e=0):o!==l&&u>=Ko&&(Wo(t-o)Fo?Zo((ea(e)*(a=Jo(r))*ea(t)-ea(r)*(o=Jo(e))*ea(n))/(o*a*i)):(e+r)/2}function Hi(n,e,t,r){var o;if(null==n)o=t*Vo,r.point(-Ko,o),r.point(0,o),r.point(Ko,o),r.point(Ko,0),r.point(Ko,-o),r.point(0,-o),r.point(-Ko,-o),r.point(-Ko,0),r.point(-Ko,o);else if(Wo(n[0]-e[0])>Fo){var a=n[0]0?oa)&&(o+=r*Xo));for(var s,_=o;r>0?_>a:_0,o=Wo(e)>Fo;function a(e,r,o,a){Fi(a,n,t,o,e,r)}function i(n,t){return Jo(n)*Jo(t)>e}function l(n){var e,t,a,l,_;return{lineStart:function(){l=a=!1,_=1},point:function(c,p){var f,m=[c,p],d=i(c,p),g=r?d?0:s(c,p):d?s(c+(c<0?Ko:-Ko),p):0;if(!e&&(l=a=d)&&n.lineStart(),d!==a&&(f=u(e,m),(!f||vi(e,f)||vi(m,f))&&(m[2]=1)),d!==a)_=0,d?(n.lineStart(),f=u(m,e),n.point(f[0],f[1])):(f=u(e,m),n.point(f[0],f[1],2),n.lineEnd()),e=f;else if(o&&e&&r^d){var h;g&t||!(h=u(m,e,!0))||(_=0,r?(n.lineStart(),n.point(h[0][0],h[0][1]),n.point(h[1][0],h[1][1]),n.lineEnd()):(n.point(h[1][0],h[1][1]),n.lineEnd(),n.lineStart(),n.point(h[0][0],h[0][1],3)))}!d||e&&vi(e,m)||n.point(m[0],m[1]),e=m,a=d,t=g},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return _|(l&&a)<<1}}}function u(n,t,r){var o=Si(n),a=Si(t),i=[1,0,0],l=Ri(o,a),u=Ai(l,l),s=l[0],_=u-s*s;if(!_)return!r&&n;var c=e*u/_,p=-e*s/_,f=Ri(i,l),m=Mi(i,c),d=Mi(l,p);xi(m,d);var g=f,h=Ai(m,g),b=Ai(g,g),v=h*h-b*(Ai(m,m)-1);if(!(v<0)){var y=ra(v),w=Mi(g,(-h-y)/b);if(xi(w,m),w=Ei(w),!r)return w;var k,E=n[0],S=t[0],A=n[1],R=t[1];S0^w[1]<(Wo(w[0]-E)Ko^(E<=w[0]&&w[0]<=S)){var L=Mi(g,(-h+y)/b);return xi(L,m),[w,Ei(L)]}}}function s(e,t){var o=r?n:Ko-n,a=0;return e<-o?a|=1:e>o&&(a|=2),t<-o?a|=4:t>o&&(a|=8),a}return Bi(i,l,a,r?[0,-n]:[-Ko,n-Ko])},Vi=function(n,e,t,r,o,a){var i,l=n[0],u=n[1],s=e[0],_=e[1],c=0,p=1,f=s-l,m=_-u;if(i=t-l,f||!(i>0)){if(i/=f,f<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=o-l,f||!(i<0)){if(i/=f,f<0){if(i>p)return;i>c&&(c=i)}else if(f>0){if(i0)){if(i/=m,m<0){if(i0){if(i>p)return;i>c&&(c=i)}if(i=a-u,m||!(i<0)){if(i/=m,m<0){if(i>p)return;i>c&&(c=i)}else if(m>0){if(i0&&(n[0]=l+c*f,n[1]=u+c*m),p<1&&(e[0]=l+p*f,e[1]=u+p*m),!0}}}}},zi=1e9,Xi=-zi;function qi(n,e,t,r){function o(o,a){return n<=o&&o<=t&&e<=a&&a<=r}function a(o,a,l,s){var _=0,c=0;if(null==o||(_=i(o,l))!==(c=i(a,l))||u(o,a)<0^l>0)do{s.point(0===_||3===_?n:t,_>1?r:e)}while((_=(_+l+4)%4)!==c);else s.point(a[0],a[1])}function i(r,o){return Wo(r[0]-n)0?0:3:Wo(r[0]-t)0?2:1:Wo(r[1]-e)0?1:0:o>0?3:2}function l(n,e){return u(n.x,e.x)}function u(n,e){var t=i(n,1),r=i(e,1);return t!==r?t-r:0===t?e[1]-n[1]:1===t?n[0]-e[0]:2===t?n[1]-e[1]:e[0]-n[0]}return function(i){var u,s,_,c,p,f,m,d,g,h,b,v=i,y=bi(),w={point:k,lineStart:R,lineEnd:x,polygonStart:S,polygonEnd:A};function k(n,e){o(n,e)&&v.point(n,e)}function E(){for(var e=0,t=0,o=s.length;tr&&(p-a)*(r-i)>(f-i)*(n-a)&&++e:f<=r&&(p-a)*(r-i)<(f-i)*(n-a)&&--e;return e}function S(){v=y,u=[],s=[],b=!0}function A(){var n=E(),e=b&&n,t=(u=Di(u)).length;(e||t)&&(i.polygonStart(),e&&(i.lineStart(),a(null,null,1,i),i.lineEnd()),t&&wi(u,l,n,a,i),i.polygonEnd()),v=i,u=s=_=null}function R(){w.point=M,s&&s.push(_=[]),h=!0,g=!1,m=d=NaN}function x(){u&&(M(c,p),f&&g&&y.rejoin(),u.push(y.result())),w.point=k,g&&v.lineEnd()}function M(a,i){var l=o(a,i);if(s&&_.push([a,i]),h)c=a,p=i,f=l,h=!1,l&&(v.lineStart(),v.point(a,i));else if(l&&g)v.point(a,i);else{var u=[m=Math.max(Xi,Math.min(zi,m)),d=Math.max(Xi,Math.min(zi,d))],y=[a=Math.max(Xi,Math.min(zi,a)),i=Math.max(Xi,Math.min(zi,i))];Vi(u,y,n,e,t,r)?(g||(v.lineStart(),v.point(u[0],u[1])),v.point(y[0],y[1]),l||v.lineEnd(),b=!1):l&&(v.lineStart(),v.point(a,i),b=!1)}m=a,d=i,g=l}return w}}function Yi(n){return function(e){var t=new Wi;for(var r in n)t[r]=n[r];return t.stream=e,t}}function Wi(){}function Zi(n,e,t){var r=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=r&&n.clipExtent(null),To(t,n.stream(La)),e(La.result()),null!=r&&n.clipExtent(r),n}function $i(n,e,t){return Zi(n,(function(t){var r=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(r/(t[1][0]-t[0][0]),o/(t[1][1]-t[0][1])),i=+e[0][0]+(r-a*(t[1][0]+t[0][0]))/2,l=+e[0][1]+(o-a*(t[1][1]+t[0][1]))/2;n.scale(150*a).translate([i,l])}),t)}function Ji(n,e,t){return $i(n,[[0,0],e],t)}function Qi(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][0]-t[0][0]),a=(r-o*(t[1][0]+t[0][0]))/2,i=-o*t[0][1];n.scale(150*o).translate([a,i])}),t)}function nl(n,e,t){return Zi(n,(function(t){var r=+e,o=r/(t[1][1]-t[0][1]),a=-o*t[0][0],i=(r-o*(t[1][1]+t[0][1]))/2;n.scale(150*o).translate([a,i])}),t)}Wi.prototype={constructor:Wi,point:function(n,e){this.stream.point(n,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var el=16,tl=Jo(30*Yo),rl=function(n,e){return+e?al(n,e):ol(n)};function ol(n){return Yi({point:function(e,t){e=n(e,t),this.stream.point(e[0],e[1])}})}function al(n,e){function t(r,o,a,i,l,u,s,_,c,p,f,m,d,g){var h=s-r,b=_-o,v=h*h+b*b;if(v>4*e&&d--){var y=i+p,w=l+f,k=u+m,E=ra(y*y+w*w+k*k),S=ia(k/=E),A=Wo(Wo(k)-1)e||Wo((h*N+b*L)/v-.5)>.3||i*p+l*f+u*m2?n[2]%360*Yo:0,N()):[g*qo,h*qo,b*qo]},x.angle=function(n){return arguments.length?(v=n%360*Yo,N()):v*qo},x.reflectX=function(n){return arguments.length?(y=n?-1:1,N()):y<0},x.reflectY=function(n){return arguments.length?(w=n?-1:1,N()):w<0},x.precision=function(n){return arguments.length?(i=rl(l,R=n*n),L()):ra(R)},x.fitExtent=function(n,e){return $i(x,n,e)},x.fitSize=function(n,e){return Ji(x,n,e)},x.fitWidth=function(n,e){return Qi(x,n,e)},x.fitHeight=function(n,e){return nl(x,n,e)},function(){return e=n.apply(this,arguments),x.invert=e.invert&&M,N()}}function pl(n,e){return[n,na(oa((Vo+e)/2))]}pl.invert=function(n,e){return[n,2*Zo(Qo(e))-Vo]};var fl=function(){return ml(pl).scale(961/Xo)};function ml(n){var e,t,r,o=_l(n),a=o.center,i=o.scale,l=o.translate,u=o.clipExtent,s=null;function _(){var a=Ko*i(),l=o(hi(o.rotate()).invert([0,0]));return u(null==s?[[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]]:n===pl?[[Math.max(l[0]-a,s),e],[Math.min(l[0]+a,t),r]]:[[s,Math.max(l[1]-a,e)],[t,Math.min(l[1]+a,r)]])}return o.scale=function(n){return arguments.length?(i(n),_()):i()},o.translate=function(n){return arguments.length?(l(n),_()):l()},o.center=function(n){return arguments.length?(a(n),_()):a()},o.clipExtent=function(n){return arguments.length?(null==n?s=e=t=r=null:(s=+n[0][0],e=+n[0][1],t=+n[1][0],r=+n[1][1]),_()):null==s?null:[[s,e],[t,r]]},_()}var dl=1e-12;function gl(n){return((n=Math.exp(n))+1/n)/2}function hl(n){return((n=Math.exp(n))-1/n)/2}function bl(n){return((n=Math.exp(2*n))-1)/(n+1)}(function n(e,t,r){function o(n,o){var a,i,l=n[0],u=n[1],s=n[2],_=o[0],c=o[1],p=o[2],f=_-l,m=c-u,d=f*f+m*m;if(d 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MeshMap.vue?vue&type=style&index=0&id=59d5eebf&lang=scss\"","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","\n\n\n\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"../arrayLikeToArray/_index.mjs\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"../arrayWithoutHoles/_index.mjs\";\nimport iterableToArray from \"../iterableToArray/_index.mjs\";\nimport unsupportedIterableToArray from \"../unsupportedIterableToArray/_index.mjs\";\nimport nonIterableSpread from \"../nonIterableSpread/_index.mjs\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => x;\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport default function(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import {Adder} from \"d3-array\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = new Adder(),\n areaRingSum = new Adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum = new Adder();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum = new Adder();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import {Adder} from \"d3-array\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = new Adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum = new Adder();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {computed, ref, watch} from 'vue'\nimport useProviders from '@/use/providers'\nimport mapData from '../assets/data/europe.geo.json'\nimport * as d3 from 'd3'\n\n\nconst {locations, originator, target, getLocation} = useProviders()\n\nexport default function useMap(center, statesRef, mapRef) {\n const scale = ref(850)\n const projection = computed(() => {\n return d3.geoMercator().scale(scale.value).center(center)\n })\n const path = ref(d3.geoPath(projection.value))\n const markers = ref([])\n const connections = ref([])\n const _locations = [...locations.value]\n const currentMarker = ref(null)\n const targetLoc = computed(() => {\n if (target.value) {\n return getLocation(target)\n }\n return null\n })\n\n function renderStates() {\n d3.select(statesRef.value)\n .selectAll(\"path\")\n .data(mapData.features)\n .enter()\n .append(\"path\")\n .attr(\"d\", path.value)\n }\n\n function renderProviders() {\n let i = _locations.length, d, proj\n\n while (i--) {\n d = _locations[i];\n if (!d.longitude && !d.latitude) {\n // Let's consider this a bad location record\n _locations.splice(i, 1);\n }\n\n proj = projection.value([d.longitude, d.latitude])\n if (proj) {\n d.x = proj[0];\n d.y = proj[1];\n } else {\n _locations.splice(i, 1);\n }\n }\n Array.prototype.pairs = function (func) {\n for (let i = 0; i < this.length - 1; i++) {\n for (let j = i; j < this.length - 1; j++) {\n func([this[i], this[j + 1]]);\n }\n }\n }\n _locations.pairs((pair) => {\n connections.value.push(pair)\n })\n // Pick 10 random connections proportional to number of locations\n connections.value = connections.value\n .sort(() => 0.5 - Math.random())\n .slice(0, Math.ceil((_locations.length % connections.value.length - 1)))\n }\n\n function getProviderPoint(provider) {\n if (provider.value) {\n return _locations.find(l => {\n return l.key === provider.value.key\n })\n }\n }\n\n function addMarker(provider) {\n const providerPoint = getProviderPoint(provider)\n\n if (providerPoint) {\n markers.value.push({\n provider: provider.value,\n x: providerPoint.x,\n y: providerPoint.y\n })\n }\n }\n\n function renderConnection(connection) {\n\n let m1 = connection[1],\n m2 = connection[0];\n\n if (!m1 || !m2) {\n return\n }\n\n if (m1.x < m2.x) {\n m1 = connection[0];\n m2 = connection[1];\n }\n\n var dx = m2.x - m1.x,\n dy = m2.y - m1.y,\n dr = Math.sqrt(dx * dx + dy * dy);\n\n return \"M\" + m2.x + \",\" + m2.y + \"A\" + dr + \",\" + dr + \" 0 0,1 \" + m1.x + \",\" + m1.y;\n }\n\n function renderMarkers() {\n markers.value = []\n addMarker(getLocation(originator))\n if (targetLoc.value) {\n addMarker(targetLoc.value)\n }\n }\n\n watch([target], () => renderMarkers())\n\n function markerSet(e, marker, index) {\n if (e) {\n e.preventDefault()\n }\n const m = markers.value[index]\n m.provider = null\n m.current = true\n m.startX = m.x\n m.startY = m.y\n currentMarker.value = m\n document.addEventListener('mousemove', markerDrag)\n document.addEventListener('mouseup', markerStop)\n mapRef.value.addEventListener('mouseleave', markerLeave)\n }\n\n function markerDrag(e) {\n currentMarker.value.provider = targetLoc.value\n let mouse = d3.pointer(e)\n currentMarker.value.x = mouse[0]\n currentMarker.value.y = mouse[1] - 141\n }\n\n function markerLeave() {\n currentMarker.value.x = currentMarker.value.startX;\n currentMarker.value.y = currentMarker.value.startY;\n\n markerStop();\n }\n\n function markerStop() {\n document.removeEventListener('mousemove', markerDrag);\n document.removeEventListener('mouseup', markerStop);\n mapRef.value.removeEventListener('mouseleave', markerLeave);\n\n currentMarker.value.current = false;\n currentMarker.value = null;\n }\n\n\n function render() {\n renderStates()\n renderProviders()\n renderMarkers()\n }\n\n function isOrigin(markerProvider) {\n return markerProvider === getLocation(originator).value\n }\n\n return {\n markers,\n projection: computed(() => projection.value),\n providerConnections: computed(() => connections.value),\n providerPoints: computed(() => _locations),\n render, renderConnection, isOrigin, markerSet\n }\n}\n","import { render } from \"./MeshMap.vue?vue&type=template&id=59d5eebf\"\nimport script from \"./MeshMap.vue?vue&type=script&lang=js\"\nexport * from \"./MeshMap.vue?vue&type=script&lang=js\"\n\nimport \"./MeshMap.vue?vue&type=style&index=0&id=59d5eebf&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-vendors.64ef7f8c.js b/dist/js/chunk-vendors.64ef7f8c.js deleted file mode 100644 index c3ed597..0000000 --- a/dist/js/chunk-vendors.64ef7f8c.js +++ /dev/null @@ -1,17 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"00ee":function(t,e,n){var r=n("b622"),o=r("toStringTag"),i={};i[o]="z",t.exports="[object z]"===String(i)},"0366":function(t,e,n){var r=n("1c0b");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"057f":function(t,e,n){var r=n("fc6a"),o=n("241c").f,i={}.toString,c="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return o(t)}catch(e){return c.slice()}};t.exports.f=function(t){return c&&"[object Window]"==i.call(t)?a(t):o(r(t))}},"06cf":function(t,e,n){var r=n("83ab"),o=n("d1e7"),i=n("5c6c"),c=n("fc6a"),a=n("c04e"),s=n("5135"),u=n("0cfb"),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=c(t),e=a(e,!0),u)try{return l(t,e)}catch(n){}if(s(t,e))return i(!o.f.call(t,e),t[e])}},"0cb2":function(t,e,n){var r=n("7b0b"),o=Math.floor,i="".replace,c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,a=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,s,u,l){var f=n+t.length,p=s.length,d=a;return void 0!==u&&(u=r(u),d=c),i.call(l,d,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(f);case"<":c=u[i.slice(1,-1)];break;default:var a=+i;if(0===a)return r;if(a>p){var l=o(a/10);return 0===l?r:l<=p?void 0===s[l-1]?i.charAt(1):s[l-1]+i.charAt(1):r}c=s[a-1]}return void 0===c?"":c}))}},"0cfb":function(t,e,n){var r=n("83ab"),o=n("d039"),i=n("cc12");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},"0d3b":function(t,e,n){var r=n("d039"),o=n("b622"),i=n("c430"),c=o("iterator");t.exports=!r((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,r){e["delete"]("b"),n+=r+t})),i&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[c]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},"129f":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},"14c3":function(t,e,n){var r=n("c6b6"),o=n("9263");t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var i=n.call(t,e);if("object"!==typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},"19aa":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},"1be4":function(t,e,n){var r=n("d066");t.exports=r("document","documentElement")},"1c0b":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(t,e,n){var r=n("b622"),o=r("iterator"),i=!1;try{var c=0,a={next:function(){return{done:!!c++}},return:function(){i=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(s){}return n}},"1cdc":function(t,e,n){var r=n("342f");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},"1d80":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"1dde":function(t,e,n){var r=n("d039"),o=n("b622"),i=n("2d00"),c=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[],n=e.constructor={};return n[c]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},2266:function(t,e,n){var r=n("825a"),o=n("e95a"),i=n("50c4"),c=n("0366"),a=n("35a1"),s=n("2a62"),u=function(t,e){this.stopped=t,this.result=e};t.exports=function(t,e,n){var l,f,p,d,h,v,b,m=n&&n.that,g=!(!n||!n.AS_ENTRIES),y=!(!n||!n.IS_ITERATOR),w=!(!n||!n.INTERRUPTED),O=c(e,m,1+g+w),j=function(t){return l&&s(l),new u(!0,t)},x=function(t){return g?(r(t),w?O(t[0],t[1],j):O(t[0],t[1])):w?O(t,j):O(t)};if(y)l=t;else{if(f=a(t),"function"!=typeof f)throw TypeError("Target is not iterable");if(o(f)){for(p=0,d=i(t.length);d>p;p++)if(h=x(t[p]),h&&h instanceof u)return h;return new u(!1)}l=f.call(t)}v=l.next;while(!(b=v.call(l)).done){try{h=x(b.value)}catch(_){throw s(l),_}if("object"==typeof h&&h&&h instanceof u)return h}return new u(!1)}},"23cb":function(t,e,n){var r=n("a691"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},"23e7":function(t,e,n){var r=n("da84"),o=n("06cf").f,i=n("9112"),c=n("6eeb"),a=n("ce4e"),s=n("e893"),u=n("94ca");t.exports=function(t,e){var n,l,f,p,d,h,v=t.target,b=t.global,m=t.stat;if(l=b?r:m?r[v]||a(v,{}):(r[v]||{}).prototype,l)for(f in e){if(d=e[f],t.noTargetGet?(h=o(l,f),p=h&&h.value):p=l[f],n=u(b?f:v+(m?".":"#")+f,t.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;s(d,p)}(t.sham||p&&p.sham)&&i(d,"sham",!0),c(l,f,d,t)}}},"241c":function(t,e,n){var r=n("ca84"),o=n("7839"),i=o.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},2532:function(t,e,n){"use strict";var r=n("23e7"),o=n("5a34"),i=n("1d80"),c=n("ab13");r({target:"String",proto:!0,forced:!c("includes")},{includes:function(t){return!!~String(i(this)).indexOf(o(t),arguments.length>1?arguments[1]:void 0)}})},"25f0":function(t,e,n){"use strict";var r=n("6eeb"),o=n("825a"),i=n("d039"),c=n("ad6d"),a="toString",s=RegExp.prototype,u=s[a],l=i((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),f=u.name!=a;(l||f)&&r(RegExp.prototype,a,(function(){var t=o(this),e=String(t.source),n=t.flags,r=String(void 0===n&&t instanceof RegExp&&!("flags"in s)?c.call(t):n);return"/"+e+"/"+r}),{unsafe:!0})},2626:function(t,e,n){"use strict";var r=n("d066"),o=n("9bf2"),i=n("b622"),c=n("83ab"),a=i("species");t.exports=function(t){var e=r(t),n=o.f;c&&e&&!e[a]&&n(e,a,{configurable:!0,get:function(){return this}})}},"2a62":function(t,e,n){var r=n("825a");t.exports=function(t){var e=t["return"];if(void 0!==e)return r(e.call(t)).value}},"2b3d":function(t,e,n){"use strict";n("3ca3");var r,o=n("23e7"),i=n("83ab"),c=n("0d3b"),a=n("da84"),s=n("37e8"),u=n("6eeb"),l=n("19aa"),f=n("5135"),p=n("60da"),d=n("4df4"),h=n("6547").codeAt,v=n("5fb2"),b=n("d44e"),m=n("9861"),g=n("69f3"),y=a.URL,w=m.URLSearchParams,O=m.getState,j=g.set,x=g.getterFor("URL"),_=Math.floor,S=Math.pow,k="Invalid authority",E="Invalid scheme",A="Invalid host",C="Invalid port",L=/[A-Za-z]/,T=/[\d+-.A-Za-z]/,P=/\d/,R=/^(0x|0X)/,I=/^[0-7]+$/,M=/^\d+$/,N=/^[\dA-Fa-f]+$/,F=/[\u0000\t\u000A\u000D #%/:?@[\\]]/,z=/[\u0000\t\u000A\u000D #/:?@[\\]]/,U=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,B=/[\t\u000A\u000D]/g,V=function(t,e){var n,r,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return A;if(n=$(e.slice(1,-1)),!n)return A;t.host=n}else if(Z(t)){if(e=v(e),F.test(e))return A;if(n=D(e),null===n)return A;t.host=n}else{if(z.test(e))return A;for(n="",r=d(e),o=0;o4)return t;for(n=[],r=0;r1&&"0"==o.charAt(0)&&(i=R.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)c=0;else{if(!(10==i?M:8==i?I:N).test(o))return t;c=parseInt(o,i)}n.push(c)}for(r=0;r=S(256,5-e))return null}else if(c>255)return null;for(a=n.pop(),r=0;r6)return;r=0;while(p()){if(o=null,r>0){if(!("."==p()&&r<4))return;f++}if(!P.test(p()))return;while(P.test(p())){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;f++}s[u]=256*s[u]+o,r++,2!=r&&4!=r||u++}if(4!=r)return;break}if(":"==p()){if(f++,!p())return}else if(p())return;s[u++]=e}else{if(null!==l)return;f++,u++,l=u}}if(null!==l){c=u-l,u=7;while(0!=u&&c>0)a=s[u],s[u--]=s[l+c-1],s[l+--c]=a}else if(8!=u)return;return s},q=function(t){for(var e=null,n=1,r=null,o=0,i=0;i<8;i++)0!==t[i]?(o>n&&(e=r,n=o),r=null,o=0):(null===r&&(r=i),++o);return o>n&&(e=r,n=o),e},H=function(t){var e,n,r,o;if("number"==typeof t){for(e=[],n=0;n<4;n++)e.unshift(t%256),t=_(t/256);return e.join(".")}if("object"==typeof t){for(e="",r=q(t),n=0;n<8;n++)o&&0===t[n]||(o&&(o=!1),r===n?(e+=n?":":"::",o=!0):(e+=t[n].toString(16),n<7&&(e+=":")));return"["+e+"]"}return t},W={},G=p({},W,{" ":1,'"':1,"<":1,">":1,"`":1}),K=p({},G,{"#":1,"?":1,"{":1,"}":1}),Y=p({},K,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),X=function(t,e){var n=h(t,0);return n>32&&n<127&&!f(e,t)?t:encodeURIComponent(t)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Z=function(t){return f(J,t.scheme)},Q=function(t){return""!=t.username||""!=t.password},tt=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},et=function(t,e){var n;return 2==t.length&&L.test(t.charAt(0))&&(":"==(n=t.charAt(1))||!e&&"|"==n)},nt=function(t){var e;return t.length>1&&et(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},rt=function(t){var e=t.path,n=e.length;!n||"file"==t.scheme&&1==n&&et(e[0],!0)||e.pop()},ot=function(t){return"."===t||"%2e"===t.toLowerCase()},it=function(t){return t=t.toLowerCase(),".."===t||"%2e."===t||".%2e"===t||"%2e%2e"===t},ct={},at={},st={},ut={},lt={},ft={},pt={},dt={},ht={},vt={},bt={},mt={},gt={},yt={},wt={},Ot={},jt={},xt={},_t={},St={},kt={},Et=function(t,e,n,o){var i,c,a,s,u=n||ct,l=0,p="",h=!1,v=!1,b=!1;n||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(U,"")),e=e.replace(B,""),i=d(e);while(l<=i.length){switch(c=i[l],u){case ct:if(!c||!L.test(c)){if(n)return E;u=st;continue}p+=c.toLowerCase(),u=at;break;case at:if(c&&(T.test(c)||"+"==c||"-"==c||"."==c))p+=c.toLowerCase();else{if(":"!=c){if(n)return E;p="",u=st,l=0;continue}if(n&&(Z(t)!=f(J,p)||"file"==p&&(Q(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=p,n)return void(Z(t)&&J[t.scheme]==t.port&&(t.port=null));p="","file"==t.scheme?u=yt:Z(t)&&o&&o.scheme==t.scheme?u=ut:Z(t)?u=dt:"/"==i[l+1]?(u=lt,l++):(t.cannotBeABaseURL=!0,t.path.push(""),u=_t)}break;case st:if(!o||o.cannotBeABaseURL&&"#"!=c)return E;if(o.cannotBeABaseURL&&"#"==c){t.scheme=o.scheme,t.path=o.path.slice(),t.query=o.query,t.fragment="",t.cannotBeABaseURL=!0,u=kt;break}u="file"==o.scheme?yt:ft;continue;case ut:if("/"!=c||"/"!=i[l+1]){u=ft;continue}u=ht,l++;break;case lt:if("/"==c){u=vt;break}u=xt;continue;case ft:if(t.scheme=o.scheme,c==r)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query;else if("/"==c||"\\"==c&&Z(t))u=pt;else if("?"==c)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query="",u=St;else{if("#"!=c){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.path.pop(),u=xt;continue}t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=kt}break;case pt:if(!Z(t)||"/"!=c&&"\\"!=c){if("/"!=c){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,u=xt;continue}u=vt}else u=ht;break;case dt:if(u=ht,"/"!=c||"/"!=p.charAt(l+1))continue;l++;break;case ht:if("/"!=c&&"\\"!=c){u=vt;continue}break;case vt:if("@"==c){h&&(p="%40"+p),h=!0,a=d(p);for(var m=0;m65535)return C;t.port=Z(t)&&w===J[t.scheme]?null:w,p=""}if(n)return;u=jt;continue}return C}p+=c;break;case yt:if(t.scheme="file","/"==c||"\\"==c)u=wt;else{if(!o||"file"!=o.scheme){u=xt;continue}if(c==r)t.host=o.host,t.path=o.path.slice(),t.query=o.query;else if("?"==c)t.host=o.host,t.path=o.path.slice(),t.query="",u=St;else{if("#"!=c){nt(i.slice(l).join(""))||(t.host=o.host,t.path=o.path.slice(),rt(t)),u=xt;continue}t.host=o.host,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=kt}}break;case wt:if("/"==c||"\\"==c){u=Ot;break}o&&"file"==o.scheme&&!nt(i.slice(l).join(""))&&(et(o.path[0],!0)?t.path.push(o.path[0]):t.host=o.host),u=xt;continue;case Ot:if(c==r||"/"==c||"\\"==c||"?"==c||"#"==c){if(!n&&et(p))u=xt;else if(""==p){if(t.host="",n)return;u=jt}else{if(s=V(t,p),s)return s;if("localhost"==t.host&&(t.host=""),n)return;p="",u=jt}continue}p+=c;break;case jt:if(Z(t)){if(u=xt,"/"!=c&&"\\"!=c)continue}else if(n||"?"!=c)if(n||"#"!=c){if(c!=r&&(u=xt,"/"!=c))continue}else t.fragment="",u=kt;else t.query="",u=St;break;case xt:if(c==r||"/"==c||"\\"==c&&Z(t)||!n&&("?"==c||"#"==c)){if(it(p)?(rt(t),"/"==c||"\\"==c&&Z(t)||t.path.push("")):ot(p)?"/"==c||"\\"==c&&Z(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&et(p)&&(t.host&&(t.host=""),p=p.charAt(0)+":"),t.path.push(p)),p="","file"==t.scheme&&(c==r||"?"==c||"#"==c))while(t.path.length>1&&""===t.path[0])t.path.shift();"?"==c?(t.query="",u=St):"#"==c&&(t.fragment="",u=kt)}else p+=X(c,K);break;case _t:"?"==c?(t.query="",u=St):"#"==c?(t.fragment="",u=kt):c!=r&&(t.path[0]+=X(c,W));break;case St:n||"#"!=c?c!=r&&("'"==c&&Z(t)?t.query+="%27":t.query+="#"==c?"%23":X(c,W)):(t.fragment="",u=kt);break;case kt:c!=r&&(t.fragment+=X(c,G));break}l++}},At=function(t){var e,n,r=l(this,At,"URL"),o=arguments.length>1?arguments[1]:void 0,c=String(t),a=j(r,{type:"URL"});if(void 0!==o)if(o instanceof At)e=x(o);else if(n=Et(e={},String(o)),n)throw TypeError(n);if(n=Et(a,c,null,e),n)throw TypeError(n);var s=a.searchParams=new w,u=O(s);u.updateSearchParams(a.query),u.updateURL=function(){a.query=String(s)||null},i||(r.href=Lt.call(r),r.origin=Tt.call(r),r.protocol=Pt.call(r),r.username=Rt.call(r),r.password=It.call(r),r.host=Mt.call(r),r.hostname=Nt.call(r),r.port=Ft.call(r),r.pathname=zt.call(r),r.search=Ut.call(r),r.searchParams=Bt.call(r),r.hash=Vt.call(r))},Ct=At.prototype,Lt=function(){var t=x(this),e=t.scheme,n=t.username,r=t.password,o=t.host,i=t.port,c=t.path,a=t.query,s=t.fragment,u=e+":";return null!==o?(u+="//",Q(t)&&(u+=n+(r?":"+r:"")+"@"),u+=H(o),null!==i&&(u+=":"+i)):"file"==e&&(u+="//"),u+=t.cannotBeABaseURL?c[0]:c.length?"/"+c.join("/"):"",null!==a&&(u+="?"+a),null!==s&&(u+="#"+s),u},Tt=function(){var t=x(this),e=t.scheme,n=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(r){return"null"}return"file"!=e&&Z(t)?e+"://"+H(t.host)+(null!==n?":"+n:""):"null"},Pt=function(){return x(this).scheme+":"},Rt=function(){return x(this).username},It=function(){return x(this).password},Mt=function(){var t=x(this),e=t.host,n=t.port;return null===e?"":null===n?H(e):H(e)+":"+n},Nt=function(){var t=x(this).host;return null===t?"":H(t)},Ft=function(){var t=x(this).port;return null===t?"":String(t)},zt=function(){var t=x(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Ut=function(){var t=x(this).query;return t?"?"+t:""},Bt=function(){return x(this).searchParams},Vt=function(){var t=x(this).fragment;return t?"#"+t:""},Dt=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&s(Ct,{href:Dt(Lt,(function(t){var e=x(this),n=String(t),r=Et(e,n);if(r)throw TypeError(r);O(e.searchParams).updateSearchParams(e.query)})),origin:Dt(Tt),protocol:Dt(Pt,(function(t){var e=x(this);Et(e,String(t)+":",ct)})),username:Dt(Rt,(function(t){var e=x(this),n=d(String(t));if(!tt(e)){e.username="";for(var r=0;rn)e.push(arguments[n++]);return w[++y]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},r(y),y},v=function(t){delete w[t]},p?r=function(t){b.nextTick(x(t))}:g&&g.now?r=function(t){g.now(x(t))}:m&&!f?(o=new m,i=o.port2,o.port1.onmessage=_,r=s(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts&&d&&"file:"!==d.protocol&&!a(S)?(r=S,c.addEventListener("message",_,!1)):r=O in l("script")?function(t){u.appendChild(l("script"))[O]=function(){u.removeChild(this),j(t)}}:function(t){setTimeout(x(t),0)}),t.exports={set:h,clear:v}},"2d00":function(t,e,n){var r,o,i=n("da84"),c=n("342f"),a=i.process,s=a&&a.versions,u=s&&s.v8;u?(r=u.split("."),o=r[0]+r[1]):c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(o=r[1]))),t.exports=o&&+o},"342f":function(t,e,n){var r=n("d066");t.exports=r("navigator","userAgent")||""},"35a1":function(t,e,n){var r=n("f5df"),o=n("3f8c"),i=n("b622"),c=i("iterator");t.exports=function(t){if(void 0!=t)return t[c]||t["@@iterator"]||o[r(t)]}},"37e8":function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("825a"),c=n("df75");t.exports=r?Object.defineProperties:function(t,e){i(t);var n,r=c(e),a=r.length,s=0;while(a>s)o.f(t,n=r[s++],e[n]);return t}},"3bbe":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3ca3":function(t,e,n){"use strict";var r=n("6547").charAt,o=n("69f3"),i=n("7dd0"),c="String Iterator",a=o.set,s=o.getterFor(c);i(String,"String",(function(t){a(this,{type:c,string:String(t),index:0})}),(function(){var t,e=s(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},"3f8c":function(t,e){t.exports={}},"428f":function(t,e,n){var r=n("da84");t.exports=r},"44ad":function(t,e,n){var r=n("d039"),o=n("c6b6"),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},"44d2":function(t,e,n){var r=n("b622"),o=n("7c73"),i=n("9bf2"),c=r("unscopables"),a=Array.prototype;void 0==a[c]&&i.f(a,c,{configurable:!0,value:o(null)}),t.exports=function(t){a[c][t]=!0}},"44de":function(t,e,n){var r=n("da84");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},"44e7":function(t,e,n){var r=n("861d"),o=n("c6b6"),i=n("b622"),c=i("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[c])?!!e:"RegExp"==o(t))}},4840:function(t,e,n){var r=n("825a"),o=n("1c0b"),i=n("b622"),c=i("species");t.exports=function(t,e){var n,i=r(t).constructor;return void 0===i||void 0==(n=r(i)[c])?e:o(n)}},4930:function(t,e,n){var r=n("605d"),o=n("2d00"),i=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!Symbol.sham&&(r?38===o:o>37&&o<41)}))},"4d64":function(t,e,n){var r=n("fc6a"),o=n("50c4"),i=n("23cb"),c=function(t){return function(e,n,c){var a,s=r(e),u=o(s.length),l=i(c,u);if(t&&n!=n){while(u>l)if(a=s[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").filter,i=n("1dde"),c=i("filter");r({target:"Array",proto:!0,forced:!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,n){"use strict";var r=n("0366"),o=n("7b0b"),i=n("9bdd"),c=n("e95a"),a=n("50c4"),s=n("8418"),u=n("35a1");t.exports=function(t){var e,n,l,f,p,d,h=o(t),v="function"==typeof this?this:Array,b=arguments.length,m=b>1?arguments[1]:void 0,g=void 0!==m,y=u(h),w=0;if(g&&(m=r(m,b>2?arguments[2]:void 0,2)),void 0==y||v==Array&&c(y))for(e=a(h.length),n=new v(e);e>w;w++)d=g?m(h[w],w):h[w],s(n,w,d);else for(f=y.call(h),p=f.next,n=new v;!(l=p.call(f)).done;w++)d=g?i(f,m,[l.value,w],!0):l.value,s(n,w,d);return n.length=w,n}},"50c4":function(t,e,n){var r=n("a691"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5319:function(t,e,n){"use strict";var r=n("d784"),o=n("825a"),i=n("50c4"),c=n("a691"),a=n("1d80"),s=n("8aa5"),u=n("0cb2"),l=n("14c3"),f=Math.max,p=Math.min,d=function(t){return void 0===t?t:String(t)};r("replace",2,(function(t,e,n,r){var h=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,v=r.REPLACE_KEEPS_$0,b=h?"$":"$0";return[function(n,r){var o=a(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!h&&v||"string"===typeof r&&-1===r.indexOf(b)){var a=n(e,t,this,r);if(a.done)return a.value}var m=o(t),g=String(this),y="function"===typeof r;y||(r=String(r));var w=m.global;if(w){var O=m.unicode;m.lastIndex=0}var j=[];while(1){var x=l(m,g);if(null===x)break;if(j.push(x),!w)break;var _=String(x[0]);""===_&&(m.lastIndex=s(g,i(m.lastIndex),O))}for(var S="",k=0,E=0;E=k&&(S+=g.slice(k,C)+I,k=C+A.length)}return S+g.slice(k)}]}))},5692:function(t,e,n){var r=n("c430"),o=n("c6cd");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(t,e,n){var r=n("d066"),o=n("241c"),i=n("7418"),c=n("825a");t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(c(t)),n=i.f;return n?e.concat(n(t)):e}},5899:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(t,e,n){var r=n("1d80"),o=n("5899"),i="["+o+"]",c=RegExp("^"+i+i+"*"),a=RegExp(i+i+"*$"),s=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(c,"")),2&t&&(n=n.replace(a,"")),n}};t.exports={start:s(1),end:s(2),trim:s(3)}},"5a34":function(t,e,n){var r=n("44e7");t.exports=function(t){if(r(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5c40":function(t,e,n){"use strict";n.d(e,"a",(function(){return Bt})),n.d(e,"b",(function(){return Be})),n.d(e,"c",(function(){return Yt})),n.d(e,"d",(function(){return d})),n.d(e,"e",(function(){return Yn})),n.d(e,"f",(function(){return Ye})),n.d(e,"g",(function(){return cn})),n.d(e,"h",(function(){return Ae})),n.d(e,"i",(function(){return Ee})),n.d(e,"j",(function(){return on})),n.d(e,"k",(function(){return en})),n.d(e,"l",(function(){return je})),n.d(e,"m",(function(){return we})),n.d(e,"n",(function(){return Pn})),n.d(e,"o",(function(){return Wt})),n.d(e,"p",(function(){return Xn})),n.d(e,"q",(function(){return Jn})),n.d(e,"r",(function(){return pn})),n.d(e,"s",(function(){return Bn})),n.d(e,"t",(function(){return C})),n.d(e,"u",(function(){return Jt})),n.d(e,"v",(function(){return kt})),n.d(e,"w",(function(){return _t})),n.d(e,"x",(function(){return Zt})),n.d(e,"y",(function(){return xt})),n.d(e,"z",(function(){return Et})),n.d(e,"A",(function(){return St})),n.d(e,"B",(function(){return We})),n.d(e,"C",(function(){return ut})),n.d(e,"D",(function(){return fn})),n.d(e,"E",(function(){return st})),n.d(e,"G",(function(){return Zn})),n.d(e,"H",(function(){return Ne})),n.d(e,"I",(function(){return Dt})),n.d(e,"J",(function(){return Ht})),n.d(e,"L",(function(){return Ft})),n.d(e,"M",(function(){return c})),n.d(e,"N",(function(){return Rt})),n.d(e,"O",(function(){return Tt})),n.d(e,"P",(function(){return it})),n.d(e,"Q",(function(){return le})),n.d(e,"R",(function(){return lt}));var r=n("a1e9");n.d(e,"F",(function(){return r["l"]}));var o=n("9ff4");n.d(e,"K",(function(){return o["I"]}));const i=[];function c(t,...e){Object(r["h"])();const n=i.length?i[i.length-1].component:null,o=n&&n.appContext.config.warnHandler,c=a();if(o)p(o,n,11,[t+e.join(""),n&&n.proxy,c.map(({vnode:t})=>`at <${Gn(n,t.type)}>`).join("\n"),c]);else{const n=["[Vue warn]: "+t,...e];c.length&&n.push("\n",...s(c)),console.warn(...n)}Object(r["m"])()}function a(){let t=i[i.length-1];if(!t)return[];const e=[];while(t){const n=e[0];n&&n.vnode===t?n.recurseCount++:e.push({vnode:t,recurseCount:0});const r=t.component&&t.component.parent;t=r&&r.vnode}return e}function s(t){const e=[];return t.forEach((t,n)=>{e.push(...0===n?[]:["\n"],...u(t))}),e}function u({vnode:t,recurseCount:e}){const n=e>0?`... (${e} recursive calls)`:"",r=!!t.component&&null==t.component.parent,o=" at <"+Gn(t.component,t.type,r),i=">"+n;return t.props?[o,...l(t.props),i]:[o+i]}function l(t){const e=[],n=Object.keys(t);return n.slice(0,3).forEach(n=>{e.push(...f(n,t[n]))}),n.length>3&&e.push(" ..."),e}function f(t,e,n){return Object(o["A"])(e)?(e=JSON.stringify(e),n?e:[`${t}=${e}`]):"number"===typeof e||"boolean"===typeof e||null==e?n?e:[`${t}=${e}`]:Object(r["g"])(e)?(e=f(t,Object(r["p"])(e.value),!0),n?e:[t+"=Ref<",e,">"]):Object(o["n"])(e)?[`${t}=fn${e.name?`<${e.name}>`:""}`]:(e=Object(r["p"])(e),n?e:[t+"=",e])}function p(t,e,n,r){let o;try{o=r?t(...r):t()}catch(i){h(i,e,n)}return o}function d(t,e,n,r){if(Object(o["n"])(t)){const i=p(t,e,n,r);return i&&Object(o["v"])(i)&&i.catch(t=>{h(t,e,n)}),i}const i=[];for(let o=0;o>>1,o=U(g[t]);o-1?g.splice(e,0,t):g.push(t),P()}}function P(){b||m||(m=!0,E=k.then(B))}function R(t){const e=g.indexOf(t);e>-1&&g.splice(e,1)}function I(t,e,n,r){Object(o["m"])(t)?n.push(...t):e&&e.includes(t,t.allowRecurse?r+1:r)||n.push(t),P()}function M(t){I(t,O,w,j)}function N(t){I(t,_,x,S)}function F(t,e=null){if(w.length){for(A=e,O=[...new Set(w)],w.length=0,j=0;jU(t)-U(e)),S=0;S<_.length;S++)_[S]();_=null,S=0}}const U=t=>null==t.id?1/0:t.id;function B(t){m=!1,b=!0,F(t),g.sort((t,e)=>U(t)-U(e));try{for(y=0;yt.trim()):e&&(i=n.map(o["K"]))}let s=Object(o["J"])(Object(o["e"])(e)),u=r[s];!u&&c&&(s=Object(o["J"])(Object(o["k"])(e)),u=r[s]),u&&d(u,t,6,i);const l=r[s+"Once"];if(l){if(t.emitted){if(t.emitted[s])return}else(t.emitted={})[s]=!0;d(l,t,6,i)}}function D(t,e,n=!1){if(!e.deopt&&void 0!==t.__emits)return t.__emits;const r=t.emits;let i={},c=!1;if(!Object(o["n"])(t)){const r=t=>{c=!0,Object(o["h"])(i,D(t,e,!0))};!n&&e.mixins.length&&e.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return r||c?(Object(o["m"])(r)?r.forEach(t=>i[t]=null):Object(o["h"])(i,r),t.__emits=i):t.__emits=null}function $(t,e){return!(!t||!Object(o["u"])(e))&&(e=e.slice(2).replace(/Once$/,""),Object(o["j"])(t,e[0].toLowerCase()+e.slice(1))||Object(o["j"])(t,Object(o["k"])(e))||Object(o["j"])(t,e))}let q=null;function H(t){q=t}function W(t){const{type:e,vnode:n,proxy:r,withProxy:i,props:c,propsOptions:[a],slots:s,attrs:u,emit:l,render:f,renderCache:p,data:d,setupState:v,ctx:b}=t;let m;q=t;try{let t;if(4&n.shapeFlag){const e=i||r;m=an(f.call(e,e,p,c,v,d,b)),t=u}else{const n=e;0,m=an(n.length>1?n(c,{attrs:u,slots:s,emit:l}):n(c,null)),t=e.props?u:K(u)}let h=m;if(!1!==e.inheritAttrs&&t){const e=Object.keys(t),{shapeFlag:n}=h;e.length&&(1&n||6&n)&&(a&&e.some(o["s"])&&(t=Y(t,a)),h=rn(h,t))}n.dirs&&(h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),m=h}catch(g){h(g,t,1),m=en(De)}return q=null,m}function G(t){let e;for(let n=0;n{let e;for(const n in t)("class"===n||"style"===n||Object(o["u"])(n))&&((e||(e={}))[n]=t[n]);return e},Y=(t,e)=>{const n={};for(const r in t)Object(o["s"])(r)&&r.slice(9)in e||(n[r]=t[r]);return n};function X(t,e,n){const{props:r,children:o,component:i}=t,{props:c,children:a,patchFlag:s}=e,u=i.emitsOptions;if(e.dirs||e.transition)return!0;if(!(n&&s>=0))return!(!o&&!a||a&&a.$stable)||r!==c&&(r?!c||J(r,c,u):!!c);if(1024&s)return!0;if(16&s)return r?J(r,c,u):!!c;if(8&s){const t=e.dynamicProps;for(let e=0;et.__isSuspense;function tt(t){const{shapeFlag:e,children:n}=t;let r,o;return 32&e?(r=et(n.default),o=et(n.fallback)):(r=et(n),o=an(null)),{content:r,fallback:o}}function et(t){if(Object(o["n"])(t)&&(t=t()),Object(o["m"])(t)){const e=G(t);0,t=e}return an(t)}function nt(t,e){e&&e.pendingBranch?Object(o["m"])(t)?e.effects.push(...t):e.effects.push(t):N(t)}let rt=0;const ot=t=>rt+=t;function it(t,e=q){if(!e)return t;const n=(...n)=>{rt||We(!0);const r=q;H(e);const o=t(...n);return H(r),rt||Ge(),o};return n._c=!0,n}let ct=null;const at=[];function st(t){at.push(ct=t)}function ut(){at.pop(),ct=at[at.length-1]||null}function lt(t){return e=>it((function(){st(t);const n=e.apply(this,arguments);return ut(),n}))}function ft(t,e,n,i=!1){const c={},a={};Object(o["g"])(a,Ze,1),dt(t,e,c,a),n?t.props=i?c:Object(r["n"])(c):t.type.props?t.props=c:t.props=a,t.attrs=a}function pt(t,e,n,i){const{props:c,attrs:a,vnode:{patchFlag:s}}=t,u=Object(r["p"])(c),[l]=t.propsOptions;if(!(i||s>0)||16&s){let r;dt(t,e,c,a);for(const i in u)e&&(Object(o["j"])(e,i)||(r=Object(o["k"])(i))!==i&&Object(o["j"])(e,r))||(l?!n||void 0===n[i]&&void 0===n[r]||(c[i]=ht(l,e||o["b"],i,void 0,t)):delete c[i]);if(a!==u)for(const t in a)e&&Object(o["j"])(e,t)||delete a[t]}else if(8&s){const n=t.vnode.dynamicProps;for(let r=0;r{a=!0;const[n,r]=vt(t,e,!0);Object(o["h"])(i,n),r&&c.push(...r)};!n&&e.mixins.length&&e.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!r&&!a)return t.__props=o["a"];if(Object(o["m"])(r))for(let s=0;s-1,a[1]=n<0||t-1||Object(o["j"])(a,"default"))&&c.push(e)}}}}return t.__props=[i,c]}function bt(t){return"$"!==t[0]}function mt(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function gt(t,e){return mt(t)===mt(e)}function yt(t,e){if(Object(o["m"])(e)){for(let n=0,r=e.length;n{if(n.isUnmounted)return;Object(r["h"])(),Rn(n);const i=d(e,n,t,o);return Rn(null),Object(r["m"])(),i});return o?i.unshift(c):i.push(c),c}}const Ot=t=>(e,n=Tn)=>!Nn&&wt(t,e,n),jt=Ot("bm"),xt=Ot("m"),_t=Ot("bu"),St=Ot("u"),kt=Ot("bum"),Et=Ot("um"),At=Ot("rtg"),Ct=Ot("rtc"),Lt=(t,e=Tn)=>{wt("ec",t,e)};function Tt(t,e){return It(t,null,e)}const Pt={};function Rt(t,e,n){return It(t,e,n)}function It(t,e,{immediate:n,deep:i,flush:c,onTrack:a,onTrigger:s}=o["b"],u=Tn){let l,f,h=!1;if(Object(r["g"])(t)?(l=()=>t.value,h=!!t._shallow):Object(r["e"])(t)?(l=()=>t,i=!0):l=Object(o["m"])(t)?()=>t.map(t=>Object(r["g"])(t)?t.value:Object(r["e"])(t)?Nt(t):Object(o["n"])(t)?p(t,u,2,[u&&u.proxy]):void 0):Object(o["n"])(t)?e?()=>p(t,u,2,[u&&u.proxy]):()=>{if(!u||!u.isUnmounted)return f&&f(),p(t,u,3,[v])}:o["d"],e&&i){const t=l;l=()=>Nt(t())}const v=t=>{f=y.options.onStop=()=>{p(t,u,4)}};let b=Object(o["m"])(t)?[]:Pt;const m=()=>{if(y.active)if(e){const t=y();(i||h||Object(o["i"])(t,b))&&(f&&f(),d(e,u,3,[t,b===Pt?void 0:b,v]),b=t)}else y()};let g;m.allowRecurse=!!e,g="sync"===c?m:"post"===c?()=>Se(m,u&&u.suspense):()=>{!u||u.isMounted?M(m):m()};const y=Object(r["c"])(l,{lazy:!0,onTrack:a,onTrigger:s,scheduler:g});return $n(y,u),e?n?m():b=y():"post"===c?Se(y,u&&u.suspense):y(),()=>{Object(r["o"])(y),u&&Object(o["H"])(u.effects,y)}}function Mt(t,e,n){const r=this.proxy,i=Object(o["A"])(t)?()=>r[t]:t.bind(r);return It(i,e.bind(r),n,this)}function Nt(t,e=new Set){if(!Object(o["t"])(t)||e.has(t))return t;if(e.add(t),Object(r["g"])(t))Nt(t.value,e);else if(Object(o["m"])(t))for(let n=0;n{Nt(t,e)});else for(const n in t)Nt(t[n],e);return t}function Ft(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xt(()=>{t.isMounted=!0}),kt(()=>{t.isUnmounting=!0}),t}const zt=[Function,Array],Ut={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zt,onEnter:zt,onAfterEnter:zt,onEnterCancelled:zt,onBeforeLeave:zt,onLeave:zt,onAfterLeave:zt,onLeaveCancelled:zt,onBeforeAppear:zt,onAppear:zt,onAfterAppear:zt,onAppearCancelled:zt},setup(t,{slots:e}){const n=Pn(),o=Ft();let i;return()=>{const c=e.default&&Wt(e.default(),!0);if(!c||!c.length)return;const a=Object(r["p"])(t),{mode:s}=a;const u=c[0];if(o.isLeaving)return $t(u);const l=qt(u);if(!l)return $t(u);const f=Dt(l,a,o,n);Ht(l,f);const p=n.subTree,d=p&&qt(p);let h=!1;const{getTransitionKey:v}=l.type;if(v){const t=v();void 0===i?i=t:t!==i&&(i=t,h=!0)}if(d&&d.type!==De&&(!Je(l,d)||h)){const t=Dt(d,a,o,n);if(Ht(d,t),"out-in"===s)return o.isLeaving=!0,t.afterLeave=()=>{o.isLeaving=!1,n.update()},$t(u);"in-out"===s&&(t.delayLeave=(t,e,n)=>{const r=Vt(o,d);r[String(d.key)]=d,t._leaveCb=()=>{e(),t._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=n})}return u}}},Bt=Ut;function Vt(t,e){const{leavingVNodes:n}=t;let r=n.get(e.type);return r||(r=Object.create(null),n.set(e.type,r)),r}function Dt(t,e,n,r){const{appear:o,mode:i,persisted:c=!1,onBeforeEnter:a,onEnter:s,onAfterEnter:u,onEnterCancelled:l,onBeforeLeave:f,onLeave:p,onAfterLeave:h,onLeaveCancelled:v,onBeforeAppear:b,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=e,w=String(t.key),O=Vt(n,t),j=(t,e)=>{t&&d(t,r,9,e)},x={mode:i,persisted:c,beforeEnter(e){let r=a;if(!n.isMounted){if(!o)return;r=b||a}e._leaveCb&&e._leaveCb(!0);const i=O[w];i&&Je(t,i)&&i.el._leaveCb&&i.el._leaveCb(),j(r,[e])},enter(t){let e=s,r=u,i=l;if(!n.isMounted){if(!o)return;e=m||s,r=g||u,i=y||l}let c=!1;const a=t._enterCb=e=>{c||(c=!0,j(e?i:r,[t]),x.delayedLeave&&x.delayedLeave(),t._enterCb=void 0)};e?(e(t,a),e.length<=1&&a()):a()},leave(e,r){const o=String(t.key);if(e._enterCb&&e._enterCb(!0),n.isUnmounting)return r();j(f,[e]);let i=!1;const c=e._leaveCb=n=>{i||(i=!0,r(),j(n?v:h,[e]),e._leaveCb=void 0,O[o]===t&&delete O[o])};O[o]=t,p?(p(e,c),p.length<=1&&c()):c()},clone(t){return Dt(t,e,n,r)}};return x}function $t(t){if(Gt(t))return t=rn(t),t.children=null,t}function qt(t){return Gt(t)?t.children?t.children[0]:void 0:t}function Ht(t,e){6&t.shapeFlag&&t.component?Ht(t.component.subTree,e):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Wt(t,e=!1){let n=[],r=0;for(let o=0;o1)for(let o=0;ot.type.__isKeepAlive,Kt={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(t,{slots:e}){const n=new Map,r=new Set;let i=null;const c=Pn(),a=c.suspense,s=c.ctx,{renderer:{p:u,m:l,um:f,o:{createElement:p}}}=s,d=p("div");function h(t){ee(t),f(t,c,a)}function v(t){n.forEach((e,n)=>{const r=Wn(e.type);!r||t&&t(r)||b(n)})}function b(t){const e=n.get(t);i&&e.type===i.type?i&&ee(i):h(e),n.delete(t),r.delete(t)}s.activate=(t,e,n,r,i)=>{const c=t.component;l(t,e,n,0,a),u(c.vnode,t,e,n,c,a,r,i),Se(()=>{c.isDeactivated=!1,c.a&&Object(o["l"])(c.a);const e=t.props&&t.props.onVnodeMounted;e&&Le(e,c.parent,t)},a)},s.deactivate=t=>{const e=t.component;l(t,d,null,1,a),Se(()=>{e.da&&Object(o["l"])(e.da);const n=t.props&&t.props.onVnodeUnmounted;n&&Le(n,e.parent,t),e.isDeactivated=!0},a)},Rt(()=>[t.include,t.exclude],([t,e])=>{t&&v(e=>Xt(t,e)),e&&v(t=>!Xt(e,t))},{flush:"post",deep:!0});let m=null;const g=()=>{null!=m&&n.set(m,ne(c.subTree))};return xt(g),St(g),kt(()=>{n.forEach(t=>{const{subTree:e,suspense:n}=c,r=ne(e);if(t.type!==r.type)h(t);else{ee(r);const t=r.component.da;t&&Se(t,n)}})}),()=>{if(m=null,!e.default)return null;const o=e.default(),c=o[0];if(o.length>1)return i=null,o;if(!Xe(c)||!(4&c.shapeFlag)&&!(128&c.shapeFlag))return i=null,c;let a=ne(c);const s=a.type,u=Wn(s),{include:l,exclude:f,max:p}=t;if(l&&(!u||!Xt(l,u))||f&&u&&Xt(f,u))return i=a,c;const d=null==a.key?s:a.key,h=n.get(d);return a.el&&(a=rn(a),128&c.shapeFlag&&(c.ssContent=a)),m=d,h?(a.el=h.el,a.component=h.component,a.transition&&Ht(a,a.transition),a.shapeFlag|=512,r.delete(d),r.add(d)):(r.add(d),p&&r.size>parseInt(p,10)&&b(r.values().next().value)),a.shapeFlag|=256,i=a,c}}},Yt=Kt;function Xt(t,e){return Object(o["m"])(t)?t.some(t=>Xt(t,e)):Object(o["A"])(t)?t.split(",").indexOf(e)>-1:!!t.test&&t.test(e)}function Jt(t,e){Qt(t,"a",e)}function Zt(t,e){Qt(t,"da",e)}function Qt(t,e,n=Tn){const r=t.__wdc||(t.__wdc=()=>{let e=n;while(e){if(e.isDeactivated)return;e=e.parent}t()});if(wt(e,r,n),n){let t=n.parent;while(t&&t.parent)Gt(t.parent.vnode)&&te(r,e,n,t),t=t.parent}}function te(t,e,n,r){const i=wt(e,t,r,!0);Et(()=>{Object(o["H"])(r[e],i)},n)}function ee(t){let e=t.shapeFlag;256&e&&(e-=256),512&e&&(e-=512),t.shapeFlag=e}function ne(t){return 128&t.shapeFlag?t.ssContent:t}const re=t=>"_"===t[0]||"$stable"===t,oe=t=>Object(o["m"])(t)?t.map(an):[an(t)],ie=(t,e,n)=>it(t=>oe(e(t)),n),ce=(t,e)=>{const n=t._ctx;for(const r in t){if(re(r))continue;const i=t[r];if(Object(o["n"])(i))e[r]=ie(r,i,n);else if(null!=i){0;const t=oe(i);e[r]=()=>t}}},ae=(t,e)=>{const n=oe(e);t.slots.default=()=>n},se=(t,e)=>{if(32&t.vnode.shapeFlag){const n=e._;n?(t.slots=e,Object(o["g"])(e,"_",n)):ce(e,t.slots={})}else t.slots={},e&&ae(t,e);Object(o["g"])(t.slots,Ze,1)},ue=(t,e)=>{const{vnode:n,slots:r}=t;let i=!0,c=o["b"];if(32&n.shapeFlag){const t=e._;t?1===t?i=!1:Object(o["h"])(r,e):(i=!e.$stable,ce(e,r)),c=e}else e&&(ae(t,e),c={default:1});if(i)for(const o in r)re(o)||o in c||delete r[o]};function le(t,e){const n=q;if(null===n)return t;const r=n.proxy,i=t.dirs||(t.dirs=[]);for(let c=0;c/svg/.test(t.namespaceURI)&&"foreignObject"!==t.tagName,me=t=>8===t.nodeType;function ge(t){const{mt:e,p:n,o:{patchProp:r,nextSibling:i,parentNode:c,remove:a,insert:s,createComment:u}}=t,l=(t,e)=>{ve=!1,f(e.firstChild,t,null,null),z(),ve&&console.error("Hydration completed but contains mismatches.")},f=(n,r,o,a,s=!1)=>{const u=me(n)&&"["===n.data,l=()=>v(n,r,o,a,u),{type:m,ref:g,shapeFlag:y}=r,w=n.nodeType;r.el=n;let O=null;switch(m){case Ve:3!==w?O=l():(n.data!==r.children&&(ve=!0,n.data=r.children),O=i(n));break;case De:O=8!==w||u?l():i(n);break;case $e:if(1===w){O=n;const t=!r.children.length;for(let e=0;e{e(r,t,null,o,a,be(t),s)},f=r.type.__asyncLoader;f?f().then(l):l(),O=u?b(n):i(n)}else 64&y?O=8!==w?l():r.type.hydrate(n,r,o,a,s,t,d):128&y&&(O=r.type.hydrate(n,r,o,a,be(c(n)),s,t,f))}return null!=g&&ke(g,null,a,r),O},p=(t,e,n,i,c)=>{c=c||!!e.dynamicChildren;const{props:s,patchFlag:u,shapeFlag:l,dirs:f}=e;if(-1!==u){if(f&&fe(e,null,n,"created"),s)if(!c||16&u||32&u)for(const e in s)!Object(o["w"])(e)&&Object(o["u"])(e)&&r(t,e,null,s[e]);else s.onClick&&r(t,"onClick",null,s.onClick);let p;if((p=s&&s.onVnodeBeforeMount)&&Le(p,n,e),f&&fe(e,null,n,"beforeMount"),((p=s&&s.onVnodeMounted)||f)&&nt(()=>{p&&Le(p,n,e),f&&fe(e,null,n,"mounted")},i),16&l&&(!s||!s.innerHTML&&!s.textContent)){let r=d(t.firstChild,e,t,n,i,c);while(r){ve=!0;const t=r;r=r.nextSibling,a(t)}}else 8&l&&t.textContent!==e.children&&(ve=!0,t.textContent=e.children)}return t.nextSibling},d=(t,e,r,o,i,c)=>{c=c||!!e.dynamicChildren;const a=e.children,s=a.length;for(let u=0;u{const a=c(t),l=d(i(t),e,a,n,r,o);return l&&me(l)&&"]"===l.data?i(e.anchor=l):(ve=!0,s(e.anchor=u("]"),a,l),l)},v=(t,e,r,o,s)=>{if(ve=!0,e.el=null,s){const e=b(t);while(1){const n=i(t);if(!n||n===e)break;a(n)}}const u=i(t),l=c(t);return a(t),n(null,e,l,u,r,o,be(l)),u},b=t=>{let e=0;while(t)if(t=i(t),t&&me(t)&&("["===t.data&&e++,"]"===t.data)){if(0===e)return i(t);e--}return t};return[l,f]}function ye(){}function we(t){return Object(o["n"])(t)?{setup:t,name:t.name}:t}const Oe=t=>!!t.type.__asyncLoader;function je(t){Object(o["n"])(t)&&(t={loader:t});const{loader:e,loadingComponent:n,errorComponent:i,delay:c=200,timeout:a,suspensible:s=!0,onError:u}=t;let l,f=null,p=0;const d=()=>(p++,f=null,v()),v=()=>{let t;return f||(t=f=e().catch(t=>{if(t=t instanceof Error?t:new Error(String(t)),u)return new Promise((e,n)=>{const r=()=>e(d()),o=()=>n(t);u(t,r,o,p+1)});throw t}).then(e=>t!==f&&f?f:(e&&(e.__esModule||"Module"===e[Symbol.toStringTag])&&(e=e.default),l=e,e)))};return we({__asyncLoader:v,name:"AsyncComponentWrapper",setup(){const t=Tn;if(l)return()=>xe(l,t);const e=e=>{f=null,h(e,t,13,!i)};if(s&&t.suspense)return v().then(e=>()=>xe(e,t)).catch(t=>(e(t),()=>i?en(i,{error:t}):null));const o=Object(r["l"])(!1),u=Object(r["l"])(),p=Object(r["l"])(!!c);return c&&setTimeout(()=>{p.value=!1},c),null!=a&&setTimeout(()=>{if(!o.value&&!u.value){const t=new Error(`Async component timed out after ${a}ms.`);e(t),u.value=t}},a),v().then(()=>{o.value=!0}).catch(t=>{e(t),u.value=t}),()=>o.value&&l?xe(l,t):u.value&&i?en(i,{error:u.value}):n&&!p.value?en(n):void 0}})}function xe(t,{vnode:{ref:e,props:n,children:r}}){const o=en(t,n,r);return o.ref=e,o}const _e={scheduler:T,allowRecurse:!0};const Se=nt,ke=(t,e,n,i)=>{if(Object(o["m"])(t))return void t.forEach((t,r)=>ke(t,e&&(Object(o["m"])(e)?e[r]:e),n,i));let c;c=!i||Oe(i)?null:4&i.shapeFlag?i.component.exposed||i.component.proxy:i.el;const{i:a,r:s}=t;const u=e&&e.r,l=a.refs===o["b"]?a.refs={}:a.refs,f=a.setupState;if(null!=u&&u!==s&&(Object(o["A"])(u)?(l[u]=null,Object(o["j"])(f,u)&&(f[u]=null)):Object(r["g"])(u)&&(u.value=null)),Object(o["A"])(s)){const t=()=>{l[s]=c,Object(o["j"])(f,s)&&(f[s]=c)};c?(t.id=-1,Se(t,n)):t()}else if(Object(r["g"])(s)){const t=()=>{s.value=c};c?(t.id=-1,Se(t,n)):t()}else Object(o["n"])(s)&&p(s,a,12,[c,l])};function Ee(t){return Ce(t)}function Ae(t){return Ce(t,ge)}function Ce(t,e){ye();const{insert:n,remove:i,patchProp:c,forcePatchProp:a,createElement:s,createText:u,createComment:l,setText:f,setElementText:p,parentNode:d,nextSibling:h,setScopeId:v=o["d"],cloneNode:b,insertStaticContent:m}=t,g=(t,e,n,r=null,o=null,i=null,c=!1,a=!1)=>{t&&!Je(t,e)&&(r=J(t),q(t,o,i,!0),t=null),-2===e.patchFlag&&(a=!1,e.dynamicChildren=null);const{type:s,ref:u,shapeFlag:l}=e;switch(s){case Ve:y(t,e,n,r);break;case De:w(t,e,n,r);break;case $e:null==t&&O(e,n,r,c);break;case Be:T(t,e,n,r,o,i,c,a);break;default:1&l?_(t,e,n,r,o,i,c,a):6&l?P(t,e,n,r,o,i,c,a):(64&l||128&l)&&s.process(t,e,n,r,o,i,c,a,tt)}null!=u&&o&&ke(u,t&&t.ref,i,e)},y=(t,e,r,o)=>{if(null==t)n(e.el=u(e.children),r,o);else{const n=e.el=t.el;e.children!==t.children&&f(n,e.children)}},w=(t,e,r,o)=>{null==t?n(e.el=l(e.children||""),r,o):e.el=t.el},O=(t,e,n,r)=>{[t.el,t.anchor]=m(t.children,e,n,r)},j=({el:t,anchor:e},r,o)=>{let i;while(t&&t!==e)i=h(t),n(t,r,o),t=i;n(e,r,o)},x=({el:t,anchor:e})=>{let n;while(t&&t!==e)n=h(t),i(t),t=n;i(e)},_=(t,e,n,r,o,i,c,a)=>{c=c||"svg"===e.type,null==t?S(e,n,r,o,i,c,a):A(t,e,o,i,c,a)},S=(t,e,r,i,a,u,l)=>{let f,d;const{type:h,props:v,shapeFlag:m,transition:g,scopeId:y,patchFlag:w,dirs:O}=t;if(t.el&&void 0!==b&&-1===w)f=t.el=b(t.el);else{if(f=t.el=s(t.type,u,v&&v.is),8&m?p(f,t.children):16&m&&E(t.children,f,null,i,a,u&&"foreignObject"!==h,l||!!t.dynamicChildren),O&&fe(t,null,i,"created"),v){for(const e in v)Object(o["w"])(e)||c(f,e,null,v[e],u,t.children,i,a,Y);(d=v.onVnodeBeforeMount)&&Le(d,i,t)}k(f,y,t,i)}O&&fe(t,null,i,"beforeMount");const j=(!a||a&&!a.pendingBranch)&&g&&!g.persisted;j&&g.beforeEnter(f),n(f,e,r),((d=v&&v.onVnodeMounted)||j||O)&&Se(()=>{d&&Le(d,i,t),j&&g.enter(f),O&&fe(t,null,i,"mounted")},a)},k=(t,e,n,r)=>{if(e&&v(t,e),r){const o=r.type.__scopeId;o&&o!==e&&v(t,o+"-s");let i=r.subTree;0,n===i&&k(t,r.vnode.scopeId,r.vnode,r.parent)}},E=(t,e,n,r,o,i,c,a=0)=>{for(let s=a;s{const u=e.el=t.el;let{patchFlag:l,dynamicChildren:f,dirs:d}=e;l|=16&t.patchFlag;const h=t.props||o["b"],v=e.props||o["b"];let b;if((b=v.onVnodeBeforeUpdate)&&Le(b,n,e,t),d&&fe(e,t,n,"beforeUpdate"),l>0){if(16&l)L(u,e,h,v,n,r,i);else if(2&l&&h.class!==v.class&&c(u,"class",null,v.class,i),4&l&&c(u,"style",h.style,v.style,i),8&l){const o=e.dynamicProps;for(let e=0;e{b&&Le(b,n,e,t),d&&fe(e,t,n,"updated")},r)},C=(t,e,n,r,o,i)=>{for(let c=0;c{if(n!==r){for(const l in r){if(Object(o["w"])(l))continue;const f=r[l],p=n[l];(f!==p||a&&a(t,l))&&c(t,l,p,f,u,e.children,i,s,Y)}if(n!==o["b"])for(const a in n)Object(o["w"])(a)||a in r||c(t,a,n[a],null,u,e.children,i,s,Y)}},T=(t,e,r,o,i,c,a,s)=>{const l=e.el=t?t.el:u(""),f=e.anchor=t?t.anchor:u("");let{patchFlag:p,dynamicChildren:d}=e;p>0&&(s=!0),null==t?(n(l,r,o),n(f,r,o),E(e.children,r,f,i,c,a,s)):p>0&&64&p&&d&&t.dynamicChildren?(C(t.dynamicChildren,d,r,i,c,a),(null!=e.key||i&&e===i.subTree)&&Te(t,e,!0)):B(t,e,r,f,i,c,a,s)},P=(t,e,n,r,o,i,c,a)=>{null==t?512&e.shapeFlag?o.ctx.activate(e,n,r,c,a):I(e,n,r,o,i,c,a):M(t,e,a)},I=(t,e,n,r,o,i,c)=>{const a=t.component=Ln(t,r,o);if(Gt(t)&&(a.ctx.renderer=tt),Fn(a),a.asyncDep){if(o&&o.registerDep(a,N),!t.el){const t=a.subTree=en(De);w(null,t,e,n)}}else N(a,t,e,n,o,i,c)},M=(t,e,n)=>{const r=e.component=t.component;if(X(t,e,n)){if(r.asyncDep&&!r.asyncResolved)return void U(r,e,n);r.next=e,R(r.update),r.update()}else e.component=t.component,e.el=t.el,r.vnode=e},N=(t,e,n,i,c,a,s)=>{t.update=Object(r["c"])((function(){if(t.isMounted){let e,{next:n,bu:r,u:i,parent:u,vnode:l}=t,f=n;0,n?(n.el=l.el,U(t,n,s)):n=l,r&&Object(o["l"])(r),(e=n.props&&n.props.onVnodeBeforeUpdate)&&Le(e,u,n,l);const p=W(t);0;const h=t.subTree;t.subTree=p,g(h,p,d(h.el),J(h),t,c,a),n.el=p.el,null===f&&Z(t,p.el),i&&Se(i,c),(e=n.props&&n.props.onVnodeUpdated)&&Se(()=>{Le(e,u,n,l)},c)}else{let r;const{el:s,props:u}=e,{bm:l,m:f,parent:p}=t;l&&Object(o["l"])(l),(r=u&&u.onVnodeBeforeMount)&&Le(r,p,e);const d=t.subTree=W(t);if(s&&nt?nt(e.el,d,t,c):(g(null,d,n,i,t,c,a),e.el=d.el),f&&Se(f,c),r=u&&u.onVnodeMounted){const t=e;Se(()=>{Le(r,p,t)},c)}const{a:h}=t;h&&256&e.shapeFlag&&Se(h,c),t.isMounted=!0,e=n=i=null}}),_e)},U=(t,e,n)=>{e.component=t;const r=t.vnode.props;t.vnode=e,t.next=null,pt(t,e.props,r,n),ue(t,e.children),F(void 0,t.update)},B=(t,e,n,r,o,i,c,a=!1)=>{const s=t&&t.children,u=t?t.shapeFlag:0,l=e.children,{patchFlag:f,shapeFlag:d}=e;if(f>0){if(128&f)return void D(s,l,n,r,o,i,c,a);if(256&f)return void V(s,l,n,r,o,i,c,a)}8&d?(16&u&&Y(s,o,i),l!==s&&p(n,l)):16&u?16&d?D(s,l,n,r,o,i,c,a):Y(s,o,i,!0):(8&u&&p(n,""),16&d&&E(l,n,r,o,i,c,a))},V=(t,e,n,r,i,c,a,s)=>{t=t||o["a"],e=e||o["a"];const u=t.length,l=e.length,f=Math.min(u,l);let p;for(p=0;pl?Y(t,i,c,!0,!1,f):E(e,n,r,i,c,a,s,f)},D=(t,e,n,r,i,c,a,s)=>{let u=0;const l=e.length;let f=t.length-1,p=l-1;while(u<=f&&u<=p){const r=t[u],o=e[u]=s?sn(e[u]):an(e[u]);if(!Je(r,o))break;g(r,o,n,null,i,c,a,s),u++}while(u<=f&&u<=p){const r=t[f],o=e[p]=s?sn(e[p]):an(e[p]);if(!Je(r,o))break;g(r,o,n,null,i,c,a,s),f--,p--}if(u>f){if(u<=p){const t=p+1,o=tp)while(u<=f)q(t[u],i,c,!0),u++;else{const d=u,h=u,v=new Map;for(u=h;u<=p;u++){const t=e[u]=s?sn(e[u]):an(e[u]);null!=t.key&&v.set(t.key,u)}let b,m=0;const y=p-h+1;let w=!1,O=0;const j=new Array(y);for(u=0;u=y){q(r,i,c,!0);continue}let o;if(null!=r.key)o=v.get(r.key);else for(b=h;b<=p;b++)if(0===j[b-h]&&Je(r,e[b])){o=b;break}void 0===o?q(r,i,c,!0):(j[o-h]=u+1,o>=O?O=o:w=!0,g(r,e[o],n,null,i,c,a,s),m++)}const x=w?Pe(j):o["a"];for(b=x.length-1,u=y-1;u>=0;u--){const t=h+u,o=e[t],s=t+1{const{el:c,type:a,transition:s,children:u,shapeFlag:l}=t;if(6&l)return void $(t.component.subTree,e,r,o);if(128&l)return void t.suspense.move(e,r,o);if(64&l)return void a.move(t,e,r,tt);if(a===Be){n(c,e,r);for(let t=0;ts.enter(c),i);else{const{leave:t,delayLeave:o,afterLeave:i}=s,a=()=>n(c,e,r),u=()=>{t(c,()=>{a(),i&&i()})};o?o(c,a,u):u()}else n(c,e,r)},q=(t,e,n,r=!1,o=!1)=>{const{type:i,props:c,ref:a,children:s,dynamicChildren:u,shapeFlag:l,patchFlag:f,dirs:p}=t;if(null!=a&&ke(a,null,n,null),256&l)return void e.ctx.deactivate(t);const d=1&l&&p;let h;if((h=c&&c.onVnodeBeforeUnmount)&&Le(h,e,t),6&l)K(t.component,n,r);else{if(128&l)return void t.suspense.unmount(n,r);d&&fe(t,null,e,"beforeUnmount"),u&&(i!==Be||f>0&&64&f)?Y(u,e,n,!1,!0):(i===Be&&(128&f||256&f)||!o&&16&l)&&Y(s,e,n),64&l&&(r||!Ie(t.props))&&t.type.remove(t,tt),r&&H(t)}((h=c&&c.onVnodeUnmounted)||d)&&Se(()=>{h&&Le(h,e,t),d&&fe(t,null,e,"unmounted")},n)},H=t=>{const{type:e,el:n,anchor:r,transition:o}=t;if(e===Be)return void G(n,r);if(e===$e)return void x(t);const c=()=>{i(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&t.shapeFlag&&o&&!o.persisted){const{leave:e,delayLeave:r}=o,i=()=>e(n,c);r?r(t.el,c,i):i()}else c()},G=(t,e)=>{let n;while(t!==e)n=h(t),i(t),t=n;i(e)},K=(t,e,n)=>{const{bum:i,effects:c,update:a,subTree:s,um:u}=t;if(i&&Object(o["l"])(i),c)for(let o=0;o{t.isUnmounted=!0},e),e&&e.pendingBranch&&!e.isUnmounted&&t.asyncDep&&!t.asyncResolved&&t.suspenseId===e.pendingId&&(e.deps--,0===e.deps&&e.resolve())},Y=(t,e,n,r=!1,o=!1,i=0)=>{for(let c=i;c6&t.shapeFlag?J(t.component.subTree):128&t.shapeFlag?t.suspense.next():h(t.anchor||t.el),Q=(t,e)=>{null==t?e._vnode&&q(e._vnode,null,null,!0):g(e._vnode||null,t,e),z(),e._vnode=t},tt={p:g,um:q,m:$,r:H,mt:I,mc:E,pc:B,pbc:C,n:J,o:t};let et,nt;return e&&([et,nt]=e(tt)),{render:Q,hydrate:et,createApp:he(Q,et)}}function Le(t,e,n,r=null){d(t,e,7,[n,r])}function Te(t,e,n=!1){const r=t.children,i=e.children;if(Object(o["m"])(r)&&Object(o["m"])(i))for(let o=0;o0&&(e[r]=n[i-1]),n[i]=r)}}i=n.length,c=n[i-1];while(i-- >0)n[i]=c,c=e[c];return n}const Re=t=>t.__isTeleport,Ie=t=>t&&(t.disabled||""===t.disabled);const Me="components";function Ne(t){return ze(Me,t)||t}const Fe=Symbol();function ze(t,e,n=!0){const r=q||Tn;if(r){const n=r.type;if(t===Me){if("_self"===e)return n;const t=Wn(n);if(t&&(t===e||t===Object(o["e"])(e)||t===Object(o["f"])(Object(o["e"])(e))))return n}const i=Ue(r[t]||n[t],e)||Ue(r.appContext[t],e);return i}}function Ue(t,e){return t&&(t[e]||t[Object(o["e"])(e)]||t[Object(o["f"])(Object(o["e"])(e))])}const Be=Symbol(void 0),Ve=Symbol(void 0),De=Symbol(void 0),$e=Symbol(void 0),qe=[];let He=null;function We(t=!1){qe.push(He=t?null:[])}function Ge(){qe.pop(),He=qe[qe.length-1]||null}let Ke=1;function Ye(t,e,n,r,i){const c=en(t,e,n,r,i,!0);return c.dynamicChildren=He||o["a"],Ge(),Ke>0&&He&&He.push(c),c}function Xe(t){return!!t&&!0===t.__v_isVNode}function Je(t,e){return t.type===e.type&&t.key===e.key}const Ze="__vInternal",Qe=({key:t})=>null!=t?t:null,tn=({ref:t})=>null!=t?Object(o["A"])(t)||Object(r["g"])(t)||Object(o["n"])(t)?{i:q,r:t}:t:null,en=nn;function nn(t,e=null,n=null,i=0,c=null,a=!1){if(t&&t!==Fe||(t=De),Xe(t)){const r=rn(t,e,!0);return n&&un(r,n),r}if(Kn(t)&&(t=t.__vccOpts),e){(Object(r["d"])(e)||Ze in e)&&(e=Object(o["h"])({},e));let{class:t,style:n}=e;t&&!Object(o["A"])(t)&&(e.class=Object(o["F"])(t)),Object(o["t"])(n)&&(Object(r["d"])(n)&&!Object(o["m"])(n)&&(n=Object(o["h"])({},n)),e.style=Object(o["G"])(n))}const s=Object(o["A"])(t)?1:Q(t)?128:Re(t)?64:Object(o["t"])(t)?4:Object(o["n"])(t)?2:0;const u={__v_isVNode:!0,["__v_skip"]:!0,type:t,props:e,key:e&&Qe(e),ref:e&&tn(e),scopeId:ct,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:c,dynamicChildren:null,appContext:null};if(un(u,n),128&s){const{content:t,fallback:e}=tt(u);u.ssContent=t,u.ssFallback=e}return Ke>0&&!a&&He&&(i>0||6&s)&&32!==i&&He.push(u),u}function rn(t,e,n=!1){const{props:r,ref:i,patchFlag:c,children:a}=t,s=e?ln(r||{},e):r;return{__v_isVNode:!0,["__v_skip"]:!0,type:t.type,props:s,key:s&&Qe(s),ref:e&&e.ref?n&&i?Object(o["m"])(i)?i.concat(tn(e)):[i,tn(e)]:tn(e):i,scopeId:t.scopeId,children:a,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Be?-1===c?16:16|c:c,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&rn(t.ssContent),ssFallback:t.ssFallback&&rn(t.ssFallback),el:t.el,anchor:t.anchor}}function on(t=" ",e=0){return en(Ve,null,t,e)}function cn(t="",e=!1){return e?(We(),Ye(De,null,t)):en(De,null,t)}function an(t){return null==t||"boolean"===typeof t?en(De):Object(o["m"])(t)?en(Be,null,t):"object"===typeof t?null===t.el?t:rn(t):en(Ve,null,String(t))}function sn(t){return null===t.el?t:rn(t)}function un(t,e){let n=0;const{shapeFlag:r}=t;if(null==e)e=null;else if(Object(o["m"])(e))n=16;else if("object"===typeof e){if(1&r||64&r){const n=e.default;return void(n&&(n._c&&ot(1),un(t,n()),n._c&&ot(-1)))}{n=32;const r=e._;r||Ze in e?3===r&&q&&(1024&q.vnode.patchFlag?(e._=2,t.patchFlag|=1024):e._=1):e._ctx=q}}else Object(o["n"])(e)?(e={default:e,_ctx:q},n=32):(e=String(e),64&r?(n=16,e=[on(e)]):n=8);t.children=e,t.shapeFlag|=n}function ln(...t){const e=Object(o["h"])({},t[0]);for(let n=1;n1)return n&&Object(o["n"])(e)?e():e}else 0}let dn=!1;function hn(t,e,n=[],i=[],c=[],a=!1){const{mixins:s,extends:u,data:l,computed:f,methods:p,watch:d,provide:h,inject:v,components:b,directives:m,beforeMount:g,mounted:y,beforeUpdate:w,updated:O,activated:j,deactivated:x,beforeDestroy:_,beforeUnmount:S,destroyed:k,unmounted:E,render:A,renderTracked:C,renderTriggered:L,errorCaptured:T,expose:P}=e,R=t.proxy,I=t.ctx,M=t.appContext.mixins;a&&A&&t.render===o["d"]&&(t.render=A),a||(dn=!0,vn("beforeCreate","bc",e,t,M),dn=!1,gn(t,M,n,i,c)),u&&hn(t,u,n,i,c,!0),s&&gn(t,s,n,i,c);if(v)if(Object(o["m"])(v))for(let r=0;ryn(t,e,R)),l&&yn(t,l,R)),f)for(const r in f){const t=f[r],e=Object(o["n"])(t)?t.bind(R,R):Object(o["n"])(t.get)?t.get.bind(R,R):o["d"];0;const n=!Object(o["n"])(t)&&Object(o["n"])(t.set)?t.set.bind(R):o["d"],i=Yn({get:e,set:n});Object.defineProperty(I,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:t=>i.value=t})}if(d&&i.push(d),!a&&i.length&&i.forEach(t=>{for(const e in t)wn(t[e],I,R,e)}),h&&c.push(h),!a&&c.length&&c.forEach(t=>{const e=Object(o["n"])(t)?t.call(R):t;Reflect.ownKeys(e).forEach(t=>{fn(t,e[t])})}),a&&(b&&Object(o["h"])(t.components||(t.components=Object(o["h"])({},t.type.components)),b),m&&Object(o["h"])(t.directives||(t.directives=Object(o["h"])({},t.type.directives)),m)),a||vn("created","c",e,t,M),g&&jt(g.bind(R)),y&&xt(y.bind(R)),w&&_t(w.bind(R)),O&&St(O.bind(R)),j&&Jt(j.bind(R)),x&&Zt(x.bind(R)),T&&Lt(T.bind(R)),C&&Ct(C.bind(R)),L&&At(L.bind(R)),S&&kt(S.bind(R)),E&&Et(E.bind(R)),Object(o["m"])(P))if(a)0;else if(P.length){const e=t.exposed||(t.exposed=Object(r["i"])({}));P.forEach(t=>{e[t]=Object(r["q"])(R,t)})}else t.exposed||(t.exposed=o["b"])}function vn(t,e,n,r,o){mn(t,e,o,r);const{extends:i,mixins:c}=n;i&&bn(t,e,i,r),c&&mn(t,e,c,r);const a=n[t];a&&d(a.bind(r.proxy),r,e)}function bn(t,e,n,r){n.extends&&bn(t,e,n.extends,r);const o=n[t];o&&d(o.bind(r.proxy),r,e)}function mn(t,e,n,r){for(let o=0;on[r];if(Object(o["A"])(t)){const n=e[t];Object(o["n"])(n)&&Rt(i,n)}else if(Object(o["n"])(t))Rt(i,t.bind(n));else if(Object(o["t"])(t))if(Object(o["m"])(t))t.forEach(t=>wn(t,e,n,r));else{const r=Object(o["n"])(t.handler)?t.handler.bind(n):e[t.handler];Object(o["n"])(r)&&Rt(i,r,t)}else 0}function On(t,e){const n=e.split(".");return()=>{let e=t;for(let t=0;txn(c,e,t)),xn(c,e,t),e.__merged=c}function xn(t,e,n){const r=n.appContext.config.optionMergeStrategies,{mixins:i,extends:c}=e;c&&xn(t,c,n),i&&i.forEach(e=>xn(t,e,n));for(const a in e)r&&Object(o["j"])(r,a)?t[a]=r[a](t[a],e[a],n.proxy,a):t[a]=e[a]}const _n=t=>t?In(t)?t.exposed?t.exposed:t.proxy:_n(t.parent):null,Sn=Object(o["h"])(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>_n(t.parent),$root:t=>_n(t.root),$emit:t=>t.emit,$options:t=>jn(t),$forceUpdate:t=>()=>T(t.update),$nextTick:t=>C.bind(t.proxy),$watch:t=>Mt.bind(t)}),kn={get({_:t},e){const{ctx:n,setupState:i,data:c,props:a,accessCache:s,type:u,appContext:l}=t;if("__v_skip"===e)return!0;let f;if("$"!==e[0]){const r=s[e];if(void 0!==r)switch(r){case 0:return i[e];case 1:return c[e];case 3:return n[e];case 2:return a[e]}else{if(i!==o["b"]&&Object(o["j"])(i,e))return s[e]=0,i[e];if(c!==o["b"]&&Object(o["j"])(c,e))return s[e]=1,c[e];if((f=t.propsOptions[0])&&Object(o["j"])(f,e))return s[e]=2,a[e];if(n!==o["b"]&&Object(o["j"])(n,e))return s[e]=3,n[e];dn||(s[e]=4)}}const p=Sn[e];let d,h;return p?("$attrs"===e&&Object(r["r"])(t,"get",e),p(t)):(d=u.__cssModules)&&(d=d[e])?d:n!==o["b"]&&Object(o["j"])(n,e)?(s[e]=3,n[e]):(h=l.config.globalProperties,Object(o["j"])(h,e)?h[e]:void 0)},set({_:t},e,n){const{data:r,setupState:i,ctx:c}=t;if(i!==o["b"]&&Object(o["j"])(i,e))i[e]=n;else if(r!==o["b"]&&Object(o["j"])(r,e))r[e]=n;else if(Object(o["j"])(t.props,e))return!1;return("$"!==e[0]||!(e.slice(1)in t))&&(c[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,appContext:i,propsOptions:c}},a){let s;return void 0!==n[a]||t!==o["b"]&&Object(o["j"])(t,a)||e!==o["b"]&&Object(o["j"])(e,a)||(s=c[0])&&Object(o["j"])(s,a)||Object(o["j"])(r,a)||Object(o["j"])(Sn,a)||Object(o["j"])(i.config.globalProperties,a)}};const En=Object(o["h"])({},kn,{get(t,e){if(e!==Symbol.unscopables)return kn.get(t,e,t)},has(t,e){const n="_"!==e[0]&&!Object(o["o"])(e);return n}});const An=pe();let Cn=0;function Ln(t,e,n){const r=t.type,i=(e?e.appContext:t.appContext)||An,c={uid:Cn++,vnode:t,type:r,parent:e,appContext:i,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:e?e.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vt(r,i),emitsOptions:D(r,i),emit:null,emitted:null,ctx:o["b"],data:o["b"],props:o["b"],attrs:o["b"],slots:o["b"],refs:o["b"],setupState:o["b"],setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return c.ctx={_:c},c.root=e?e.root:c,c.emit=V.bind(null,c),c}let Tn=null;const Pn=()=>Tn||q,Rn=t=>{Tn=t};function In(t){return 4&t.vnode.shapeFlag}let Mn,Nn=!1;function Fn(t,e=!1){Nn=e;const{props:n,children:r}=t.vnode,o=In(t);ft(t,n,o,e),se(t,r);const i=o?zn(t,e):void 0;return Nn=!1,i}function zn(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,kn);const{setup:i}=n;if(i){const n=t.setupContext=i.length>1?Dn(t):null;Tn=t,Object(r["h"])();const c=p(i,t,0,[t.props,n]);if(Object(r["m"])(),Tn=null,Object(o["v"])(c)){if(e)return c.then(e=>{Un(t,e)});t.asyncDep=c}else Un(t,c)}else Vn(t)}function Un(t,e,n){Object(o["n"])(e)?t.render=e:Object(o["t"])(e)&&(t.setupState=Object(r["i"])(e)),Vn(t)}const Bn=()=>!Mn;function Vn(t,e){const n=t.type;t.render||(Mn&&n.template&&!n.render&&(n.render=Mn(n.template,{isCustomElement:t.appContext.config.isCustomElement,delimiters:n.delimiters})),t.render=n.render||o["d"],t.render._rc&&(t.withProxy=new Proxy(t.ctx,En))),Tn=t,Object(r["h"])(),hn(t,n),Object(r["m"])(),Tn=null}function Dn(t){const e=e=>{t.exposed=Object(r["i"])(e)};return{attrs:t.attrs,slots:t.slots,emit:t.emit,expose:e}}function $n(t,e=Tn){e&&(e.effects||(e.effects=[])).push(t)}const qn=/(?:^|[-_])(\w)/g,Hn=t=>t.replace(qn,t=>t.toUpperCase()).replace(/[-_]/g,"");function Wn(t){return Object(o["n"])(t)&&t.displayName||t.name}function Gn(t,e,n=!1){let r=Wn(e);if(!r&&e.__file){const t=e.__file.match(/([^/\\]+)\.\w+$/);t&&(r=t[1])}if(!r&&t&&t.parent){const n=t=>{for(const n in t)if(t[n]===e)return n};r=n(t.components||t.parent.type.components)||n(t.appContext.components)}return r?Hn(r):n?"App":"Anonymous"}function Kn(t){return Object(o["n"])(t)&&"__vccOpts"in t}function Yn(t){const e=Object(r["a"])(t);return $n(e.effect),e}function Xn(t,e,n){const r=arguments.length;return 2===r?Object(o["t"])(e)&&!Object(o["m"])(e)?Xe(e)?en(t,null,[e]):en(t,e):en(t,null,e):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Xe(n)&&(n=[n]),en(t,e,n))}Symbol("");function Jn(){return void 0}function Zn(t,e){let n;if(Object(o["m"])(t)||Object(o["A"])(t)){n=new Array(t.length);for(let r=0,o=t.length;r=55296&&o<=56319&&n>1,t+=b(t/e);t>v*c>>1;r+=o)t=b(t/v);return b(r+(v+1)*t/(t+a))},O=function(t){var e=[];t=g(t);var n,a,s=t.length,p=l,d=0,v=u;for(n=0;n=p&&ab((r-d)/_))throw RangeError(h);for(d+=(x-p)*_,p=x,n=0;nr)throw RangeError(h);if(a==p){for(var S=d,k=o;;k+=o){var E=k<=v?i:k>=v+c?c:k-v;if(Sl){var d,h=u(arguments[l++]),v=f?i(h).concat(f(h)):i(h),b=v.length,m=0;while(b>m)d=v[m++],r&&!p.call(h,d)||(n[d]=h[d])}return n}:l},6547:function(t,e,n){var r=n("a691"),o=n("1d80"),i=function(t){return function(e,n){var i,c,a=String(o(e)),s=r(n),u=a.length;return s<0||s>=u?t?"":void 0:(i=a.charCodeAt(s),i<55296||i>56319||s+1===u||(c=a.charCodeAt(s+1))<56320||c>57343?t?a.charAt(s):i:t?a.slice(s,s+2):c-56320+(i-55296<<10)+65536)}};t.exports={codeAt:i(!1),charAt:i(!0)}},"65f0":function(t,e,n){var r=n("861d"),o=n("e8b5"),i=n("b622"),c=i("species");t.exports=function(t,e){var n;return o(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},"69f3":function(t,e,n){var r,o,i,c=n("7f9a"),a=n("da84"),s=n("861d"),u=n("9112"),l=n("5135"),f=n("c6cd"),p=n("f772"),d=n("d012"),h=a.WeakMap,v=function(t){return i(t)?o(t):r(t,{})},b=function(t){return function(e){var n;if(!s(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}};if(c){var m=f.state||(f.state=new h),g=m.get,y=m.has,w=m.set;r=function(t,e){return e.facade=t,w.call(m,t,e),e},o=function(t){return g.call(m,t)||{}},i=function(t){return y.call(m,t)}}else{var O=p("state");d[O]=!0,r=function(t,e){return e.facade=t,u(t,O,e),e},o=function(t){return l(t,O)?t[O]:{}},i=function(t){return l(t,O)}}t.exports={set:r,get:o,has:i,enforce:v,getterFor:b}},"6eeb":function(t,e,n){var r=n("da84"),o=n("9112"),i=n("5135"),c=n("ce4e"),a=n("8925"),s=n("69f3"),u=s.get,l=s.enforce,f=String(String).split("String");(t.exports=function(t,e,n,a){var s,u=!!a&&!!a.unsafe,p=!!a&&!!a.enumerable,d=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||o(n,"name",e),s=l(n),s.source||(s.source=f.join("string"==typeof e?e:""))),t!==r?(u?!d&&t[e]&&(p=!0):delete t[e],p?t[e]=n:o(t,e,n)):p?t[e]=n:c(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||a(this)}))},7156:function(t,e,n){var r=n("861d"),o=n("d2bb");t.exports=function(t,e,n){var i,c;return o&&"function"==typeof(i=e.constructor)&&i!==n&&r(c=i.prototype)&&c!==n.prototype&&o(t,c),t}},7418:function(t,e){e.f=Object.getOwnPropertySymbols},"746f":function(t,e,n){var r=n("428f"),o=n("5135"),i=n("e538"),c=n("9bf2").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||c(e,t,{value:i.f(t)})}},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a23":function(t,e,n){"use strict";n.d(e,"s",(function(){return r["F"]})),n.d(e,"v",(function(){return r["K"]})),n.d(e,"a",(function(){return r["b"]})),n.d(e,"b",(function(){return r["c"]})),n.d(e,"d",(function(){return r["e"]})),n.d(e,"f",(function(){return r["f"]})),n.d(e,"g",(function(){return r["g"]})),n.d(e,"h",(function(){return r["j"]})),n.d(e,"i",(function(){return r["k"]})),n.d(e,"j",(function(){return r["l"]})),n.d(e,"k",(function(){return r["m"]})),n.d(e,"l",(function(){return r["p"]})),n.d(e,"m",(function(){return r["t"]})),n.d(e,"n",(function(){return r["w"]})),n.d(e,"o",(function(){return r["y"]})),n.d(e,"p",(function(){return r["B"]})),n.d(e,"q",(function(){return r["C"]})),n.d(e,"r",(function(){return r["E"]})),n.d(e,"t",(function(){return r["G"]})),n.d(e,"u",(function(){return r["H"]})),n.d(e,"x",(function(){return r["N"]})),n.d(e,"y",(function(){return r["P"]})),n.d(e,"z",(function(){return r["Q"]})),n.d(e,"B",(function(){return r["R"]})),n.d(e,"c",(function(){return z})),n.d(e,"e",(function(){return ct})),n.d(e,"w",(function(){return et})),n.d(e,"A",(function(){return tt}));var r=n("5c40"),o=n("9ff4");n("a1e9");const i="http://www.w3.org/2000/svg",c="undefined"!==typeof document?document:null;let a,s;const u={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n)=>e?c.createElementNS(i,t):c.createElement(t,n?{is:n}:void 0),createText:t=>c.createTextNode(t),createComment:t=>c.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>c.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},cloneNode(t){return t.cloneNode(!0)},insertStaticContent(t,e,n,r){const o=r?s||(s=c.createElementNS(i,"svg")):a||(a=c.createElement("div"));o.innerHTML=t;const l=o.firstChild;let f=l,p=f;while(f)p=f,u.insert(f,e,n),f=o.firstChild;return[l,p]}};function l(t,e,n){if(null==e&&(e=""),n)t.setAttribute("class",e);else{const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),t.className=e}}function f(t,e,n){const r=t.style;if(n)if(Object(o["A"])(n)){if(e!==n){const e=r.display;r.cssText=n,"_vod"in t&&(r.display=e)}}else{for(const t in n)d(r,t,n[t]);if(e&&!Object(o["A"])(e))for(const t in e)null==n[t]&&d(r,t,"")}else t.removeAttribute("style")}const p=/\s*!important$/;function d(t,e,n){if(Object(o["m"])(n))n.forEach(n=>d(t,e,n));else if(e.startsWith("--"))t.setProperty(e,n);else{const r=b(t,e);p.test(n)?t.setProperty(Object(o["k"])(r),n.replace(p,""),"important"):t[r]=n}}const h=["Webkit","Moz","ms"],v={};function b(t,e){const n=v[e];if(n)return n;let r=Object(o["e"])(e);if("filter"!==r&&r in t)return v[e]=r;r=Object(o["f"])(r);for(let o=0;odocument.createEvent("Event").timeStamp&&(w=()=>performance.now());let O=0;const j=Promise.resolve(),x=()=>{O=0},_=()=>O||(j.then(x),O=w());function S(t,e,n,r){t.addEventListener(e,n,r)}function k(t,e,n,r){t.removeEventListener(e,n,r)}function E(t,e,n,r,o=null){const i=t._vei||(t._vei={}),c=i[e];if(r&&c)c.value=r;else{const[n,a]=C(e);if(r){const c=i[e]=L(r,o);S(t,n,c,a)}else c&&(k(t,n,c,a),i[e]=void 0)}}const A=/(?:Once|Passive|Capture)$/;function C(t){let e;if(A.test(t)){let n;e={};while(n=t.match(A))t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[Object(o["k"])(t.slice(2)),e]}function L(t,e){const n=t=>{const o=t.timeStamp||w();o>=n.attached-1&&Object(r["d"])(T(t,n.value),e,5,[t])};return n.value=t,n.attached=_(),n}function T(t,e){if(Object(o["m"])(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(t=>e=>!e._stopped&&t(e))}return e}const P=/^on[a-z]/,R=(t,e)=>"value"===e,I=(t,e,n,r,i=!1,c,a,s,u)=>{switch(e){case"class":l(t,r,i);break;case"style":f(t,n,r);break;default:Object(o["u"])(e)?Object(o["s"])(e)||E(t,e,n,r,a):M(t,e,r,i)?y(t,e,r,c,a,s,u):("true-value"===e?t._trueValue=r:"false-value"===e&&(t._falseValue=r),g(t,e,r,i));break}};function M(t,e,n,r){return r?"innerHTML"===e||!!(e in t&&P.test(e)&&Object(o["n"])(n)):"spellcheck"!==e&&"draggable"!==e&&("form"!==e&&(("list"!==e||"INPUT"!==t.tagName)&&(("type"!==e||"TEXTAREA"!==t.tagName)&&((!P.test(e)||!Object(o["A"])(n))&&e in t))))}const N="transition",F="animation",z=(t,{slots:e})=>Object(r["p"])(r["a"],B(t),e);z.displayName="Transition";const U={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};z.props=Object(o["h"])({},r["a"].props,U);function B(t){let{name:e="v",type:n,css:r=!0,duration:i,enterFromClass:c=e+"-enter-from",enterActiveClass:a=e+"-enter-active",enterToClass:s=e+"-enter-to",appearFromClass:u=c,appearActiveClass:l=a,appearToClass:f=s,leaveFromClass:p=e+"-leave-from",leaveActiveClass:d=e+"-leave-active",leaveToClass:h=e+"-leave-to"}=t;const v={};for(const o in t)o in U||(v[o]=t[o]);if(!r)return v;const b=V(i),m=b&&b[0],g=b&&b[1],{onBeforeEnter:y,onEnter:w,onEnterCancelled:O,onLeave:j,onLeaveCancelled:x,onBeforeAppear:_=y,onAppear:S=w,onAppearCancelled:k=O}=v,E=(t,e,n)=>{q(t,e?f:s),q(t,e?l:a),n&&n()},A=(t,e)=>{q(t,h),q(t,d),e&&e()},C=t=>(e,r)=>{const o=t?S:w,i=()=>E(e,t,r);o&&o(e,i),H(()=>{q(e,t?u:c),$(e,t?f:s),o&&o.length>1||G(e,n,m,i)})};return Object(o["h"])(v,{onBeforeEnter(t){y&&y(t),$(t,c),$(t,a)},onBeforeAppear(t){_&&_(t),$(t,u),$(t,l)},onEnter:C(!1),onAppear:C(!0),onLeave(t,e){const r=()=>A(t,e);$(t,p),J(),$(t,d),H(()=>{q(t,p),$(t,h),j&&j.length>1||G(t,n,g,r)}),j&&j(t,r)},onEnterCancelled(t){E(t,!1),O&&O(t)},onAppearCancelled(t){E(t,!0),k&&k(t)},onLeaveCancelled(t){A(t),x&&x(t)}})}function V(t){if(null==t)return null;if(Object(o["t"])(t))return[D(t.enter),D(t.leave)];{const e=D(t);return[e,e]}}function D(t){const e=Object(o["K"])(t);return e}function $(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.add(e)),(t._vtc||(t._vtc=new Set)).add(e)}function q(t,e){e.split(/\s+/).forEach(e=>e&&t.classList.remove(e));const{_vtc:n}=t;n&&(n.delete(e),n.size||(t._vtc=void 0))}function H(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let W=0;function G(t,e,n,r){const o=t._endId=++W,i=()=>{o===t._endId&&r()};if(n)return setTimeout(i,n);const{type:c,timeout:a,propCount:s}=K(t,e);if(!c)return r();const u=c+"end";let l=0;const f=()=>{t.removeEventListener(u,p),i()},p=e=>{e.target===t&&++l>=s&&f()};setTimeout(()=>{l(n[t]||"").split(", "),o=r(N+"Delay"),i=r(N+"Duration"),c=Y(o,i),a=r(F+"Delay"),s=r(F+"Duration"),u=Y(a,s);let l=null,f=0,p=0;e===N?c>0&&(l=N,f=c,p=i.length):e===F?u>0&&(l=F,f=u,p=s.length):(f=Math.max(c,u),l=f>0?c>u?N:F:null,p=l?l===N?i.length:s.length:0);const d=l===N&&/\b(transform|all)(,|$)/.test(n[N+"Property"]);return{type:l,timeout:f,propCount:p,hasTransform:d}}function Y(t,e){while(t.lengthX(e)+X(t[n])))}function X(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function J(){return document.body.offsetHeight}new WeakMap,new WeakMap;const Z=["ctrl","shift","alt","meta"],Q={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&0!==t.button,middle:t=>"button"in t&&1!==t.button,right:t=>"button"in t&&2!==t.button,exact:(t,e)=>Z.some(n=>t[n+"Key"]&&!e.includes(n))},tt=(t,e)=>(n,...r)=>{for(let t=0;t{nt(t,!1)}):nt(t,e))},beforeUnmount(t,{value:e}){nt(t,e)}};function nt(t,e){t.style.display=e?t._vod:"none"}const rt=Object(o["h"])({patchProp:I,forcePatchProp:R},u);let ot;function it(){return ot||(ot=Object(r["i"])(rt))}const ct=(...t)=>{const e=it().createApp(...t);const{mount:n}=e;return e.mount=t=>{const r=at(t);if(!r)return;const i=e._component;Object(o["n"])(i)||i.render||i.template||(i.template=r.innerHTML),r.innerHTML="";const c=n(r);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),c},e};function at(t){if(Object(o["A"])(t)){const e=document.querySelector(t);return e}return t}},"7b0b":function(t,e,n){var r=n("1d80");t.exports=function(t){return Object(r(t))}},"7c73":function(t,e,n){var r,o=n("825a"),i=n("37e8"),c=n("7839"),a=n("d012"),s=n("1be4"),u=n("cc12"),l=n("f772"),f=">",p="<",d="prototype",h="script",v=l("IE_PROTO"),b=function(){},m=function(t){return p+h+f+t+p+"/"+h+f},g=function(t){t.write(m("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=u("iframe"),n="java"+h+":";return e.style.display="none",s.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(m("document.F=Object")),t.close(),t.F},w=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(e){}w=r?g(r):y();var t=c.length;while(t--)delete w[d][c[t]];return w()};a[v]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(b[d]=o(t),n=new b,b[d]=null,n[v]=t):n=w(),void 0===e?n:i(n,e)}},"7db0":function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").find,i=n("44d2"),c="find",a=!0;c in[]&&Array(1)[c]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(c)},"7dd0":function(t,e,n){"use strict";var r=n("23e7"),o=n("9ed3"),i=n("e163"),c=n("d2bb"),a=n("d44e"),s=n("9112"),u=n("6eeb"),l=n("b622"),f=n("c430"),p=n("3f8c"),d=n("ae93"),h=d.IteratorPrototype,v=d.BUGGY_SAFARI_ITERATORS,b=l("iterator"),m="keys",g="values",y="entries",w=function(){return this};t.exports=function(t,e,n,l,d,O,j){o(n,e,l);var x,_,S,k=function(t){if(t===d&&T)return T;if(!v&&t in C)return C[t];switch(t){case m:return function(){return new n(this,t)};case g:return function(){return new n(this,t)};case y:return function(){return new n(this,t)}}return function(){return new n(this)}},E=e+" Iterator",A=!1,C=t.prototype,L=C[b]||C["@@iterator"]||d&&C[d],T=!v&&L||k(d),P="Array"==e&&C.entries||L;if(P&&(x=i(P.call(new t)),h!==Object.prototype&&x.next&&(f||i(x)===h||(c?c(x,h):"function"!=typeof x[b]&&s(x,b,w)),a(x,E,!0,!0),f&&(p[E]=w))),d==g&&L&&L.name!==g&&(A=!0,T=function(){return L.call(this)}),f&&!j||C[b]===T||s(C,b,T),p[e]=T,d)if(_={values:k(g),keys:O?T:k(m),entries:k(y)},j)for(S in _)(v||A||!(S in C))&&u(C,S,_[S]);else r({target:e,proto:!0,forced:v||A},_);return _}},"7f9a":function(t,e,n){var r=n("da84"),o=n("8925"),i=r.WeakMap;t.exports="function"===typeof i&&/native code/.test(o(i))},"825a":function(t,e,n){var r=n("861d");t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},"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("c04e"),o=n("9bf2"),i=n("5c6c");t.exports=function(t,e,n){var c=r(e);c in t?o.f(t,c,i(0,n)):t[c]=n}},"841c":function(t,e,n){"use strict";var r=n("d784"),o=n("825a"),i=n("1d80"),c=n("129f"),a=n("14c3");r("search",1,(function(t,e,n){return[function(e){var n=i(this),r=void 0==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),s=String(this),u=i.lastIndex;c(u,0)||(i.lastIndex=0);var l=a(i,s);return c(i.lastIndex,u)||(i.lastIndex=u),null===l?-1:l.index}]}))},"861d":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},8925:function(t,e,n){var r=n("c6cd"),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},"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)}},"90e3":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},9112:function(t,e,n){var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("ad6d"),o=n("9f7f"),i=RegExp.prototype.exec,c=String.prototype.replace,a=i,s=function(){var t=/a/,e=/b*/g;return i.call(t,"a"),i.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),u=o.UNSUPPORTED_Y||o.BROKEN_CARET,l=void 0!==/()??/.exec("")[1],f=s||l||u;f&&(a=function(t){var e,n,o,a,f=this,p=u&&f.sticky,d=r.call(f),h=f.source,v=0,b=t;return p&&(d=d.replace("y",""),-1===d.indexOf("g")&&(d+="g"),b=String(t).slice(f.lastIndex),f.lastIndex>0&&(!f.multiline||f.multiline&&"\n"!==t[f.lastIndex-1])&&(h="(?: "+h+")",b=" "+b,v++),n=new RegExp("^(?:"+h+")",d)),l&&(n=new RegExp("^"+h+"$(?!\\s)",d)),s&&(e=f.lastIndex),o=i.call(p?n:f,b),p?o?(o.input=o.input.slice(v),o[0]=o[0].slice(v),o.index=f.lastIndex,f.lastIndex+=o[0].length):f.lastIndex=0:s&&o&&(f.lastIndex=f.global?o.index+o[0].length:e),l&&o&&o.length>1&&c.call(o[0],n,(function(){for(a=1;a0?arguments[0]:void 0,l=this,d=[];if(E(l,{type:S,entries:d,updateURL:function(){},updateSearchParams:B}),void 0!==u)if(b(u))if(t=w(u),"function"===typeof t){e=t.call(u),n=e.next;while(!(r=n.call(e)).done){if(o=y(v(r.value)),i=o.next,(c=i.call(o)).done||(a=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");d.push({key:c.value+"",value:a.value+""})}}else for(s in u)p(u,s)&&d.push({key:s,value:u[s]+""});else U(d,"string"===typeof u?"?"===u.charAt(0)?u.slice(1):u:u+"")},q=$.prototype;a(q,{append:function(t,e){V(arguments.length,2);var n=A(this);n.entries.push({key:t+"",value:e+""}),n.updateURL()},delete:function(t){V(arguments.length,1);var e=A(this),n=e.entries,r=t+"",o=0;while(ot.key){o.splice(e,0,t);break}e===n&&o.push(t)}r.updateURL()},forEach:function(t){var e,n=A(this).entries,r=d(t,arguments.length>1?arguments[1]:void 0,3),o=0;while(o1&&(e=arguments[1],b(e)&&(n=e.body,h(n)===S&&(r=e.headers?new x(e.headers):new x,r.has("content-type")||r.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=m(e,{body:g(0,String(n)),headers:g(0,r)}))),o.push(e)),j.apply(this,o)}}),t.exports={URLSearchParams:$,getState:A}},"9a1f":function(t,e,n){var r=n("825a"),o=n("35a1");t.exports=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return r(e.call(t))}},"9bdd":function(t,e,n){var r=n("825a"),o=n("2a62");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(c){throw o(t),c}}},"9bf2":function(t,e,n){var r=n("83ab"),o=n("0cfb"),i=n("825a"),c=n("c04e"),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(i(t),e=c(e,!0),i(n),o)try{return a(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9ed3":function(t,e,n){"use strict";var r=n("ae93").IteratorPrototype,o=n("7c73"),i=n("5c6c"),c=n("d44e"),a=n("3f8c"),s=function(){return this};t.exports=function(t,e,n){var u=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),c(t,u,!1,!0),a[u]=s,t}},"9f7f":function(t,e,n){"use strict";var r=n("d039");function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},"9ff4":function(t,e,n){"use strict";(function(t){function r(t,e){const n=Object.create(null),r=t.split(",");for(let o=0;o!!n[t.toLowerCase()]:t=>!!n[t]}n.d(e,"a",(function(){return x})),n.d(e,"b",(function(){return j})),n.d(e,"c",(function(){return S})),n.d(e,"d",(function(){return _})),n.d(e,"e",(function(){return X})),n.d(e,"f",(function(){return Q})),n.d(e,"g",(function(){return rt})),n.d(e,"h",(function(){return C})),n.d(e,"i",(function(){return et})),n.d(e,"j",(function(){return P})),n.d(e,"k",(function(){return Z})),n.d(e,"l",(function(){return nt})),n.d(e,"m",(function(){return R})),n.d(e,"n",(function(){return F})),n.d(e,"o",(function(){return i})),n.d(e,"p",(function(){return v})),n.d(e,"q",(function(){return W})),n.d(e,"r",(function(){return I})),n.d(e,"s",(function(){return A})),n.d(e,"t",(function(){return B})),n.d(e,"u",(function(){return E})),n.d(e,"v",(function(){return V})),n.d(e,"w",(function(){return G})),n.d(e,"x",(function(){return b})),n.d(e,"y",(function(){return M})),n.d(e,"z",(function(){return a})),n.d(e,"A",(function(){return z})),n.d(e,"B",(function(){return U})),n.d(e,"C",(function(){return g})),n.d(e,"D",(function(){return y})),n.d(e,"E",(function(){return r})),n.d(e,"F",(function(){return p})),n.d(e,"G",(function(){return s})),n.d(e,"H",(function(){return L})),n.d(e,"I",(function(){return w})),n.d(e,"J",(function(){return tt})),n.d(e,"K",(function(){return ot})),n.d(e,"L",(function(){return q}));const o="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",i=r(o);const c="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",a=r(c);function s(t){if(R(t)){const e={};for(let n=0;n{if(t){const n=t.split(l);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function p(t){let e="";if(z(t))e=t;else if(R(t))for(let n=0;ng(t,e))}const w=t=>null==t?"":B(t)?JSON.stringify(t,O,2):String(t),O=(t,e)=>I(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[e,n])=>(t[e+" =>"]=n,t),{})}:M(e)?{[`Set(${e.size})`]:[...e.values()]}:!B(e)||R(e)||H(e)?e:String(e),j={},x=[],_=()=>{},S=()=>!1,k=/^on[^a-z]/,E=t=>k.test(t),A=t=>t.startsWith("onUpdate:"),C=Object.assign,L=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},T=Object.prototype.hasOwnProperty,P=(t,e)=>T.call(t,e),R=Array.isArray,I=t=>"[object Map]"===$(t),M=t=>"[object Set]"===$(t),N=t=>t instanceof Date,F=t=>"function"===typeof t,z=t=>"string"===typeof t,U=t=>"symbol"===typeof t,B=t=>null!==t&&"object"===typeof t,V=t=>B(t)&&F(t.then)&&F(t.catch),D=Object.prototype.toString,$=t=>D.call(t),q=t=>$(t).slice(8,-1),H=t=>"[object Object]"===$(t),W=t=>z(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,G=r(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),K=t=>{const e=Object.create(null);return n=>{const r=e[n];return r||(e[n]=t(n))}},Y=/-(\w)/g,X=K(t=>t.replace(Y,(t,e)=>e?e.toUpperCase():"")),J=/\B([A-Z])/g,Z=K(t=>t.replace(J,"-$1").toLowerCase()),Q=K(t=>t.charAt(0).toUpperCase()+t.slice(1)),tt=K(t=>t?"on"+Q(t):""),et=(t,e)=>t!==e&&(t===t||e===e),nt=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},ot=t=>{const e=parseFloat(t);return isNaN(e)?t:e}}).call(this,n("c8ba"))},a1e9:function(t,e,n){"use strict";n.d(e,"a",(function(){return Pt})),n.d(e,"b",(function(){return At})),n.d(e,"c",(function(){return l})),n.d(e,"d",(function(){return mt})),n.d(e,"e",(function(){return vt})),n.d(e,"f",(function(){return bt})),n.d(e,"g",(function(){return wt})),n.d(e,"h",(function(){return m})),n.d(e,"i",(function(){return kt})),n.d(e,"j",(function(){return ft})),n.d(e,"k",(function(){return dt})),n.d(e,"l",(function(){return Ot})),n.d(e,"m",(function(){return y})),n.d(e,"n",(function(){return pt})),n.d(e,"o",(function(){return f})),n.d(e,"p",(function(){return gt})),n.d(e,"q",(function(){return Lt})),n.d(e,"r",(function(){return w})),n.d(e,"s",(function(){return O})),n.d(e,"t",(function(){return _t}));var r=n("9ff4");const o=new WeakMap,i=[];let c;const a=Symbol(""),s=Symbol("");function u(t){return t&&!0===t._isEffect}function l(t,e=r["b"]){u(t)&&(t=t.raw);const n=d(t,e);return e.lazy||n(),n}function f(t){t.active&&(h(t),t.options.onStop&&t.options.onStop(),t.active=!1)}let p=0;function d(t,e){const n=function(){if(!n.active)return e.scheduler?void 0:t();if(!i.includes(n)){h(n);try{return g(),i.push(n),c=n,t()}finally{i.pop(),y(),c=i[i.length-1]}}};return n.id=p++,n.allowRecurse=!!e.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=t,n.deps=[],n.options=e,n}function h(t){const{deps:e}=t;if(e.length){for(let n=0;n{t&&t.forEach(t=>{(t!==c||t.allowRecurse)&&p.add(t)})};if("clear"===e)f.forEach(d);else if("length"===n&&Object(r["m"])(t))f.forEach((t,e)=>{("length"===e||e>=i)&&d(t)});else switch(void 0!==n&&d(f.get(n)),e){case"add":Object(r["m"])(t)?Object(r["q"])(n)&&d(f.get("length")):(d(f.get(a)),Object(r["r"])(t)&&d(f.get(s)));break;case"delete":Object(r["m"])(t)||(d(f.get(a)),Object(r["r"])(t)&&d(f.get(s)));break;case"set":Object(r["r"])(t)&&d(f.get(a));break}const h=t=>{t.options.scheduler?t.options.scheduler(t):t()};p.forEach(h)}const j=Object(r["E"])("__proto__,__v_isRef,__isVue"),x=new Set(Object.getOwnPropertyNames(Symbol).map(t=>Symbol[t]).filter(r["B"])),_=C(),S=C(!1,!0),k=C(!0),E=C(!0,!0),A={};function C(t=!1,e=!1){return function(n,o,i){if("__v_isReactive"===o)return!t;if("__v_isReadonly"===o)return t;if("__v_raw"===o&&i===(t?st:at).get(n))return n;const c=Object(r["m"])(n);if(!t&&c&&Object(r["j"])(A,o))return Reflect.get(A,o,i);const a=Reflect.get(n,o,i);if(Object(r["B"])(o)?x.has(o):j(o))return a;if(t||w(n,"get",o),e)return a;if(wt(a)){const t=!c||!Object(r["q"])(o);return t?a.value:a}return Object(r["t"])(a)?t?dt(a):ft(a):a}}["includes","indexOf","lastIndexOf"].forEach(t=>{const e=Array.prototype[t];A[t]=function(...t){const n=gt(this);for(let e=0,o=this.length;e{const e=Array.prototype[t];A[t]=function(...t){m();const n=e.apply(this,t);return y(),n}});const L=P(),T=P(!0);function P(t=!1){return function(e,n,o,i){const c=e[n];if(!t&&(o=gt(o),!Object(r["m"])(e)&&wt(c)&&!wt(o)))return c.value=o,!0;const a=Object(r["m"])(e)&&Object(r["q"])(n)?Number(n)Object(r["t"])(t)?ft(t):t),B=t=>Object(r["t"])(t)?dt(t):t,V=t=>t,D=t=>Reflect.getPrototypeOf(t);function $(t,e,n=!1,r=!1){t=t["__v_raw"];const o=gt(t),i=gt(e);e!==i&&!n&&w(o,"get",e),!n&&w(o,"get",i);const{has:c}=D(o),a=n?B:r?V:U;return c.call(o,e)?a(t.get(e)):c.call(o,i)?a(t.get(i)):void 0}function q(t,e=!1){const n=this["__v_raw"],r=gt(n),o=gt(t);return t!==o&&!e&&w(r,"has",t),!e&&w(r,"has",o),t===o?n.has(t):n.has(t)||n.has(o)}function H(t,e=!1){return t=t["__v_raw"],!e&&w(gt(t),"iterate",a),Reflect.get(t,"size",t)}function W(t){t=gt(t);const e=gt(this),n=D(e),r=n.has.call(e,t);return r||(e.add(t),O(e,"add",t,t)),this}function G(t,e){e=gt(e);const n=gt(this),{has:o,get:i}=D(n);let c=o.call(n,t);c||(t=gt(t),c=o.call(n,t));const a=i.call(n,t);return n.set(t,e),c?Object(r["i"])(e,a)&&O(n,"set",t,e,a):O(n,"add",t,e),this}function K(t){const e=gt(this),{has:n,get:r}=D(e);let o=n.call(e,t);o||(t=gt(t),o=n.call(e,t));const i=r?r.call(e,t):void 0,c=e.delete(t);return o&&O(e,"delete",t,void 0,i),c}function Y(){const t=gt(this),e=0!==t.size,n=void 0,r=t.clear();return e&&O(t,"clear",void 0,void 0,n),r}function X(t,e){return function(n,r){const o=this,i=o["__v_raw"],c=gt(i),s=t?B:e?V:U;return!t&&w(c,"iterate",a),i.forEach((t,e)=>n.call(r,s(t),s(e),o))}}function J(t,e,n){return function(...o){const i=this["__v_raw"],c=gt(i),u=Object(r["r"])(c),l="entries"===t||t===Symbol.iterator&&u,f="keys"===t&&u,p=i[t](...o),d=e?B:n?V:U;return!e&&w(c,"iterate",f?s:a),{next(){const{value:t,done:e}=p.next();return e?{value:t,done:e}:{value:l?[d(t[0]),d(t[1])]:d(t),done:e}},[Symbol.iterator](){return this}}}}function Z(t){return function(...e){return"delete"!==t&&this}}const Q={get(t){return $(this,t)},get size(){return H(this)},has:q,add:W,set:G,delete:K,clear:Y,forEach:X(!1,!1)},tt={get(t){return $(this,t,!1,!0)},get size(){return H(this)},has:q,add:W,set:G,delete:K,clear:Y,forEach:X(!1,!0)},et={get(t){return $(this,t,!0)},get size(){return H(this,!0)},has(t){return q.call(this,t,!0)},add:Z("add"),set:Z("set"),delete:Z("delete"),clear:Z("clear"),forEach:X(!0,!1)},nt=["keys","values","entries",Symbol.iterator];function rt(t,e){const n=e?tt:t?et:Q;return(e,o,i)=>"__v_isReactive"===o?!t:"__v_isReadonly"===o?t:"__v_raw"===o?e:Reflect.get(Object(r["j"])(n,o)&&o in e?n:e,o,i)}nt.forEach(t=>{Q[t]=J(t,!1,!1),et[t]=J(t,!0,!1),tt[t]=J(t,!1,!0)});const ot={get:rt(!1,!1)},it={get:rt(!1,!0)},ct={get:rt(!0,!1)};const at=new WeakMap,st=new WeakMap;function ut(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function lt(t){return t["__v_skip"]||!Object.isExtensible(t)?0:ut(Object(r["L"])(t))}function ft(t){return t&&t["__v_isReadonly"]?t:ht(t,!1,N,ot)}function pt(t){return ht(t,!1,z,it)}function dt(t){return ht(t,!0,F,ct)}function ht(t,e,n,o){if(!Object(r["t"])(t))return t;if(t["__v_raw"]&&(!e||!t["__v_isReactive"]))return t;const i=e?st:at,c=i.get(t);if(c)return c;const a=lt(t);if(0===a)return t;const s=new Proxy(t,2===a?o:n);return i.set(t,s),s}function vt(t){return bt(t)?vt(t["__v_raw"]):!(!t||!t["__v_isReactive"])}function bt(t){return!(!t||!t["__v_isReadonly"])}function mt(t){return vt(t)||bt(t)}function gt(t){return t&>(t["__v_raw"])||t}const yt=t=>Object(r["t"])(t)?ft(t):t;function wt(t){return Boolean(t&&!0===t.__v_isRef)}function Ot(t){return xt(t)}class jt{constructor(t,e=!1){this._rawValue=t,this._shallow=e,this.__v_isRef=!0,this._value=e?t:yt(t)}get value(){return w(gt(this),"get","value"),this._value}set value(t){Object(r["i"])(gt(t),this._rawValue)&&(this._rawValue=t,this._value=this._shallow?t:yt(t),O(gt(this),"set","value",t))}}function xt(t,e=!1){return wt(t)?t:new jt(t,e)}function _t(t){return wt(t)?t.value:t}const St={get:(t,e,n)=>_t(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const o=t[e];return wt(o)&&!wt(n)?(o.value=n,!0):Reflect.set(t,e,n,r)}};function kt(t){return vt(t)?t:new Proxy(t,St)}class Et{constructor(t){this.__v_isRef=!0;const{get:e,set:n}=t(()=>w(this,"get","value"),()=>O(this,"set","value"));this._get=e,this._set=n}get value(){return this._get()}set value(t){this._set(t)}}function At(t){return new Et(t)}class Ct{constructor(t,e){this._object=t,this._key=e,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(t){this._object[this._key]=t}}function Lt(t,e){return wt(t[e])?t[e]:new Ct(t,e)}class Tt{constructor(t,e,n){this._setter=e,this._dirty=!0,this.__v_isRef=!0,this.effect=l(t,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,O(gt(this),"set","value"))}}),this["__v_isReadonly"]=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),w(gt(this),"get","value"),this._value}set value(t){this._setter(t)}}function Pt(t){let e,n;return Object(r["n"])(t)?(e=t,n=r["d"]):(e=t.get,n=t.set),new Tt(e,n,Object(r["n"])(t)||!t.set)}},a4b4:function(t,e,n){var r=n("342f");t.exports=/web0s(?!.*chrome)/i.test(r)},a4d3:function(t,e,n){"use strict";var r=n("23e7"),o=n("da84"),i=n("d066"),c=n("c430"),a=n("83ab"),s=n("4930"),u=n("fdbf"),l=n("d039"),f=n("5135"),p=n("e8b5"),d=n("861d"),h=n("825a"),v=n("7b0b"),b=n("fc6a"),m=n("c04e"),g=n("5c6c"),y=n("7c73"),w=n("df75"),O=n("241c"),j=n("057f"),x=n("7418"),_=n("06cf"),S=n("9bf2"),k=n("d1e7"),E=n("9112"),A=n("6eeb"),C=n("5692"),L=n("f772"),T=n("d012"),P=n("90e3"),R=n("b622"),I=n("e538"),M=n("746f"),N=n("d44e"),F=n("69f3"),z=n("b727").forEach,U=L("hidden"),B="Symbol",V="prototype",D=R("toPrimitive"),$=F.set,q=F.getterFor(B),H=Object[V],W=o.Symbol,G=i("JSON","stringify"),K=_.f,Y=S.f,X=j.f,J=k.f,Z=C("symbols"),Q=C("op-symbols"),tt=C("string-to-symbol-registry"),et=C("symbol-to-string-registry"),nt=C("wks"),rt=o.QObject,ot=!rt||!rt[V]||!rt[V].findChild,it=a&&l((function(){return 7!=y(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=K(H,e);r&&delete H[e],Y(t,e,n),r&&t!==H&&Y(H,e,r)}:Y,ct=function(t,e){var n=Z[t]=y(W[V]);return $(n,{type:B,tag:t,description:e}),a||(n.description=e),n},at=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof W},st=function(t,e,n){t===H&&st(Q,e,n),h(t);var r=m(e,!0);return h(n),f(Z,r)?(n.enumerable?(f(t,U)&&t[U][r]&&(t[U][r]=!1),n=y(n,{enumerable:g(0,!1)})):(f(t,U)||Y(t,U,g(1,{})),t[U][r]=!0),it(t,r,n)):Y(t,r,n)},ut=function(t,e){h(t);var n=b(e),r=w(n).concat(ht(n));return z(r,(function(e){a&&!ft.call(n,e)||st(t,e,n[e])})),t},lt=function(t,e){return void 0===e?y(t):ut(y(t),e)},ft=function(t){var e=m(t,!0),n=J.call(this,e);return!(this===H&&f(Z,e)&&!f(Q,e))&&(!(n||!f(this,e)||!f(Z,e)||f(this,U)&&this[U][e])||n)},pt=function(t,e){var n=b(t),r=m(e,!0);if(n!==H||!f(Z,r)||f(Q,r)){var o=K(n,r);return!o||!f(Z,r)||f(n,U)&&n[U][r]||(o.enumerable=!0),o}},dt=function(t){var e=X(b(t)),n=[];return z(e,(function(t){f(Z,t)||f(T,t)||n.push(t)})),n},ht=function(t){var e=t===H,n=X(e?Q:b(t)),r=[];return z(n,(function(t){!f(Z,t)||e&&!f(H,t)||r.push(Z[t])})),r};if(s||(W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=P(t),n=function(t){this===H&&n.call(Q,t),f(this,U)&&f(this[U],e)&&(this[U][e]=!1),it(this,e,g(1,t))};return a&&ot&&it(H,e,{configurable:!0,set:n}),ct(e,t)},A(W[V],"toString",(function(){return q(this).tag})),A(W,"withoutSetter",(function(t){return ct(P(t),t)})),k.f=ft,S.f=st,_.f=pt,O.f=j.f=dt,x.f=ht,I.f=function(t){return ct(R(t),t)},a&&(Y(W[V],"description",{configurable:!0,get:function(){return q(this).description}}),c||A(H,"propertyIsEnumerable",ft,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:W}),z(w(nt),(function(t){M(t)})),r({target:B,stat:!0,forced:!s},{for:function(t){var e=String(t);if(f(tt,e))return tt[e];var n=W(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!at(t))throw TypeError(t+" is not a symbol");if(f(et,t))return et[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!a},{create:lt,defineProperty:st,defineProperties:ut,getOwnPropertyDescriptor:pt}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:dt,getOwnPropertySymbols:ht}),r({target:"Object",stat:!0,forced:l((function(){x.f(1)}))},{getOwnPropertySymbols:function(t){return x.f(v(t))}}),G){var vt=!s||l((function(){var t=W();return"[null]"!=G([t])||"{}"!=G({a:t})||"{}"!=G(Object(t))}));r({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var r,o=[t],i=1;while(arguments.length>i)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!at(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!at(e))return e}),o[1]=e,G.apply(null,o)}})}W[V][D]||E(W[V],D,W[V].valueOf),N(W,B),T[U]=!0},a691:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},a79d:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("fea9"),c=n("d039"),a=n("d066"),s=n("4840"),u=n("cdf9"),l=n("6eeb"),f=!!i&&c((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}));r({target:"Promise",proto:!0,real:!0,forced:f},{finally:function(t){var e=s(this,a("Promise")),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),o||"function"!=typeof i||i.prototype["finally"]||l(i.prototype,"finally",a("Promise").prototype["finally"])},a9e3:function(t,e,n){"use strict";var r=n("83ab"),o=n("da84"),i=n("94ca"),c=n("6eeb"),a=n("5135"),s=n("c6b6"),u=n("7156"),l=n("c04e"),f=n("d039"),p=n("7c73"),d=n("241c").f,h=n("06cf").f,v=n("9bf2").f,b=n("58a8").trim,m="Number",g=o[m],y=g.prototype,w=s(p(y))==m,O=function(t){var e,n,r,o,i,c,a,s,u=l(t,!1);if("string"==typeof u&&u.length>2)if(u=b(u),e=u.charCodeAt(0),43===e||45===e){if(n=u.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=u.slice(2),c=i.length,a=0;ao)return NaN;return parseInt(i,r)}return+u};if(i(m,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var j,x=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof x&&(w?f((function(){y.valueOf.call(n)})):s(n)!=m)?u(new g(O(e)),n,x):O(e)},_=r?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),S=0;_.length>S;S++)a(g,j=_[S])&&!a(x,j)&&v(x,j,h(g,j));x.prototype=y,y.constructor=x,c(o,m,x)}},ab13:function(t,e,n){var r=n("b622"),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(r){}}return!1}},ac1f:function(t,e,n){"use strict";var r=n("23e7"),o=n("9263");r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},ad3d:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return O}));var r=n("7a23"),o=n("ecee"),i="undefined"!==typeof window?window:"undefined"!==typeof t?t:"undefined"!==typeof self?self:{};function c(t,e){return e={exports:{}},t(e,e.exports),e.exports}var a=c((function(t){(function(e){var n=function(t,e,r){if(!u(e)||f(e)||p(e)||d(e)||s(e))return e;var o,i=0,c=0;if(l(e))for(o=[],c=e.length;i=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},p=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof t)return t;var o=(t.children||[]).map((function(t){return v(t)})).map((function(t){return"string"===typeof t?t:t()})),i=Object.keys(t.attributes||{}).reduce((function(e,n){var r=t.attributes[n];switch(n){case"class":e.class=h(r);break;case"style":e.style=d(r);break;default:e.attrs[n]=r}return e}),{attrs:{},class:{},style:{}}),c=(n.class,n.style),a=void 0===c?{}:c,s=f(n,["class","style"]);return function(){return Object(r["l"])(t.tag,l({},e,{class:i.class,style:l({},i.style,a)},i.attrs,s),o)}}var b=!1;try{b=!0}catch(j){}function m(){var t;!b&&console&&"function"===typeof console.error&&(t=console).error.apply(t,arguments)}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?u({},t,e):{}}function y(t){var e,n=(e={"fa-spin":t.spin,"fa-pulse":t.pulse,"fa-fw":t.fixedWidth,"fa-border":t.border,"fa-li":t.listItem,"fa-inverse":t.inverse,"fa-flip-horizontal":"horizontal"===t.flip||"both"===t.flip,"fa-flip-vertical":"vertical"===t.flip||"both"===t.flip},u(e,"fa-"+t.size,null!==t.size),u(e,"fa-rotate-"+t.rotation,null!==t.rotation),u(e,"fa-pull-"+t.pull,null!==t.pull),u(e,"fa-swap-opacity",t.swapOpacity),e);return Object.keys(n).map((function(t){return n[t]?t:null})).filter((function(t){return t}))}function w(t){return null===t?null:"object"===("undefined"===typeof t?"undefined":s(t))&&t.prefix&&t.iconName?t:Array.isArray(t)&&2===t.length?{prefix:t[0],iconName:t[1]}:"string"===typeof t?{prefix:"fas",iconName:t}:void 0}var O=Object(r["k"])({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(t){return["horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(Number.parseInt(t,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(t){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1}},setup:function(t,e){var n=e.attrs,r=t.symbol,i=t.title,c=w(t.icon),a=g("classes",y(t)),s=g("transform","string"===typeof t.transform?o["d"].transform(t.transform):t.transform),u=g("mask",w(t.mask)),f=Object(o["b"])(c,l({},a,s,u,{symbol:r,title:i}));if(!f)return m("Could not find one or more icon(s)",c,u);var p=f.abstract[0];return v(p,{},n)}});Object(r["k"])({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(t,e){var n=e.slots,i=o["a"].familyPrefix,c=[i+"-layers"].concat(p(t.fixedWidth?[i+"-fw"]:[]));return function(){return Object(r["l"])("div",{class:c},n.default?n.default():[])}}}),Object(r["k"])({name:"FontAwesomeLayersText",props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(t){return["bottom-left","bottom-right","top-left","top-right"].indexOf(t)>-1}}},setup:function(t,e){var n=e.attrs,r=o["a"].familyPrefix,i=g("classes",[].concat(p(t.counter?[r+"-layers-counter"]:[]),p(t.position?[r+"-layers-"+t.position]:[]))),c=g("transform","string"===typeof t.transform?o["d"].transform(t.transform):t.transform),a=Object(o["e"])(t.value.toString(),l({},c,i)),s=a.abstract;return t.counter&&(s[0].attributes.class=s[0].attributes.class.replace("fa-layers-text","")),v(s[0],{},n)}})}).call(this,n("c8ba"))},ad6d:function(t,e,n){"use strict";var r=n("825a");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},ae93:function(t,e,n){"use strict";var r,o,i,c=n("d039"),a=n("e163"),s=n("9112"),u=n("5135"),l=n("b622"),f=n("c430"),p=l("iterator"),d=!1,h=function(){return this};[].keys&&(i=[].keys(),"next"in i?(o=a(a(i)),o!==Object.prototype&&(r=o)):d=!0);var v=void 0==r||c((function(){var t={};return r[p].call(t)!==t}));v&&(r={}),f&&!v||u(r,p)||s(r,p,h),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},b041:function(t,e,n){"use strict";var r=n("00ee"),o=n("f5df");t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},b0c0:function(t,e,n){var r=n("83ab"),o=n("9bf2").f,i=Function.prototype,c=i.toString,a=/^\s*function ([^ (]*)/,s="name";r&&!(s in i)&&o(i,s,{configurable:!0,get:function(){try{return c.call(this).match(a)[1]}catch(t){return""}}})},b575:function(t,e,n){var r,o,i,c,a,s,u,l,f=n("da84"),p=n("06cf").f,d=n("2cf4").set,h=n("1cdc"),v=n("a4b4"),b=n("605d"),m=f.MutationObserver||f.WebKitMutationObserver,g=f.document,y=f.process,w=f.Promise,O=p(f,"queueMicrotask"),j=O&&O.value;j||(r=function(){var t,e;b&&(t=y.domain)&&t.exit();while(o){e=o.fn,o=o.next;try{e()}catch(n){throw o?c():i=void 0,n}}i=void 0,t&&t.enter()},h||b||v||!m||!g?w&&w.resolve?(u=w.resolve(void 0),l=u.then,c=function(){l.call(u,r)}):c=b?function(){y.nextTick(r)}:function(){d.call(f,r)}:(a=!0,s=g.createTextNode(""),new m(r).observe(s,{characterData:!0}),c=function(){s.data=a=!a})),t.exports=j||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,c()),i=e}},b622:function(t,e,n){var r=n("da84"),o=n("5692"),i=n("5135"),c=n("90e3"),a=n("4930"),s=n("fdbf"),u=o("wks"),l=r.Symbol,f=s?l:l&&l.withoutSetter||c;t.exports=function(t){return i(u,t)&&(a||"string"==typeof u[t])||(a&&i(l,t)?u[t]=l[t]:u[t]=f("Symbol."+t)),u[t]}},b727:function(t,e,n){var r=n("0366"),o=n("44ad"),i=n("7b0b"),c=n("50c4"),a=n("65f0"),s=[].push,u=function(t){var e=1==t,n=2==t,u=3==t,l=4==t,f=6==t,p=7==t,d=5==t||f;return function(h,v,b,m){for(var g,y,w=i(h),O=o(w),j=r(v,b,3),x=c(O.length),_=0,S=m||a,k=e?S(h,x):n||p?S(h,0):void 0;x>_;_++)if((d||_ in O)&&(g=O[_],y=j(g,_,w),t))if(e)k[_]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return _;case 2:s.call(k,g)}else switch(t){case 4:return!1;case 7:s.call(k,g)}return f?-1:u||l?l:k}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},c04e:function(t,e,n){var r=n("861d");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},c074:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return c})),n.d(e,"e",(function(){return a})),n.d(e,"f",(function(){return s})),n.d(e,"g",(function(){return u})); -/*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -var r={prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},o={prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},i={prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},c={prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},a={prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"]},s={prefix:"fas",iconName:"sign-in-alt",icon:[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]},u={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"]}},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var r=n("da84"),o=n("ce4e"),i="__core-js_shared__",c=r[i]||o(i,{});t.exports=c},c740:function(t,e,n){"use strict";var r=n("23e7"),o=n("b727").findIndex,i=n("44d2"),c="findIndex",a=!0;c in[]&&Array(1)[c]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(c)},c8ba: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},ca84:function(t,e,n){var r=n("5135"),o=n("fc6a"),i=n("4d64").indexOf,c=n("d012");t.exports=function(t,e){var n,a=o(t),s=0,u=[];for(n in a)!r(c,n)&&r(a,n)&&u.push(n);while(e.length>s)r(a,n=e[s++])&&(~i(u,n)||u.push(n));return u}},caad:function(t,e,n){"use strict";var r=n("23e7"),o=n("4d64").includes,i=n("44d2");r({target:"Array",proto:!0},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},cc12:function(t,e,n){var r=n("da84"),o=n("861d"),i=r.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},cca6:function(t,e,n){var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},cdf9:function(t,e,n){var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),c=n.resolve;return c(e),n.promise}},ce4e:function(t,e,n){var r=n("da84"),o=n("9112");t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},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("428f"),o=n("da84"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d2bb:function(t,e,n){var r=n("825a"),o=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},d3b7:function(t,e,n){var r=n("00ee"),o=n("6eeb"),i=n("b041");r||o(Object.prototype,"toString",i,{unsafe:!0})},d44e:function(t,e,n){var r=n("9bf2").f,o=n("5135"),i=n("b622"),c=i("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,c)&&r(t,c,{configurable:!0,value:e})}},d784:function(t,e,n){"use strict";n("ac1f");var r=n("6eeb"),o=n("d039"),i=n("b622"),c=n("9263"),a=n("9112"),s=i("species"),u=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),l=function(){return"$0"==="a".replace(/./,"$0")}(),f=i("replace"),p=function(){return!!/./[f]&&""===/./[f]("a","$0")}(),d=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,f){var h=i(t),v=!o((function(){var e={};return e[h]=function(){return 7},7!=""[t](e)})),b=v&&!o((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[s]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e}));if(!v||!b||"replace"===t&&(!u||!l||p)||"split"===t&&!d){var m=/./[h],g=n(h,""[t],(function(t,e,n,r,o){return e.exec===c?v&&!o?{done:!0,value:m.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),y=g[0],w=g[1];r(String.prototype,t,y),r(RegExp.prototype,h,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}f&&a(RegExp.prototype[h],"sham",!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("c8ba"))},ddb0:function(t,e,n){var r=n("da84"),o=n("fdbc"),i=n("e260"),c=n("9112"),a=n("b622"),s=a("iterator"),u=a("toStringTag"),l=i.values;for(var f in o){var p=r[f],d=p&&p.prototype;if(d){if(d[s]!==l)try{c(d,s,l)}catch(v){d[s]=l}if(d[u]||c(d,u,f),o[f])for(var h in i)if(d[h]!==i[h])try{c(d,h,i[h])}catch(v){d[h]=i[h]}}}},df75:function(t,e,n){var r=n("ca84"),o=n("7839");t.exports=Object.keys||function(t){return r(t,o)}},e01a:function(t,e,n){"use strict";var r=n("23e7"),o=n("83ab"),i=n("da84"),c=n("5135"),a=n("861d"),s=n("9bf2").f,u=n("e893"),l=i.Symbol;if(o&&"function"==typeof l&&(!("description"in l.prototype)||void 0!==l().description)){var f={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new l(t):void 0===t?l():l(t);return""===t&&(f[e]=!0),e};u(p,l);var d=p.prototype=l.prototype;d.constructor=p;var h=d.toString,v="Symbol(test)"==String(l("test")),b=/^Symbol\((.*)\)[^)]+$/;s(d,"description",{configurable:!0,get:function(){var t=a(this)?this.valueOf():this,e=h.call(t);if(c(f,t))return"";var n=v?e.slice(7,-1):e.replace(b,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},e163:function(t,e,n){var r=n("5135"),o=n("7b0b"),i=n("f772"),c=n("e177"),a=i("IE_PROTO"),s=Object.prototype;t.exports=c?Object.getPrototypeOf:function(t){return t=o(t),r(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s: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}))},e260:function(t,e,n){"use strict";var r=n("fc6a"),o=n("44d2"),i=n("3f8c"),c=n("69f3"),a=n("7dd0"),s="Array Iterator",u=c.set,l=c.getterFor(s);t.exports=a(Array,"Array",(function(t,e){u(this,{type:s,target:r(t),index:0,kind:e})}),(function(){var t=l(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},e2cc:function(t,e,n){var r=n("6eeb");t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},e538:function(t,e,n){var r=n("b622");e.f=r},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){"use strict";var r,o,i,c,a=n("23e7"),s=n("c430"),u=n("da84"),l=n("d066"),f=n("fea9"),p=n("6eeb"),d=n("e2cc"),h=n("d44e"),v=n("2626"),b=n("861d"),m=n("1c0b"),g=n("19aa"),y=n("8925"),w=n("2266"),O=n("1c7e"),j=n("4840"),x=n("2cf4").set,_=n("b575"),S=n("cdf9"),k=n("44de"),E=n("f069"),A=n("e667"),C=n("69f3"),L=n("94ca"),T=n("b622"),P=n("605d"),R=n("2d00"),I=T("species"),M="Promise",N=C.get,F=C.set,z=C.getterFor(M),U=f,B=u.TypeError,V=u.document,D=u.process,$=l("fetch"),q=E.f,H=q,W=!!(V&&V.createEvent&&u.dispatchEvent),G="function"==typeof PromiseRejectionEvent,K="unhandledrejection",Y="rejectionhandled",X=0,J=1,Z=2,Q=1,tt=2,et=L(M,(function(){var t=y(U)!==String(U);if(!t){if(66===R)return!0;if(!P&&!G)return!0}if(s&&!U.prototype["finally"])return!0;if(R>=51&&/native code/.test(U))return!1;var e=U.resolve(1),n=function(t){t((function(){}),(function(){}))},r=e.constructor={};return r[I]=n,!(e.then((function(){}))instanceof n)})),nt=et||!O((function(t){U.all(t)["catch"]((function(){}))})),rt=function(t){var e;return!(!b(t)||"function"!=typeof(e=t.then))&&e},ot=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;_((function(){var r=t.value,o=t.state==J,i=0;while(n.length>i){var c,a,s,u=n[i++],l=o?u.ok:u.fail,f=u.resolve,p=u.reject,d=u.domain;try{l?(o||(t.rejection===tt&&st(t),t.rejection=Q),!0===l?c=r:(d&&d.enter(),c=l(r),d&&(d.exit(),s=!0)),c===u.promise?p(B("Promise-chain cycle")):(a=rt(c))?a.call(c,f,p):f(c)):p(r)}catch(h){d&&!s&&d.exit(),p(h)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&ct(t)}))}},it=function(t,e,n){var r,o;W?(r=V.createEvent("Event"),r.promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!G&&(o=u["on"+t])?o(r):t===K&&k("Unhandled promise rejection",n)},ct=function(t){x.call(u,(function(){var e,n=t.facade,r=t.value,o=at(t);if(o&&(e=A((function(){P?D.emit("unhandledRejection",r,n):it(K,n,r)})),t.rejection=P||at(t)?tt:Q,e.error))throw e.value}))},at=function(t){return t.rejection!==Q&&!t.parent},st=function(t){x.call(u,(function(){var e=t.facade;P?D.emit("rejectionHandled",e):it(Y,e,t.value)}))},ut=function(t,e,n){return function(r){t(e,r,n)}},lt=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=Z,ot(t,!0))},ft=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=rt(e);r?_((function(){var n={done:!1};try{r.call(e,ut(ft,n,t),ut(lt,n,t))}catch(o){lt(n,o,t)}})):(t.value=e,t.state=J,ot(t,!1))}catch(o){lt({done:!1},o,t)}}};et&&(U=function(t){g(this,U,M),m(t),r.call(this);var e=N(this);try{t(ut(ft,e),ut(lt,e))}catch(n){lt(e,n)}},r=function(t){F(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:X,value:void 0})},r.prototype=d(U.prototype,{then:function(t,e){var n=z(this),r=q(j(this,U));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=P?D.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=X&&ot(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=N(t);this.promise=t,this.resolve=ut(ft,e),this.reject=ut(lt,e)},E.f=q=function(t){return t===U||t===i?new o(t):H(t)},s||"function"!=typeof f||(c=f.prototype.then,p(f.prototype,"then",(function(t,e){var n=this;return new U((function(t,e){c.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof $&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return S(U,$.apply(u,arguments))}}))),a({global:!0,wrap:!0,forced:et},{Promise:U}),h(U,M,!1,!0),v(M),i=l(M),a({target:M,stat:!0,forced:et},{reject:function(t){var e=q(this);return e.reject.call(void 0,t),e.promise}}),a({target:M,stat:!0,forced:s||et},{resolve:function(t){return S(s&&this===i?U:this,t)}}),a({target:M,stat:!0,forced:nt},{all:function(t){var e=this,n=q(e),r=n.resolve,o=n.reject,i=A((function(){var n=m(e.resolve),i=[],c=0,a=1;w(t,(function(t){var s=c++,u=!1;i.push(void 0),a++,n.call(e,t).then((function(t){u||(u=!0,i[s]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=q(e),r=n.reject,o=A((function(){var o=m(e.resolve);w(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},e893:function(t,e,n){var r=n("5135"),o=n("56ef"),i=n("06cf"),c=n("9bf2");t.exports=function(t,e){for(var n=o(e),a=c.f,s=i.f,u=0;u-1;o--){var i=n[o],c=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(c)>-1&&(r=i)}return S.head.insertBefore(e,r),t}}var wt="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Ot(){var t=12,e="";while(t-- >0)e+=wt[62*Math.random()|0];return e}function jt(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function xt(t){return Object.keys(t||{}).reduce((function(e,n){return e+"".concat(n,'="').concat(jt(t[n]),'" ')}),"").trim()}function _t(t){return Object.keys(t||{}).reduce((function(e,n){return e+"".concat(n,": ").concat(t[n],";")}),"")}function St(t){return t.size!==gt.size||t.x!==gt.x||t.y!==gt.y||t.rotate!==gt.rotate||t.flipX||t.flipY}function kt(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,o={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),c="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),a="rotate(".concat(e.rotate," 0 0)"),s={transform:"".concat(i," ").concat(c," ").concat(a)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:o,inner:s,path:u}}function Et(t){var e=t.transform,n=t.width,r=void 0===n?L:n,o=t.height,i=void 0===o?L:o,c=t.startCentered,a=void 0!==c&&c,s="";return s+=a&&A?"translate(".concat(e.x/mt-r/2,"em, ").concat(e.y/mt-i/2,"em) "):a?"translate(calc(-50% + ".concat(e.x/mt,"em), calc(-50% + ").concat(e.y/mt,"em)) "):"translate(".concat(e.x/mt,"em, ").concat(e.y/mt,"em) "),s+="scale(".concat(e.size/mt*(e.flipX?-1:1),", ").concat(e.size/mt*(e.flipY?-1:1),") "),s+="rotate(".concat(e.rotate,"deg) "),s}var At={x:0,y:0,width:"100%",height:"100%"};function Ct(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function Lt(t){return"g"===t.tag?t.children:[t]}function Tt(t){var e=t.children,n=t.attributes,r=t.main,o=t.mask,i=t.maskId,c=t.transform,a=r.width,u=r.icon,l=o.width,f=o.icon,p=kt({transform:c,containerWidth:l,iconWidth:a}),d={tag:"rect",attributes:s({},At,{fill:"white"})},h=u.children?{children:u.children.map(Ct)}:{},v={tag:"g",attributes:s({},p.inner),children:[Ct(s({tag:u.tag,attributes:s({},u.attributes,p.path)},h))]},b={tag:"g",attributes:s({},p.outer),children:[v]},m="mask-".concat(i||Ot()),g="clip-".concat(i||Ot()),y={tag:"mask",attributes:s({},At,{id:m,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[d,b]},w={tag:"defs",children:[{tag:"clipPath",attributes:{id:g},children:Lt(f)},y]};return e.push(w,{tag:"rect",attributes:s({fill:"currentColor","clip-path":"url(#".concat(g,")"),mask:"url(#".concat(m,")")},At)}),{children:e,attributes:n}}function Pt(t){var e=t.children,n=t.attributes,r=t.main,o=t.transform,i=t.styles,c=_t(i);if(c.length>0&&(n["style"]=c),St(o)){var a=kt({transform:o,containerWidth:r.width,iconWidth:r.width});e.push({tag:"g",attributes:s({},a.outer),children:[{tag:"g",attributes:s({},a.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:s({},r.icon.attributes,a.path)}]}]})}else e.push(r.icon);return{children:e,attributes:n}}function Rt(t){var e=t.children,n=t.main,r=t.mask,o=t.attributes,i=t.styles,c=t.transform;if(St(c)&&n.found&&!r.found){var a=n.width,u=n.height,l={x:a/u/2,y:.5};o["style"]=_t(s({},i,{"transform-origin":"".concat(l.x+c.x/16,"em ").concat(l.y+c.y/16,"em")}))}return[{tag:"svg",attributes:o,children:e}]}function It(t){var e=t.prefix,n=t.iconName,r=t.children,o=t.attributes,i=t.symbol,c=!0===i?"".concat(e,"-").concat($.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:s({},o,{id:c}),children:r}]}]}function Mt(t){var e=t.icons,n=e.main,r=e.mask,o=t.prefix,i=t.iconName,c=t.transform,a=t.symbol,u=t.title,l=t.maskId,f=t.titleId,p=t.extra,d=t.watchable,h=void 0!==d&&d,v=r.found?r:n,b=v.width,m=v.height,g="fak"===o,y=g?"":"fa-w-".concat(Math.ceil(b/m*16)),w=[$.replacementClass,i?"".concat($.familyPrefix,"-").concat(i):"",y].filter((function(t){return-1===p.classes.indexOf(t)})).filter((function(t){return""!==t||!!t})).concat(p.classes).join(" "),O={children:[],attributes:s({},p.attributes,{"data-prefix":o,"data-icon":i,class:w,role:p.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(b," ").concat(m)})},j=g&&!~p.classes.indexOf("fa-fw")?{width:"".concat(b/m*16*.0625,"em")}:{};h&&(O.attributes[R]=""),u&&O.children.push({tag:"title",attributes:{id:O.attributes["aria-labelledby"]||"title-".concat(f||Ot())},children:[u]});var x=s({},O,{prefix:o,iconName:i,main:n,mask:r,maskId:l,transform:c,symbol:a,styles:s({},j,p.styles)}),_=r.found&&n.found?Tt(x):Pt(x),S=_.children,k=_.attributes;return x.children=S,x.attributes=k,a?It(x):Rt(x)}function Nt(t){var e=t.content,n=t.width,r=t.height,o=t.transform,i=t.title,c=t.extra,a=t.watchable,u=void 0!==a&&a,l=s({},c.attributes,i?{title:i}:{},{class:c.classes.join(" ")});u&&(l[R]="");var f=s({},c.styles);St(o)&&(f["transform"]=Et({transform:o,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f["transform"]);var p=_t(f);p.length>0&&(l["style"]=p);var d=[];return d.push({tag:"span",attributes:l,children:[e]}),i&&d.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),d}var Ft=function(){},zt=($.measurePerformance&&k&&k.mark&&k.measure,function(t,e){return function(n,r,o,i){return t.call(e,n,r,o,i)}}),Ut=function(t,e,n,r){var o,i,c,a=Object.keys(t),s=a.length,u=void 0!==r?zt(e,r):e;for(void 0===n?(o=1,c=t[a[0]]):(o=0,c=n);o2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,o=void 0!==r&&r,i=Object.keys(e).reduce((function(t,n){var r=e[n],o=!!r.icon;return o?t[r.iconName]=r.icon:t[n]=r,t}),{});"function"!==typeof H.hooks.addPack||o?H.styles[t]=s({},H.styles[t]||{},i):H.hooks.addPack(t,i),"fas"===t&&Bt("fa",e)}var Vt=H.styles,Dt=H.shims,$t=function(){var t=function(t){return Ut(Vt,(function(e,n,r){return e[r]=Ut(n,t,{}),e}),{})};t((function(t,e,n){return e[3]&&(t[e[3]]=n),t})),t((function(t,e,n){var r=e[2];return t[n]=n,r.forEach((function(e){t[e]=n})),t}));var e="far"in Vt;Ut(Dt,(function(t,n){var r=n[0],o=n[1],i=n[2];return"far"!==o||e||(o="fas"),t[r]={prefix:o,iconName:i},t}),{})};$t();H.styles;function qt(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}function Ht(t){var e=t.tag,n=t.attributes,r=void 0===n?{}:n,o=t.children,i=void 0===o?[]:o;return"string"===typeof t?jt(t):"<".concat(e," ").concat(xt(r),">").concat(i.map(Ht).join(""),"")}var Wt=function(t){var e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t?t.toLowerCase().split(" ").reduce((function(t,e){var n=e.toLowerCase().split("-"),r=n[0],o=n.slice(1).join("-");if(r&&"h"===o)return t.flipX=!0,t;if(r&&"v"===o)return t.flipY=!0,t;if(o=parseFloat(o),isNaN(o))return t;switch(r){case"grow":t.size=t.size+o;break;case"shrink":t.size=t.size-o;break;case"left":t.x=t.x-o;break;case"right":t.x=t.x+o;break;case"up":t.y=t.y-o;break;case"down":t.y=t.y+o;break;case"rotate":t.rotate=t.rotate+o;break}return t}),e):e};function Gt(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}Gt.prototype=Object.create(Error.prototype),Gt.prototype.constructor=Gt;var Kt={fill:"currentColor"},Yt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Xt=(s({},Kt,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),s({},Yt,{attributeName:"opacity"}));s({},Kt,{cx:"256",cy:"364",r:"28"}),s({},Yt,{attributeName:"r",values:"28;14;28;28;14;28;"}),s({},Xt,{values:"1;0;1;1;0;1;"}),s({},Kt,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),s({},Xt,{values:"1;0;0;0;0;1;"}),s({},Kt,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),s({},Xt,{values:"0;0;1;1;0;0;"}),H.styles;function Jt(t){var e=t[0],n=t[1],r=t.slice(4),o=u(r,1),i=o[0],c=null;return c=Array.isArray(i)?{tag:"g",attributes:{class:"".concat($.familyPrefix,"-").concat(N.GROUP)},children:[{tag:"path",attributes:{class:"".concat($.familyPrefix,"-").concat(N.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat($.familyPrefix,"-").concat(N.PRIMARY),fill:"currentColor",d:i[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:i}},{found:!0,width:e,height:n,icon:c}}H.styles;var Zt='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';function Qt(){var t=T,e=P,n=$.familyPrefix,r=$.replacementClass,o=Zt;if(n!==t||r!==e){var i=new RegExp("\\.".concat(t,"\\-"),"g"),c=new RegExp("\\--".concat(t,"\\-"),"g"),a=new RegExp("\\.".concat(e),"g");o=o.replace(i,".".concat(n,"-")).replace(c,"--".concat(n,"-")).replace(a,".".concat(r))}return o}var te=function(){function t(){o(this,t),this.definitions={}}return c(t,[{key:"add",value:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=(e||{}).icon?e:re(e||{}),o=n.mask;return o&&(o=(o||{}).icon?o:re(o||{})),t(r,s({},n,{mask:o}))}}var ie=new te,ce=!1,ae={transform:function(t){return Wt(t)}},se=oe((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,r=void 0===n?gt:n,o=e.symbol,i=void 0!==o&&o,c=e.mask,a=void 0===c?null:c,u=e.maskId,l=void 0===u?null:u,f=e.title,p=void 0===f?null:f,d=e.titleId,h=void 0===d?null:d,v=e.classes,b=void 0===v?[]:v,m=e.attributes,g=void 0===m?{}:m,y=e.styles,w=void 0===y?{}:y;if(t){var O=t.prefix,j=t.iconName,x=t.icon;return ne(s({type:"icon"},t),(function(){return ee(),$.autoA11y&&(p?g["aria-labelledby"]="".concat($.replacementClass,"-title-").concat(h||Ot()):(g["aria-hidden"]="true",g["focusable"]="false")),Mt({icons:{main:Jt(x),mask:a?Jt(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:O,iconName:j,transform:s({},gt,r),symbol:i,title:p,maskId:l,titleId:h,extra:{attributes:g,styles:w,classes:b}})}))}})),ue=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,r=void 0===n?gt:n,o=e.title,i=void 0===o?null:o,c=e.classes,a=void 0===c?[]:c,u=e.attributes,f=void 0===u?{}:u,p=e.styles,d=void 0===p?{}:p;return ne({type:"text",content:t},(function(){return ee(),Nt({content:t,transform:s({},gt,r),title:i,extra:{attributes:f,styles:d,classes:["".concat($.familyPrefix,"-layers-text")].concat(l(a))}})}))}}).call(this,n("c8ba"))},f069:function(t,e,n){"use strict";var r=n("1c0b"),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},f2d1:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})); -/*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -var r={prefix:"fab",iconName:"github",icon:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"]},o={prefix:"fab",iconName:"gitter",icon:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"]}},f5df:function(t,e,n){var r=n("00ee"),o=n("c6b6"),i=n("b622"),c=i("toStringTag"),a="Arguments"==o(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),c))?n:a?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},f772:function(t,e,n){var r=n("5692"),o=n("90e3"),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},f947:function(t,e,n){"use strict";n.d(e,"a",(function(){return _})),n.d(e,"b",(function(){return g}));var r=n("a1e9"),o=n("5c40");function i(t){return Object(r["g"])(t)?t:Object(r["l"])(t)}Array.isArray;const c=t=>"boolean"===typeof t,a=t=>"number"===typeof t,s=t=>null!==t&&"object"===typeof t,u=t=>s(t)&&!!t.tagName;const l=()=>{},f={passive:!0};function p(t){return new Promise(e=>{setTimeout(e,t)})}const d="undefined"!=typeof window;function h(t,e,n,r){let c=l;if(t){const a=i(t),s=t=>t.removeEventListener(e,n),u=t=>t.addEventListener(e,n,r),l=Object(o["N"])(a,(t,e,n)=>{t&&(u(t),n(()=>s(t)))},{immediate:!0});c=()=>{s(a.value),l()}}return c}function v(t,e,n){return b(t,e,n)}function b(t,e=50,n={isImmediate:!1}){let r;return function(...o){const i=this,c=function(){r=void 0,n.isImmediate||t.apply(i,o)},a=n.isImmediate&&void 0===r;void 0!==r&&clearTimeout(r),r=setTimeout(c,e),a&&t.apply(i,o)}}const m=["scrollBy","scrollTo","scrollIntoView"];function g(t,e,n){const s=t=>!(a(t)||c(t)||!u(t)&&!Object(r["g"])(t)||!t),l=s(t)?i(t):Object(r["l"])(d&&window||void 0),p=s(t)?l:Object(r["l"])(d&&window.document.scrollingElement||void 0),b=Object(r["l"])(p.value&&p.value.scrollTop||0),g=Object(r["l"])(p.value&&p.value.scrollLeft||0);let y=()=>{b.value=p.value.scrollTop,g.value=p.value.scrollLeft};const w=m.reduce((t,e)=>(t[e]=(...t)=>p.value&&p.value[e]&&p.value[e].apply(p.value,t),t),{}),O=t=>w.scrollTo({top:t}),j=t=>w.scrollTo({left:t}),[x,_]=a(t)||!t?[f,t]:a(e)?[f,e]:[e,n];_&&(y=v(y,n));const S=h(l,"scroll",y,x),k=Object(o["N"])(b,O,{immediate:!1}),E=Object(o["N"])(g,j,{immediate:!1}),A=()=>{S(),E(),k()};return{scrollTop:b,scrollLeft:g,remove:A,scrollTopTo:O,scrollLeftTo:j,...w}}Symbol("");let y=void 0;async function w(t,e,n){setTimeout(async()=>{const r=["addTimelineLayer","addInspector","sendInspectorTree","sendInspectorState","addTimelineEvent"];for(const e of r){for(const r of n.filter(t=>t.type===e))t[e](...r.args);await p(20)}new Set(n.filter(t=>"notifyComponentUpdate"===t.type).map(t=>t.args[0])).forEach(e=>t.notifyComponentUpdate(e)),e.forEach(e=>t.on[e.type](...e.args)),e.length=0,n.length=0},100)}y=t=>{let e;const n=[],r=[],o=new Proxy({},{get:(t,r)=>e?e.on[r]:r in t?t[r]:t[r]=(...t)=>{n.push({type:r,args:t})}}),i=new Proxy({on:o},{get:(t,n)=>"on"===n?t.on:e?e[n]:n in t?t[n]:t[n]=(...t)=>{r.push({type:n,args:t})}});return t.then(t=>{e=t,w(e,n,r)}),i};function O(t){const e=!!d&&"matchMedia"in window;let n=void 0,i=void 0,c=l;if(e){n=Object(r["l"])(matchMedia(t)),i=Object(r["l"])(n.value.matches);const e=t=>{i.value=t.matches};n.value.addEventListener("change",e,f);const c=()=>n.value.removeEventListener("change",e);Object(o["z"])(c)}else n=Object(r["l"])({}),i=Object(r["l"])(!1);return{supported:e,mediaQueryList:n,matches:i,remove:c}}function j(t){if(t)return a(t)?t:x(t)}const x=t=>{const e=t.match(/^(\d+)px$/);if(e)return+e[1]};function _(t){const e={},n=new Map,i=Object(r["l"])();let c=[];const a=[];for(const o in t){const i=t[o],s=j(i);if(void 0!==s){const t=Object(r["l"])(!1);e[o]=t,n.set(s,{name:o,valid:t}),c.push(s)}else{const{matches:t,remove:n}=O(i);e[o]=t,a.push(n)}}c=c.sort((t,e)=>e-t);const s=d?()=>{const t=window.innerWidth;let e=void 0;for(let r=0;r=o,t>=o&&void 0===e&&(e=i.name)}i.value=e}:l,u=v(s,10),p=d?()=>window.removeEventListener("resize",u):l;return d&&(Object(o["y"])(()=>{s(),window.addEventListener("resize",u,f)}),Object(o["z"])(()=>{p(),a.forEach(t=>t())})),{...e,remove:p,current:i}}Symbol("");Symbol("");Symbol("");Symbol("")},fc6a:function(t,e,n){var r=n("44ad"),o=n("1d80");t.exports=function(t){return r(o(t))}},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("4930");t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fea9:function(t,e,n){var r=n("da84");t.exports=r.Promise}}]); -//# sourceMappingURL=chunk-vendors.64ef7f8c.js.map \ No newline at end of file diff --git a/dist/js/chunk-vendors.64ef7f8c.js.map b/dist/js/chunk-vendors.64ef7f8c.js.map deleted file mode 100644 index 302898b..0000000 --- a/dist/js/chunk-vendors.64ef7f8c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@fortawesome/free-brands-svg-icons/index.es.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/vue-composable/dist/vue-composable.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","slice","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","charAt","n","fails","createElement","defineProperty","get","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","is","x","y","classof","regexpExec","R","S","exec","TypeError","Constructor","name","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","next","done","this","Array","from","SKIP_CLOSING","ITERATION_SUPPORT","object","userAgent","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","anObject","isArrayIteratorMethod","toLength","bind","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","options","iterator","iterFn","index","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","toInteger","max","min","integer","global","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","source","FORCED","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","prototype","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","concat","$","notARegExp","requireObjectCoercible","correctIsRegExpLogic","proto","includes","searchString","indexOf","flags","TO_STRING","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","returnMethod","EOF","USE_NATIVE_URL","defineProperties","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","set","getInternalURLState","getterFor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","split","pop","parseInt","push","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","join","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","toLowerCase","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","query","fragment","i","codePoint","encodedCodePoints","shift","URLConstructor","baseState","urlString","type","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","output","accessorDescriptor","getter","setter","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","defer","channel","html","IS_IOS","IS_NODE","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","hasOwnProperty","runner","listener","event","data","post","postMessage","args","Function","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","version","versions","v8","Iterators","objectKeys","Properties","keys","isObject","defineIterator","STRING_ITERATOR","getInternalState","iterated","point","propertyIsEnumerable","create","UNSCOPABLES","ArrayPrototype","console","MATCH","isRegExp","defaultConstructor","C","getOwnPropertySymbols","Symbol","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callbackfn","callWithSafeIterationClosing","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","maybeToString","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","res","rx","functionalReplace","fullUnicode","unicode","lastIndex","results","matchStr","accumulatedResult","nextSourcePosition","j","groups","replacerArgs","store","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","start","end","trim","stack","warn","msg","instance","component","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","callWithErrorHandling","proxy","map","vnode","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","parent","logs","entry","formatTraceEntry","postfix","isRoot","open","close","props","formatProps","formatProp","raw","JSON","stringify","err","handleError","callWithAsyncErrorHandling","catch","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","currentPreFlushParentJob","then","findInsertionIndex","job","jobId","getId","middle","middleJobId","queueJob","allowRecurse","pos","splice","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","Set","flushPostFlushCbs","deduped","Infinity","Map","emit","rawArgs","isModelListener","startsWith","modelArg","modifiersKey","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","deopt","__emits","emits","hasExtends","extendEmits","mixins","extends","isEmitListener","currentRenderingInstance","setCurrentRenderingInstance","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","setupState","ctx","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","root","inheritAttrs","some","filterModelListeners","cloneVNode","dirs","transition","createVNode","Comment","filterSingleRoot","children","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","normalizeSuspenseChildren","content","fallback","normalizeSuspenseSlot","default","s","singleChild","queueEffectWithSuspense","suspense","pendingBranch","effects","isRenderingCompiledSlot","setCompiledSlotRendering","withCtx","renderFnWithContext","openBlock","owner","closeBlock","_c","currentScopeId","scopeIdStack","pushScopeId","popScopeId","withScopeId","initProps","rawProps","isStateful","isSSR","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","camelKey","opt","hasDefault","defaultValue","setCurrentInstance","normalizePropsOptions","__props","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","len","injectHook","hook","currentInstance","prepend","hooks","wrappedHook","__weh","isUnmounted","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onRenderTriggered","onRenderTracked","onErrorCaptured","watchEffect","effect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","cleanup","forceTrigger","_shallow","traverse","onInvalidate","baseGetter","onStop","oldValue","active","newValue","scheduler","queuePostRenderEffect","isMounted","lazy","recordInstanceBoundEffect","instanceWatch","publicThis","add","v","useTransitionState","isLeaving","isUnmounting","leavingVNodes","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","remove","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","Fragment","__isKeepAlive","KeepAliveImpl","include","exclude","Number","cache","current","parentSuspense","sharedContext","renderer","patch","move","um","_unmount","o","storageContainer","unmount","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","cached","delete","activate","container","anchor","isSVG","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","rawVNode","cachedVNode","size","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","__wdc","injectToKeepAliveRoot","keepAliveRoot","injected","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","directives","internalInstance","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","oldBindings","binding","createAppContext","app","isNativeTag","performance","globalProperties","optionMergeStrategies","isCustomElement","components","provides","uid","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","node","nodeType","createHydrationFunctions","rendererInternals","mt","mountComponent","patchProp","nextSibling","parentNode","insert","createComment","hydrateNode","firstChild","parentComponent","isFragmentStart","onMismatch","handleMismatch","ref","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","hydrateComponent","loadAsync","__asyncLoader","locateClosingAsyncAnchor","hydrateChildren","setRef","dynamicChildren","onClick","vnodeHooks","onVnodeBeforeMount","innerHTML","textContent","parentVNode","l","isFragment","initFeatureFlags","defineComponent","setup","isAsyncWrapper","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","Error","reject","userRetry","userFail","__esModule","toStringTag","createInnerComp","loaded","delayed","prodEffectOptions","rawRef","oldRawRef","r","exposed","oldRef","refs","doSet","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","forcePatchProp","hostForcePatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","n1","n2","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","scopeId","mountChildren","unmountChildren","needCallTransitionHooks","beforeEnter","enter","treeOwnerId","__scopeId","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","patchProps","class","style","prev","areChildrenSVG","patchBlockChildren","patchChildren","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","asyncDep","registerDep","setupRenderEffect","placeholder","asyncResolved","updateComponentPreRender","bu","u","originNext","nextTree","prevTree","bm","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","doRemove","shouldInvokeDirs","onVnodeBeforeUnmount","unmountComponent","isTeleportDisabled","removeFragment","performRemove","bum","suspenseId","pendingId","deps","_vnode","mc","pc","pbc","createApp","shallow","ch1","ch2","arr","arrI","isTeleport","__isTeleport","disabled","COMPONENTS","resolveComponent","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","registry","blockStack","currentBlock","disableTracking","shouldTrack","createBlock","__v_isVNode","normalizeKey","normalizeRef","_createVNode","isBlockNode","cloned","normalizeChildren","isClassComponent","__vccOpts","klass","targetAnchor","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slot","slotFlag","toMerge","existing","incoming","provide","parentProvides","inject","treatDefaultAsFactory","isInBeforeCreate","applyOptions","deferredData","deferredWatch","deferredProvide","extendsOptions","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","beforeMount","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","expose","globalMixins","callSyncHook","applyMixins","methodHandler","dataFn","resolveData","createWatcher","Reflect","ownKeys","callHookFromMixins","callHookFromExtends","selfHook","baseHook","chainedMixins","createPathGetter","segments","resolveMergedOptions","__merged","mergeOptions","to","strats","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","setupContext","bc","rtg","rtc","compile","setupResult","setupStatefulComponent","Proxy","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","isRuntimeOnly","template","delimiters","_rc","classifyRE","classify","toUpperCase","displayName","__file","inferFromRegistry","getterOrOptions","h","propsOrChildren","initCustomFormatter","renderList","renderItem","bitmap","writable","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","charCodeAt","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","label","encoded","labels","IndexedObject","nativeAssign","A","B","symbol","alphabet","chr","T","CONVERT_TO_STRING","first","isArray","originalArray","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","svgNS","doc","document","tempContainer","tempSVGContainer","nodeOps","insertBefore","tag","createElementNS","createTextNode","nodeValue","querySelector","selector","setAttribute","temp","patchClass","transitionClasses","_vtc","className","patchStyle","display","cssText","setStyle","removeAttribute","importantRE","val","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","e","_value","_getNow","Date","createEvent","timeStamp","cachedNow","getNow","removeEventListener","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","body","offsetHeight","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","self","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","guard","vShow","_vod","setDisplay","rendererOptions","ensureRenderer","mount","containerOrSelector","normalizeContainer","Element","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","src","contentWindow","F","NullProtoObject","domain","ActiveXObject","$find","find","addToUnscopables","FIND","SKIPS_HOLES","createIteratorConstructor","getPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","propertyKey","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","functionToString","random","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","re","sticky","charsAdded","strCopy","multiline","feature","detection","normalize","POLYFILL","NATIVE","redefineAll","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","attribute","attributes","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","kind","URLSearchParamsConstructor","entryIterator","entryNext","init","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","callback","boundFunction","fetch","headers","nativeDefineProperty","Attributes","RE","makeMap","expectsLowerCase","list","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","normalizeStyle","item","isString","parseStringStyle","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","_key","isMap","reduce","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","toTypeString","isFunction","isSymbol","isPromise","objectToString","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","def","obj","toNumber","parseFloat","isNaN","targetMap","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","isEffect","_isEffect","createReactiveEffect","enableTracking","resetTracking","trackStack","pauseTracking","track","depsMap","dep","trigger","oldTarget","effectsToAdd","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","isReadonly","receiver","readonlyMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","method","toRaw","createSetter","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","wrap","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","iteratorMethods","createInstrumentationGetter","instrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","convert","__v_isRef","createRef","RefImpl","_rawValue","newVal","rawValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","ObjectRefImpl","_object","toRef","ComputedRefImpl","_setter","_dirty","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","ceil","NativePromise","speciesConstructor","promiseResolve","NON_GENERIC","real","onFinally","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NaN","NumberWrapper","error1","error2","commonjsGlobal","createCommonjsModule","humps","_processKeys","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","separator","_isNumerical","substr","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_typeof","_extends","objectWithoutProperties","toConsumableArray","arr2","styleToObject","pair","idx","classToObject","classes","abstractElement","renderFn","_attrs$style","aStyle","otherAttrs","PRODUCTION","log","_console","objectWithKey","_classes","spin","pulse","fixedWidth","border","listItem","inverse","flip","rotation","pull","swapOpacity","normalizeIconArgs","icon$$1","prefix","iconName","FontAwesomeIcon","validator","icon","mask","transform","title","_ref","renderedIcon","abstract","familyPrefix","renderedText","ignoreCase","dotAll","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","head","notify","toggle","promise","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","observe","characterData","task","createWellKnownSymbol","withoutSetter","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","every","filterOut","PREFERRED_STRING","faAngleDown","faAngleUp","faBook","faInfoCircle","faRocket","faSignInAlt","faSpinner","SHARED","$findIndex","FIND_INDEX","g","$includes","EXISTS","newPromiseCapability","promiseCapability","variable","namespace","NASHORN_BUG","1","aPossiblePrototype","CORRECT_SETTER","__proto__","TAG","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","check","globalThis","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_arr","_n","_d","_e","_s","_i","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","navigator","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","getAttrConfig","attr","element","getAttribute","coerce","_ref2","_default","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","_config","w","shims","functions","doScroll","readyState","asyncTimer","SETTLED","isNode","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","resolvePromise","rejectPromise","invokeCallback","subscriber","settled","_state","_data","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","onFulfillment","onRejection","fulfilled","rejected","promises","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","childNodes","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","acc","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2$width","width","_ref2$height","height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","force","fill","deGroup","makeIconMasking","main","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","offset","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","noop$1","bindInternal4","func","thisContext","subject","defineIcons","_params$skipHooks","skipHooks","expanded","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","rest","MissingIcon","message","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","cx","cy","opacity","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","_this","_len","additions","_pullDefinitions","definition","0","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","parse","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","PromiseCapability","$$resolve","$$reject","faGithub","faGitter","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","isNumber","isElement","NO_OP","PASSIVE_EV","passive","promisedTimeout","isClient","useEvent","removeWatch","cleanUp","useDebounce","wait","debounce","waitMilliseconds","isImmediate","timeoutId","doLater","shouldCallNow","clearTimeout","SCROLL_METHODS","useOnScroll","isValidElement","scrollableElement","scrollingElement","scrollTop","scrollLeft","scrollTopTo","top","scrollTo","scrollLeftTo","eventOptions","ms","eventRemove","watchRemoveTop","watchRemoveLeft","apiProxyFactory","async","pushEventsToApi","api","EventQueue","ApiQueue","priority","notifyComponentUpdate","on","promiseApi","onProxy","useMatchMedia","supported","mediaQueryList","matchMedia","getBreakpointWidth","bp","isValidWidthBreakpoint","useBreakpoint","breakpoints","sorted","removeMedia","valid","resize","innerWidth","processResize","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"],"mappings":"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","file":"js/chunk-vendors.64ef7f8c.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n /* global Symbol -- required for testing */\n return !Symbol.sham &&\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41);\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","import { pauseTracking, resetTracking, isRef, toRaw, shallowReactive, trigger, isReactive, effect, stop, ref, isProxy, proxyRefs, toRef, reactive, shallowReadonly, track, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, def, isReservedProp, EMPTY_ARR, isObject, capitalize, toRawType, makeMap, remove, NOOP, hasChanged, isSet, isMap, invokeArrayFns, NO, getGlobalThis, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(job) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n const jobId = getId(job);\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < jobId ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n const pos = findInsertionIndex(job);\r\n if (pos > -1) {\r\n queue.splice(pos, 0, job);\r\n }\r\n else {\r\n queue.push(job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > -1) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex]);\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex]);\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, job);\r\n }\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n throw new Error(`Maximum recursive updates exceeded. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, component) {\r\n if (!component) {\r\n warn(`HMR API usage is out of date.\\n` +\r\n `Please upgrade vue-loader/vite/rollup-plugin-vue or other relevant ` +\r\n `dependency that handles Vue SFC compilation.`);\r\n component = {};\r\n }\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n component: isClassComponent(component) ? component.__vccOpts : component,\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n if (newRender)\r\n record.component.render = newRender;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record.instances).forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n const { component, instances } = record;\r\n if (!hmrDirtyComponents.has(component)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(component, newComp);\r\n for (const key in component) {\r\n if (!(key in newComp)) {\r\n delete component[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(component);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(component);\r\n });\r\n }\r\n Array.from(instances).forEach(instance => {\r\n if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n });\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = /*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions)) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n // convert handler name to camelCase. See issue #2249\r\n let handlerName = toHandlerKey(camelize(event));\r\n let handler = props[handlerName];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handlerName = toHandlerKey(hyphenate(event));\r\n handler = props[handlerName];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n (instance.emitted = {})[handlerName] = true;\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__emits !== undefined) {\r\n return comp.__emits;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n hasExtends = true;\r\n extend(normalized, normalizeEmitsOptions(raw, appContext, true));\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__emits = null);\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n return (comp.__emits = normalized);\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n currentRenderingInstance = instance;\r\n}\r\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance;\r\n let result;\r\n currentRenderingInstance = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (Component.inheritAttrs !== false && fallthroughAttrs) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & 1 /* ELEMENT */ ||\r\n shapeFlag & 6 /* COMPONENT */) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n }\r\n catch (err) {\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n currentRenderingInstance = null;\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & 6 /* COMPONENT */ ||\r\n vnode.shapeFlag & 1 /* ELEMENT */ ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl\r\n );\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n const onPending = n2.props && n2.props.onPending;\r\n if (isFunction(onPending)) {\r\n onPending();\r\n }\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n const onResolve = vnode.props && vnode.props.onResolve;\r\n if (isFunction(onResolve)) {\r\n onResolve();\r\n }\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n const onFallback = vnode.props && vnode.props.onFallback;\r\n if (isFunction(onFallback)) {\r\n onFallback();\r\n }\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n suspense.isInFallback = true;\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n let content;\r\n let fallback;\r\n if (shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n content = normalizeSuspenseSlot(children.default);\r\n fallback = normalizeSuspenseSlot(children.fallback);\r\n }\r\n else {\r\n content = normalizeSuspenseSlot(children);\r\n fallback = normalizeVNode(null);\r\n }\r\n return {\r\n content,\r\n fallback\r\n };\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n if (isFunction(s)) {\r\n s = s();\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n return normalizeVNode(s);\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nlet isRenderingCompiledSlot = 0;\r\nconst setCompiledSlotRendering = (n) => (isRenderingCompiledSlot += n);\r\n/**\r\n * Compiler runtime helper for rendering ``\r\n * @private\r\n */\r\nfunction renderSlot(slots, name, props = {}, \r\n// this is not a user-facing function, so the fallback is always generated by\r\n// the compiler and guaranteed to be a function returning an array\r\nfallback) {\r\n let slot = slots[name];\r\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\r\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\r\n `function. You need to mark this component with $dynamic-slots in the ` +\r\n `parent template.`);\r\n slot = () => [];\r\n }\r\n // a compiled slot disables block tracking by default to avoid manual\r\n // invocation interfering with template-based block tracking, but in\r\n // `renderSlot` we can be sure that it's template-based so we can force\r\n // enable it.\r\n isRenderingCompiledSlot++;\r\n openBlock();\r\n const validSlotContent = slot && ensureValidVNode(slot(props));\r\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */);\r\n isRenderingCompiledSlot--;\r\n return rendered;\r\n}\r\nfunction ensureValidVNode(vnodes) {\r\n return vnodes.some(child => {\r\n if (!isVNode(child))\r\n return true;\r\n if (child.type === Comment)\r\n return false;\r\n if (child.type === Fragment &&\r\n !ensureValidVNode(child.children))\r\n return false;\r\n return true;\r\n })\r\n ? vnodes\r\n : null;\r\n}\n\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\r\n if (!ctx)\r\n return fn;\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we need to push a null block to\r\n // avoid that. This isn't necessary if rendering a compiled ``.\r\n if (!isRenderingCompiledSlot) {\r\n openBlock(true /* null block that disables tracking */);\r\n }\r\n const owner = currentRenderingInstance;\r\n setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(owner);\r\n if (!isRenderingCompiledSlot) {\r\n closeBlock();\r\n }\r\n return res;\r\n };\r\n renderFnWithContext._c = true;\r\n return renderFnWithContext;\r\n}\n\n// SFC scoped style ID management.\r\nlet currentScopeId = null;\r\nconst scopeIdStack = [];\r\n/**\r\n * @private\r\n */\r\nfunction pushScopeId(id) {\r\n scopeIdStack.push((currentScopeId = id));\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n scopeIdStack.pop();\r\n currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction withScopeId(id) {\r\n return ((fn) => withCtx(function () {\r\n pushScopeId(id);\r\n const res = fn.apply(this, arguments);\r\n popScopeId();\r\n return res;\r\n }));\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n const key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n attrs[key] = value;\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance);\r\n }\r\n }\r\n else {\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n setFullProps(instance, rawProps, props, attrs);\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawProps || EMPTY_OBJ, key, undefined, instance);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n if ((process.env.NODE_ENV !== 'production') && rawProps) {\r\n validateProps(props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n if (rawProps) {\r\n for (const key in rawProps) {\r\n const value = rawProps[key];\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n props[camelKey] = value;\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n // Any non-declared (either as a prop or an emitted event) props are put\r\n // into a separate `attrs` object for spreading. Make sure to preserve\r\n // original key casing\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key], instance);\r\n }\r\n }\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n setCurrentInstance(instance);\r\n value = defaultValue(props);\r\n setCurrentInstance(null);\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (!hasOwn(props, key) && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__props) {\r\n return comp.__props;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n return (comp.__props = EMPTY_ARR);\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return (comp.__props = [normalized, needCastKeys]);\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(props, instance) {\r\n const rawValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, rawValues[key], opt, !hasOwn(rawValues, key));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n setCurrentInstance(null);\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR\r\n!isInSSRComponentSetup && injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nconst onErrorCaptured = (hook, target = currentInstance) => {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n};\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ, instance = currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n let getter;\r\n let forceTrigger = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = !!source._shallow;\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */, [\r\n instance && instance.proxy\r\n ]);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onInvalidate]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n const onInvalidate = (fn) => {\r\n cleanup = runner.options.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n let oldValue = isArray(source) ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!runner.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = runner();\r\n if (deep || forceTrigger || hasChanged(newValue, oldValue)) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onInvalidate\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n runner();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job;\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const runner = effect(getter, {\r\n lazy: true,\r\n onTrack,\r\n onTrigger,\r\n scheduler\r\n });\r\n recordInstanceBoundEffect(runner, instance);\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = runner();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(runner, instance && instance.suspense);\r\n }\r\n else {\r\n runner();\r\n }\r\n return () => {\r\n stop(runner);\r\n if (instance) {\r\n remove(instance.effects, runner);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, cb, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? () => publicThis[source]\r\n : source.bind(publicThis);\r\n return doWatch(getter, cb.bind(publicThis), options, this);\r\n}\r\nfunction traverse(value, seen = new Set()) {\r\n if (!isObject(value) || seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out') {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const instance = getCurrentInstance();\r\n const parentSuspense = instance.suspense;\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n const name = getComponentName(comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => withCtx((props) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(props));\r\n}, ctx);\r\nconst normalizeObjectSlots = (rawSlots, slots) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') && !isKeepAlive(instance.vnode)) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n instance.slots = children;\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n const hook = binding.dir[name];\r\n if (hook) {\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n isCustomElement: NO,\r\n errorHandler: undefined,\r\n warnHandler: undefined\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null)\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n // global mixin with props/emits de-optimizes props/emits\r\n // normalization caching.\r\n if (mixin.props || mixin.emits) {\r\n context.deopt = true;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsInitApp(app, version);\r\n }\r\n return vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if ((process.env.NODE_ENV !== 'production') && !container.hasChildNodes()) {\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type !== node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n const container = parentNode(node);\r\n const hydrateComponent = () => {\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n };\r\n // async component\r\n const loadAsync = vnode.type.__asyncLoader;\r\n if (loadAsync) {\r\n loadAsync().then(hydrateComponent);\r\n }\r\n else {\r\n hydrateComponent();\r\n }\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { props, patchFlag, shapeFlag, dirs } = vnode;\r\n // skip props & children if this is hoisted static nodes\r\n if (patchFlag !== -1 /* HOISTED */) {\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\r\n }\r\n // props\r\n if (props) {\r\n if (!optimized ||\r\n (patchFlag & 16 /* FULL_PROPS */ ||\r\n patchFlag & 32 /* HYDRATE_EVENTS */)) {\r\n for (const key in props) {\r\n if (!isReservedProp(key) && isOn(key)) {\r\n patchProp(el, key, null, props[key]);\r\n }\r\n }\r\n }\r\n else if (props.onClick) {\r\n // Fast path for click listeners (which is most often) to avoid\r\n // iterating through props.\r\n patchProp(el, 'onClick', null, props.onClick);\r\n }\r\n }\r\n // vnode / directive hooks\r\n let vnodeHooks;\r\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n }\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n }\r\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n queueEffectWithSuspense(() => {\r\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n }, parentSuspense);\r\n }\r\n // children\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n // skip if element has innerHTML / textContent\r\n !(props && (props.innerHTML || props.textContent))) {\r\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized);\r\n let hasWarned = false;\r\n while (next) {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n `server rendered element contains more child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // The SSRed DOM contains more nodes than it should. Remove them.\r\n const cur = next;\r\n next = next.nextSibling;\r\n remove(cur);\r\n }\r\n }\r\n else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n if (el.textContent !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n `- Client: ${el.textContent}\\n` +\r\n `- Server: ${vnode.children}`);\r\n el.textContent = vnode.children;\r\n }\r\n }\r\n }\r\n return el.nextSibling;\r\n };\r\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!parentVNode.dynamicChildren;\r\n const children = parentVNode.children;\r\n const l = children.length;\r\n let hasWarned = false;\r\n for (let i = 0; i < l; i++) {\r\n const vnode = optimized\r\n ? children[i]\r\n : (children[i] = normalizeVNode(children[i]));\r\n if (node) {\r\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n else {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n `server rendered element contains fewer child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container));\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, optimized) => {\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized);\r\n if (next && isComment(next) && next.data === ']') {\r\n return nextSibling((vnode.anchor = next));\r\n }\r\n else {\r\n // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n // back. This should have led to node/children mismatch warnings.\r\n hasMismatch = true;\r\n // since the anchor is missing, we need to create one and insert it\r\n insert((vnode.anchor = createComment(`]`)), container, next);\r\n return next;\r\n }\r\n };\r\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, isFragment) => {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n ? `(text)`\r\n : isComment(node) && node.data === '['\r\n ? `(start of fragment)`\r\n : ``);\r\n vnode.el = null;\r\n if (isFragment) {\r\n // remove excessive fragment nodes\r\n const end = locateClosingAsyncAnchor(node);\r\n while (true) {\r\n const next = nextSibling(node);\r\n if (next && next !== end) {\r\n remove(next);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n const next = nextSibling(node);\r\n const container = parentNode(node);\r\n remove(node);\r\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container));\r\n return next;\r\n };\r\n const locateClosingAsyncAnchor = (node) => {\r\n let match = 0;\r\n while (node) {\r\n node = nextSibling(node);\r\n if (node && isComment(node)) {\r\n if (node.data === '[')\r\n match++;\r\n if (node.data === ']') {\r\n if (match === 0) {\r\n return nextSibling(node);\r\n }\r\n else {\r\n match--;\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n return [hydrate, hydrateNode];\r\n}\n\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n perf.mark(`vue-${type}-${instance.uid}`);\r\n }\r\n}\r\nfunction endMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n const startTag = `vue-${type}-${instance.uid}`;\r\n const endTag = startTag + `:end`;\r\n perf.mark(endTag);\r\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n }\r\n}\r\nfunction isSupported() {\r\n if (supported !== undefined) {\r\n return supported;\r\n }\r\n /* eslint-disable no-restricted-globals */\r\n if (typeof window !== 'undefined' && window.performance) {\r\n supported = true;\r\n perf = window.performance;\r\n }\r\n else {\r\n supported = false;\r\n }\r\n /* eslint-enable no-restricted-globals */\r\n return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n }\r\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of Vue. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle. ` +\r\n `See http://link.vuejs.org/feature-flags for more details.`);\r\n }\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest = loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n __asyncLoader: load,\r\n name: 'AsyncComponentWrapper',\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (false )) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst prodEffectOptions = {\r\n scheduler: queueJob,\r\n // #1801, #2043 component render effects should allow recursive updates\r\n allowRecurse: true\r\n};\r\nfunction createDevEffectOptions(instance) {\r\n return {\r\n scheduler: queueJob,\r\n allowRecurse: true,\r\n onTrack: instance.rtc ? e => invokeArrayFns(instance.rtc, e) : void 0,\r\n onTrigger: instance.rtg ? e => invokeArrayFns(instance.rtg, e) : void 0\r\n };\r\n}\r\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n ;\r\nconst setRef = (rawRef, oldRawRef, parentSuspense, vnode) => {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode));\r\n return;\r\n }\r\n let value;\r\n if (!vnode || isAsyncWrapper(vnode)) {\r\n value = null;\r\n }\r\n else {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.exposed || vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\r\n }\r\n }\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isString(ref)) {\r\n const doSet = () => {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n };\r\n // #1789: for non-null values, set them after render\r\n // null values means this is unmount and it should not overwrite another\r\n // ref with the same key\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n const doSet = () => {\r\n ref.value = value;\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', value, `(${typeof value})`);\r\n }\r\n};\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n * patchProp,\r\n * ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n // compile-time feature flags check\r\n {\r\n initFeatureFlags();\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__VUE__ = true;\r\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__);\r\n }\r\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n // Note: functions inside this closure should use `const xxx = () => {}`\r\n // style in order to prevent being inlined by minifiers.\r\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => {\r\n // patching & not same type, unmount old tree\r\n if (n1 && !isSameVNodeType(n1, n2)) {\r\n anchor = getNextHostNode(n1);\r\n unmount(n1, parentComponent, parentSuspense, true);\r\n n1 = null;\r\n }\r\n if (n2.patchFlag === -2 /* BAIL */) {\r\n optimized = false;\r\n n2.dynamicChildren = null;\r\n }\r\n const { type, ref, shapeFlag } = n2;\r\n switch (type) {\r\n case Text:\r\n processText(n1, n2, container, anchor);\r\n break;\r\n case Comment:\r\n processCommentNode(n1, n2, container, anchor);\r\n break;\r\n case Static:\r\n if (n1 == null) {\r\n mountStaticNode(n2, container, anchor, isSVG);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n patchStaticNode(n1, n2, container, isSVG);\r\n }\r\n break;\r\n case Fragment:\r\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid VNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n // set ref\r\n if (ref != null && parentComponent) {\r\n setRef(ref, n1 && n1.ref, parentSuspense, n2);\r\n }\r\n };\r\n const processText = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n }\r\n else {\r\n const el = (n2.el = n1.el);\r\n if (n2.children !== n1.children) {\r\n hostSetText(el, n2.children);\r\n }\r\n }\r\n };\r\n const processCommentNode = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n }\r\n else {\r\n // there's no support for dynamic comments\r\n n2.el = n1.el;\r\n }\r\n };\r\n const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const patchStaticNode = (n1, n2, container, isSVG) => {\r\n // static nodes are only patched during dev for HMR\r\n if (n2.children !== n1.children) {\r\n const anchor = hostNextSibling(n1.anchor);\r\n // remove existing\r\n removeStaticNode(n1);\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n }\r\n else {\r\n n2.el = n1.el;\r\n n2.anchor = n1.anchor;\r\n }\r\n };\r\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostInsert(el, container, nextSibling);\r\n el = next;\r\n }\r\n hostInsert(anchor, container, nextSibling);\r\n };\r\n const removeStaticNode = ({ el, anchor }) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostRemove(el);\r\n el = next;\r\n }\r\n hostRemove(anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode;\r\n if (!(process.env.NODE_ENV !== 'production') &&\r\n vnode.el &&\r\n hostCloneNode !== undefined &&\r\n patchFlag === -1 /* HOISTED */) {\r\n // If a vnode has non-null el, it means it's being reused.\r\n // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n // exactly the same, and we can simply do a clone here.\r\n // only do this in production since cloned trees cannot be HMR updated.\r\n el = vnode.el = hostCloneNode(vnode.el);\r\n }\r\n else {\r\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `

{v6QlYwstASX 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