commit 01c45a966909f635070a4a09f83828fea99611dc Author: Charles7c Date: Tue Jan 2 21:10:26 2024 +0800 hello world diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..bd94f00 --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VITE_API_BASE_URL= 'http://localhost:8000' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..9880a66 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VITE_API_BASE_URL= 'https://api.charles7c.top' \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..fc04190 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +/*.json +/*.js +dist \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..5cd8040 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,72 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require('path'); + +module.exports = { + root: true, + parser: 'vue-eslint-parser', + parserOptions: { + // Parser that checks the content of the + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..4b0202f --- /dev/null +++ b/package.json @@ -0,0 +1,113 @@ +{ + "name": "continew-admin-ui", + "description": "ContiNew Admin 中后台管理框架,Continue New Admin,持续以最新流行技术栈构建,拥抱变化,迭代优化。", + "version": "2.2.0", + "private": true, + "author": "Charles7c", + "license": "Apache-2.0", + "scripts": { + "dev": "vite --host --config ./config/vite.config.dev.ts", + "build": "vue-tsc --noEmit && vite build --config ./config/vite.config.prod.ts", + "report": "cross-env REPORT=true npm run build", + "preview": "npm run build && vite preview --host", + "type:check": "vue-tsc --noEmit --skipLibCheck", + "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix", + "lint-staged": "npx lint-staged" + }, + "lint-staged": { + "*.{js,ts,jsx,tsx}": [ + "prettier --write", + "eslint --fix" + ], + "*.vue": [ + "stylelint --fix", + "prettier --write", + "eslint --fix" + ], + "*.{less,css}": [ + "stylelint --fix", + "prettier --write" + ] + }, + "dependencies": { + "@arco-design/web-vue": "^2.53.3", + "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.2.1", + "@kangc/v-md-editor": "^2.3.18", + "@vueuse/core": "^10.7.0", + "axios": "^0.24.0", + "codemirror": "^6.0.1", + "crypto-js": "^4.2.0", + "dayjs": "^1.11.10", + "echarts": "^5.4.3", + "highlight.js": "^11.9.0", + "jsencrypt": "^3.3.2", + "lodash": "^4.17.21", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "query-string": "^8.1.0", + "sortablejs": "^1.15.1", + "v-viewer": "^3.0.10", + "viewerjs": "^1.11.6", + "vue": "3.3.7", + "vue-codemirror": "^6.1.1", + "vue-cropper": "^1.1.1", + "vue-echarts": "^6.6.5", + "vue-i18n": "^9.8.0", + "vue-json-pretty": "^2.3.0", + "vue-router": "^4.2.5", + "vue3-colorpicker": "^2.2.3", + "xgplayer": "^2.31.6" + }, + "devDependencies": { + "@arco-plugins/vite-vue": "^1.4.5", + "@commitlint/cli": "^18.4.3", + "@commitlint/config-conventional": "^18.4.3", + "@types/crypto-js": "^4.2.1", + "@types/lodash": "^4.14.202", + "@types/mockjs": "^1.0.10", + "@types/nprogress": "^0.2.3", + "@types/sortablejs": "^1.15.7", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "@vitejs/plugin-vue": "^4.5.2", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/babel-plugin-jsx": "^1.1.5", + "consola": "^3.2.3", + "cross-env": "^7.0.3", + "eslint": "^8.56.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prettier": "^5.1.2", + "eslint-plugin-vue": "^9.19.2", + "less": "^4.2.0", + "lint-staged": "^15.2.0", + "mockjs": "^1.1.0", + "postcss-html": "^1.5.0", + "prettier": "^3.1.1", + "rollup": "^4.9.1", + "rollup-plugin-visualizer": "^5.11.0", + "sass": "^1.69.5", + "stylelint": "^16.0.2", + "stylelint-config-prettier": "^9.0.5", + "stylelint-config-rational-order": "^0.1.2", + "stylelint-config-recommended-vue": "^1.5.0", + "stylelint-config-standard": "^35.0.0", + "stylelint-order": "^6.0.4", + "typescript": "^5.3.3", + "unplugin-vue-components": "^0.26.0", + "vite": "^4.5.1", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-imagemin": "^0.6.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-svg-loader": "^4.0.0", + "vue-tsc": "^1.8.26" + }, + "engines": { + "node": ">=14.0.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..311d508 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,10641 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@arco-design/web-vue': + specifier: ^2.53.3 + version: 2.53.3(vue@3.3.7) + '@codemirror/lang-java': + specifier: ^6.0.1 + version: 6.0.1 + '@codemirror/lang-javascript': + specifier: ^6.2.1 + version: 6.2.1 + '@kangc/v-md-editor': + specifier: ^2.3.18 + version: 2.3.18(@vue/compiler-sfc@3.3.13)(vue@3.3.7) + '@vueuse/core': + specifier: ^10.7.0 + version: 10.7.0(vue@3.3.7) + axios: + specifier: ^0.24.0 + version: 0.24.0 + codemirror: + specifier: ^6.0.1 + version: 6.0.1(@lezer/common@1.1.2) + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + echarts: + specifier: ^5.4.3 + version: 5.4.3 + highlight.js: + specifier: ^11.9.0 + version: 11.9.0 + jsencrypt: + specifier: ^3.3.2 + version: 3.3.2 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + mitt: + specifier: ^3.0.1 + version: 3.0.1 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + pinia: + specifier: ^2.1.7 + version: 2.1.7(typescript@5.3.3)(vue@3.3.7) + query-string: + specifier: ^8.1.0 + version: 8.1.0 + sortablejs: + specifier: ^1.15.1 + version: 1.15.1 + v-viewer: + specifier: ^3.0.10 + version: 3.0.11(vue@3.3.7) + viewerjs: + specifier: ^1.11.6 + version: 1.11.6 + vue: + specifier: 3.3.7 + version: 3.3.7(typescript@5.3.3) + vue-codemirror: + specifier: ^6.1.1 + version: 6.1.1(codemirror@6.0.1)(vue@3.3.7) + vue-cropper: + specifier: ^1.1.1 + version: 1.1.1 + vue-echarts: + specifier: ^6.6.5 + version: 6.6.5(echarts@5.4.3)(vue@3.3.7) + vue-i18n: + specifier: ^9.8.0 + version: 9.8.0(vue@3.3.7) + vue-json-pretty: + specifier: ^2.3.0 + version: 2.3.0(vue@3.3.7) + vue-router: + specifier: ^4.2.5 + version: 4.2.5(vue@3.3.7) + vue3-colorpicker: + specifier: ^2.2.3 + version: 2.2.3(@aesoper/normal-utils@0.1.5)(@popperjs/core@2.11.8)(@vueuse/core@10.7.0)(gradient-parser@1.0.2)(lodash-es@4.17.21)(tinycolor2@1.6.0)(vue-types@4.2.1)(vue@3.3.7) + xgplayer: + specifier: ^2.31.6 + version: 2.32.6 + +devDependencies: + '@arco-plugins/vite-vue': + specifier: ^1.4.5 + version: 1.4.5 + '@commitlint/cli': + specifier: ^18.4.3 + version: 18.4.3(typescript@5.3.3) + '@commitlint/config-conventional': + specifier: ^18.4.3 + version: 18.4.3 + '@types/crypto-js': + specifier: ^4.2.1 + version: 4.2.1 + '@types/lodash': + specifier: ^4.14.202 + version: 4.14.202 + '@types/mockjs': + specifier: ^1.0.10 + version: 1.0.10 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@types/sortablejs': + specifier: ^1.15.7 + version: 1.15.7 + '@typescript-eslint/eslint-plugin': + specifier: ^6.15.0 + version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^6.15.0 + version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-vue': + specifier: ^4.5.2 + version: 4.5.2(vite@4.5.1)(vue@3.3.7) + '@vitejs/plugin-vue-jsx': + specifier: ^3.1.0 + version: 3.1.0(vite@4.5.1)(vue@3.3.7) + '@vue/babel-plugin-jsx': + specifier: ^1.1.5 + version: 1.1.5(@babel/core@7.23.6) + consola: + specifier: ^3.2.3 + version: 3.2.3 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + eslint: + specifier: ^8.56.0 + version: 8.56.0 + eslint-config-airbnb-base: + specifier: ^15.0.0 + version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.56.0) + eslint-import-resolver-typescript: + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: + specifier: ^2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-prettier: + specifier: ^5.1.2 + version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) + eslint-plugin-vue: + specifier: ^9.19.2 + version: 9.19.2(eslint@8.56.0) + less: + specifier: ^4.2.0 + version: 4.2.0 + lint-staged: + specifier: ^15.2.0 + version: 15.2.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + postcss-html: + specifier: ^1.5.0 + version: 1.5.0 + prettier: + specifier: ^3.1.1 + version: 3.1.1 + rollup: + specifier: ^4.9.1 + version: 4.9.1 + rollup-plugin-visualizer: + specifier: ^5.11.0 + version: 5.11.0(rollup@4.9.1) + sass: + specifier: ^1.69.5 + version: 1.69.5 + stylelint: + specifier: ^16.0.2 + version: 16.0.2(typescript@5.3.3) + stylelint-config-prettier: + specifier: ^9.0.5 + version: 9.0.5(stylelint@16.0.2) + stylelint-config-rational-order: + specifier: ^0.1.2 + version: 0.1.2 + stylelint-config-recommended-vue: + specifier: ^1.5.0 + version: 1.5.0(postcss-html@1.5.0)(stylelint@16.0.2) + stylelint-config-standard: + specifier: ^35.0.0 + version: 35.0.0(stylelint@16.0.2) + stylelint-order: + specifier: ^6.0.4 + version: 6.0.4(stylelint@16.0.2) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + unplugin-vue-components: + specifier: ^0.26.0 + version: 0.26.0(rollup@4.9.1)(vue@3.3.7) + vite: + specifier: ^4.5.1 + version: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@4.5.1) + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@8.56.0)(vite@4.5.1) + vite-plugin-imagemin: + specifier: ^0.6.1 + version: 0.6.1(vite@4.5.1) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.5.1) + vite-svg-loader: + specifier: ^4.0.0 + version: 4.0.0 + vue-tsc: + specifier: ^1.8.26 + version: 1.8.26(typescript@5.3.3) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, tarball: https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /@aesoper/normal-utils@0.1.5: + resolution: {integrity: sha512-LFF/6y6h5mfwhnJaWqqxuC8zzDaHCG62kMRkd8xhDtq62TQj9dM17A9DhE87W7DhiARJsHLgcina/9P4eNCN1w==, tarball: https://registry.npmmirror.com/@aesoper/normal-utils/-/normal-utils-0.1.5.tgz} + dev: false + + /@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz} + dev: true + + /@arco-design/color@0.4.0: + resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==, tarball: https://registry.npmmirror.com/@arco-design/color/-/color-0.4.0.tgz} + dependencies: + color: 3.2.1 + dev: false + + /@arco-design/web-vue@2.53.3(vue@3.3.7): + resolution: {integrity: sha512-/9tMP2GrcGWPGcfRQcLMFMxRBm7s6jjFkCpXXnOpvMAIMe80+gzqjVS2dmgCv2a1FpvB9fy5ot7+evJ5zrsQiw==, tarball: https://registry.npmmirror.com/@arco-design/web-vue/-/web-vue-2.53.3.tgz} + peerDependencies: + vue: ^3.1.0 + dependencies: + '@arco-design/color': 0.4.0 + b-tween: 0.3.3 + b-validate: 1.4.4 + compute-scroll-into-view: 1.0.20 + dayjs: 1.11.10 + number-precision: 1.6.0 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + vue: 3.3.7(typescript@5.3.3) + dev: false + + /@arco-plugins/vite-vue@1.4.5: + resolution: {integrity: sha512-2pJ9mpZP9mRD7NGZwRsZTS9C/US5ilEBBUqxN5Qgnd3Td50u9apJVKAABCZjG2K2eHiyZg7Fd9XhgHJXVJJmsw==, tarball: https://registry.npmmirror.com/@arco-plugins/vite-vue/-/vite-vue-1.4.5.tgz} + dependencies: + '@babel/generator': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/parser': 7.23.6 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + '@types/node': 16.18.25 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.6: + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, tarball: https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==, tarball: https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==, tarball: https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==, tarball: https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==, tarball: https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==, tarball: https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.23.6: + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.6): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.22.10.tgz} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@babel/traverse@7.23.6: + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.23.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@braintree/sanitize-url@6.0.4: + resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==, tarball: https://registry.npmmirror.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz} + dev: false + + /@codemirror/autocomplete@6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2): + resolution: {integrity: sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==, tarball: https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.9.3 + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + '@lezer/common': 1.1.2 + dev: false + + /@codemirror/commands@6.3.2: + resolution: {integrity: sha512-tjoi4MCWDNxgIpoLZ7+tezdS9OEB6pkiDKhfKx9ReJ/XBcs2G2RXIu+/FxXBlWsPTsz6C9q/r4gjzrsxpcnqCQ==, tarball: https://registry.npmmirror.com/@codemirror/commands/-/commands-6.3.2.tgz} + dependencies: + '@codemirror/language': 6.9.3 + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + '@lezer/common': 1.1.2 + dev: false + + /@codemirror/lang-java@6.0.1: + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==, tarball: https://registry.npmmirror.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz} + dependencies: + '@codemirror/language': 6.9.3 + '@lezer/java': 1.1.0 + dev: false + + /@codemirror/lang-javascript@6.2.1: + resolution: {integrity: sha512-jlFOXTejVyiQCW3EQwvKH0m99bUYIw40oPmFjSX2VS78yzfe0HELZ+NEo9Yfo1MkGRpGlj3Gnu4rdxV1EnAs5A==, tarball: https://registry.npmmirror.com/@codemirror/lang-javascript/-/lang-javascript-6.2.1.tgz} + dependencies: + '@codemirror/autocomplete': 6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2) + '@codemirror/language': 6.9.3 + '@codemirror/lint': 6.4.2 + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + '@lezer/common': 1.1.2 + '@lezer/javascript': 1.4.11 + dev: false + + /@codemirror/language@6.9.3: + resolution: {integrity: sha512-qq48pYzoi6ldYWV/52+Z9Ou6QouVI+8YwvxFbUypI33NbjG2UeRHKENRyhwljTTiOqjQ33FjyZj6EREQ9apAOQ==, tarball: https://registry.npmmirror.com/@codemirror/language/-/language-6.9.3.tgz} + dependencies: + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + '@lezer/common': 1.1.2 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.3.14 + style-mod: 4.1.0 + dev: false + + /@codemirror/lint@6.4.2: + resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==, tarball: https://registry.npmmirror.com/@codemirror/lint/-/lint-6.4.2.tgz} + dependencies: + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + crelt: 1.0.6 + dev: false + + /@codemirror/search@6.5.5: + resolution: {integrity: sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==, tarball: https://registry.npmmirror.com/@codemirror/search/-/search-6.5.5.tgz} + dependencies: + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + crelt: 1.0.6 + dev: false + + /@codemirror/state@6.3.3: + resolution: {integrity: sha512-0wufKcTw2dEwEaADajjHf6hBy1sh3M6V0e+q4JKIhLuiMSe5td5HOWpUdvKth1fT1M9VYOboajoBHpkCd7PG7A==, tarball: https://registry.npmmirror.com/@codemirror/state/-/state-6.3.3.tgz} + dev: false + + /@codemirror/view@6.22.3: + resolution: {integrity: sha512-rqnq+Zospwoi3x1vZ8BGV1MlRsaGljX+6qiGYmIpJ++M+LCC+wjfDaPklhwpWSgv7pr/qx29KiAKQBH5+DOn4w==, tarball: https://registry.npmmirror.com/@codemirror/view/-/view-6.22.3.tgz} + dependencies: + '@codemirror/state': 6.3.3 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 + dev: false + + /@commitlint/cli@18.4.3(typescript@5.3.3): + resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==, tarball: https://registry.npmmirror.com/@commitlint/cli/-/cli-18.4.3.tgz} + engines: {node: '>=v18'} + hasBin: true + dependencies: + '@commitlint/format': 18.4.3 + '@commitlint/lint': 18.4.3 + '@commitlint/load': 18.4.3(typescript@5.3.3) + '@commitlint/read': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.1 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/config-conventional@18.4.3: + resolution: {integrity: sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==, tarball: https://registry.npmmirror.com/@commitlint/config-conventional/-/config-conventional-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + conventional-changelog-conventionalcommits: 7.0.2 + dev: true + + /@commitlint/config-validator@18.4.3: + resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==, tarball: https://registry.npmmirror.com/@commitlint/config-validator/-/config-validator-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@18.4.3: + resolution: {integrity: sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==, tarball: https://registry.npmmirror.com/@commitlint/ensure/-/ensure-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@18.4.3: + resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==, tarball: https://registry.npmmirror.com/@commitlint/execute-rule/-/execute-rule-18.4.3.tgz} + engines: {node: '>=v18'} + dev: true + + /@commitlint/format@18.4.3: + resolution: {integrity: sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==, tarball: https://registry.npmmirror.com/@commitlint/format/-/format-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@18.4.3: + resolution: {integrity: sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==, tarball: https://registry.npmmirror.com/@commitlint/is-ignored/-/is-ignored-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + semver: 7.5.4 + dev: true + + /@commitlint/lint@18.4.3: + resolution: {integrity: sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==, tarball: https://registry.npmmirror.com/@commitlint/lint/-/lint-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/is-ignored': 18.4.3 + '@commitlint/parse': 18.4.3 + '@commitlint/rules': 18.4.3 + '@commitlint/types': 18.4.3 + dev: true + + /@commitlint/load@18.4.3(typescript@5.3.3): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==, tarball: https://registry.npmmirror.com/@commitlint/load/-/load-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.15.10 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.15.10)(cosmiconfig@8.3.6)(typescript@5.3.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/message@18.4.3: + resolution: {integrity: sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==, tarball: https://registry.npmmirror.com/@commitlint/message/-/message-18.4.3.tgz} + engines: {node: '>=v18'} + dev: true + + /@commitlint/parse@18.4.3: + resolution: {integrity: sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==, tarball: https://registry.npmmirror.com/@commitlint/parse/-/parse-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + dev: true + + /@commitlint/read@18.4.3: + resolution: {integrity: sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==, tarball: https://registry.npmmirror.com/@commitlint/read/-/read-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/top-level': 18.4.3 + '@commitlint/types': 18.4.3 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@18.4.3: + resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==, tarball: https://registry.npmmirror.com/@commitlint/resolve-extends/-/resolve-extends-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/types': 18.4.3 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@18.4.3: + resolution: {integrity: sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==, tarball: https://registry.npmmirror.com/@commitlint/rules/-/rules-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + '@commitlint/ensure': 18.4.3 + '@commitlint/message': 18.4.3 + '@commitlint/to-lines': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@18.4.3: + resolution: {integrity: sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==, tarball: https://registry.npmmirror.com/@commitlint/to-lines/-/to-lines-18.4.3.tgz} + engines: {node: '>=v18'} + dev: true + + /@commitlint/top-level@18.4.3: + resolution: {integrity: sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==, tarball: https://registry.npmmirror.com/@commitlint/top-level/-/top-level-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@18.4.3: + resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==, tarball: https://registry.npmmirror.com/@commitlint/types/-/types-18.4.3.tgz} + engines: {node: '>=v18'} + dependencies: + chalk: 4.1.2 + dev: true + + /@csstools/css-parser-algorithms@2.3.2(@csstools/css-tokenizer@2.2.1): + resolution: {integrity: sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==, tarball: https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.2.1 + dependencies: + '@csstools/css-tokenizer': 2.2.1 + dev: true + + /@csstools/css-tokenizer@2.2.1: + resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==, tarball: https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): + resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==, tarball: https://registry.npmmirror.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.3.2 + '@csstools/css-tokenizer': ^2.2.1 + dependencies: + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + dev: true + + /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): + resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==, tarball: https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.13 + dev: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.8.0: + resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.20.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz} + dev: true + + /@intlify/core-base@9.8.0: + resolution: {integrity: sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==, tarball: https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.8.0.tgz} + engines: {node: '>= 16'} + dependencies: + '@intlify/message-compiler': 9.8.0 + '@intlify/shared': 9.8.0 + dev: false + + /@intlify/message-compiler@9.8.0: + resolution: {integrity: sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==, tarball: https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.8.0.tgz} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.8.0 + source-map-js: 1.0.2 + dev: false + + /@intlify/shared@9.8.0: + resolution: {integrity: sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==, tarball: https://registry.npmmirror.com/@intlify/shared/-/shared-9.8.0.tgz} + engines: {node: '>= 16'} + dev: false + + /@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/gen-mapping@0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + + /@jridgewell/trace-mapping@0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@kangc/v-md-editor@2.3.18(@vue/compiler-sfc@3.3.13)(vue@3.3.7): + resolution: {integrity: sha512-wjI9lUQs4Ktn3gYru3C1hauOuOo2na5cF4ycHCgBZmIk08RjQVNbHO169yqkt9PMj6Djnl8W6ZknCBhTQfFbzQ==, tarball: https://registry.npmmirror.com/@kangc/v-md-editor/-/v-md-editor-2.3.18.tgz} + peerDependencies: + '@vue/compiler-sfc': ^3.0.0 + vue: ^3.0.0 + dependencies: + '@babel/runtime': 7.22.10 + '@vue/compiler-sfc': 3.3.13 + '@vuepress/markdown': 1.9.10 + codemirror: 5.65.14 + copy-to-clipboard: 3.3.3 + highlight.js: 10.7.3 + insert-text-at-cursor: 0.3.0 + katex: 0.13.24 + markdown-it: 12.3.2 + markdown-it-attrs: 4.1.6(markdown-it@12.3.2) + markdown-it-container: 3.0.0 + mermaid: 10.6.1 + prismjs: 1.29.0 + resize-observer-polyfill: 1.5.1 + vant: 3.6.12(vue@3.3.7) + vue: 3.3.7(typescript@5.3.3) + xss: 1.0.14 + transitivePeerDependencies: + - supports-color + dev: false + + /@lezer/common@1.1.2: + resolution: {integrity: sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw==, tarball: https://registry.npmmirror.com/@lezer/common/-/common-1.1.2.tgz} + dev: false + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==, tarball: https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.0.tgz} + dependencies: + '@lezer/common': 1.1.2 + dev: false + + /@lezer/java@1.1.0: + resolution: {integrity: sha512-RmBS+P9LJ4P9SU7ZewahMkBUNOEz1zQTMOKLq8OEa7ge8FZxz7mKjoEIGewRSn9kom1z5GKQjtxNE++m6u8SYw==, tarball: https://registry.npmmirror.com/@lezer/java/-/java-1.1.0.tgz} + dependencies: + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.3.14 + dev: false + + /@lezer/javascript@1.4.11: + resolution: {integrity: sha512-B5Y9EJF4BWiMgj4ufxUo2hrORnmMBDrMtR+L7dwIO5pocuSAahG6QBwXR6PbKJOjRywJczU2r2LJPg79ER91TQ==, tarball: https://registry.npmmirror.com/@lezer/javascript/-/javascript-1.4.11.tgz} + dependencies: + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.3.14 + dev: false + + /@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==, tarball: https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.14.tgz} + dependencies: + '@lezer/common': 1.1.2 + dev: false + + /@mrmlnc/readdir-enhanced@2.2.1: + resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==, tarball: https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz} + engines: {node: '>=4'} + dependencies: + call-me-maybe: 1.0.2 + glob-to-regexp: 0.3.0 + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@1.1.3: + resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz} + engines: {node: '>= 6'} + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.2 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==, tarball: https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz} + dev: false + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@4.9.1): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 4.9.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.9.1: + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.1: + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.1: + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.1: + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.1: + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.1: + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.1: + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.1: + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.1: + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.1: + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.1: + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.1: + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sindresorhus/is@0.7.0: + resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==, tarball: https://registry.npmmirror.com/@sindresorhus/is/-/is-0.7.0.tgz} + engines: {node: '>=4'} + dev: true + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} + engines: {node: '>=10.13.0'} + dev: true + + /@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==, tarball: https://registry.npmmirror.com/@types/crypto-js/-/crypto-js-4.2.1.tgz} + dev: true + + /@types/d3-scale-chromatic@3.0.3: + resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==, tarball: https://registry.npmmirror.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz} + dev: false + + /@types/d3-scale@4.0.8: + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==, tarball: https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.8.tgz} + dependencies: + '@types/d3-time': 3.0.3 + dev: false + + /@types/d3-time@3.0.3: + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==, tarball: https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.3.tgz} + dev: false + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/eslint@8.21.3: + resolution: {integrity: sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==, tarball: https://registry.npmmirror.com/@types/eslint/-/eslint-8.21.3.tgz} + dependencies: + '@types/estree': 1.0.0 + '@types/json-schema': 7.0.14 + dev: true + + /@types/estree@1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz} + dev: true + + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, tarball: https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.4.7 + + /@types/imagemin-gifsicle@7.0.1: + resolution: {integrity: sha512-kUz6sUh0P95JOS0RGEaaemWUrASuw+dLsWIveK2UZJx74id/B9epgblMkCk/r5MjUWbZ83wFvacG5Rb/f97gyA==, tarball: https://registry.npmmirror.com/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.1.tgz} + dependencies: + '@types/imagemin': 7.0.1 + dev: true + + /@types/imagemin-jpegtran@5.0.1: + resolution: {integrity: sha512-Ps8kbm+DUFte/Eln/tUdEvpMWHKFCsQKlV8n+RN50zqWqL/7QhfLxR0ymitP9wa90P6+rkbJlintBNPkVR+B/Q==, tarball: https://registry.npmmirror.com/@types/imagemin-jpegtran/-/imagemin-jpegtran-5.0.1.tgz} + dependencies: + '@types/imagemin': 7.0.1 + dev: true + + /@types/imagemin-mozjpeg@8.0.1: + resolution: {integrity: sha512-kMQWEoKxxhlnH4POI3qfW9DjXlQfi80ux3l2b3j5R3eudSCoUIzKQLkfMjNJ6eMYnMWBcB+rfQOWqIzdIwFGKw==, tarball: https://registry.npmmirror.com/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.1.tgz} + dependencies: + '@types/imagemin': 7.0.1 + dev: true + + /@types/imagemin-optipng@5.2.1: + resolution: {integrity: sha512-XCM/3q+HUL7v4zOqMI+dJ5dTxT+MUukY9KU49DSnYb/4yWtSMHJyADP+WHSMVzTR63J2ZvfUOzSilzBNEQW78g==, tarball: https://registry.npmmirror.com/@types/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz} + dependencies: + '@types/imagemin': 7.0.1 + dev: true + + /@types/imagemin-svgo@10.0.2: + resolution: {integrity: sha512-F4enqbl7eE0JhrwGdJSMKFDn1j1Pk8JsCvnjA5iJKSi+IK3sd4CronabzVmOuEkz663tV7FsRQp1f7SP3zmIaA==, tarball: https://registry.npmmirror.com/@types/imagemin-svgo/-/imagemin-svgo-10.0.2.tgz} + dependencies: + '@types/imagemin': 7.0.1 + '@types/svgo': 2.6.4 + dev: true + + /@types/imagemin-webp@7.0.0: + resolution: {integrity: sha512-Lb1tjy2vEU7qYwM5iFB9o5k0J3mIpulw6Yftset5LLLugPu7+C16rLYRP1WEwr4QM8AeJZRjC2BGBLd9lGvRhQ==, tarball: https://registry.npmmirror.com/@types/imagemin-webp/-/imagemin-webp-7.0.0.tgz} + dependencies: + '@types/imagemin': 7.0.1 + dev: true + + /@types/imagemin@7.0.1: + resolution: {integrity: sha512-xEn5+M3lDBtI3JxLy6eU3ksoVurygnlG7OYhTqJfGGP4PcvYnfn+IABCmMve7ziM/SneHDm5xgJFKC8hCYPicw==, tarball: https://registry.npmmirror.com/@types/imagemin/-/imagemin-7.0.1.tgz} + dependencies: + '@types/node': 20.4.7 + dev: true + + /@types/json-schema@7.0.14: + resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.14.tgz} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, tarball: https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} + dependencies: + '@types/node': 20.4.7 + dev: true + + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz} + dev: true + + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, tarball: https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz} + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz} + dev: true + + /@types/mockjs@1.0.10: + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==, tarball: https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} + dev: false + + /@types/node@16.18.25: + resolution: {integrity: sha512-rUDO6s9Q/El1R1I21HG4qw/LstTHCPO/oQNAwI/4b2f9EWvMnqt4d3HJwPMawfZ3UvodB8516Yg+VAq54YM+eA==, tarball: https://registry.npmmirror.com/@types/node/-/node-16.18.25.tgz} + dev: true + + /@types/node@18.15.10: + resolution: {integrity: sha512-9avDaQJczATcXgfmMAW3MIWArOO7A+m90vuCFLr8AotWf8igO/mRoYukrk2cqZVtv38tHs33retzHEilM7FpeQ==, tarball: https://registry.npmmirror.com/@types/node/-/node-18.15.10.tgz} + dev: true + + /@types/node@20.4.7: + resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==, tarball: https://registry.npmmirror.com/@types/node/-/node-20.4.7.tgz} + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, tarball: https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz} + dev: true + + /@types/nprogress@0.2.3: + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==, tarball: https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.3.tgz} + dev: true + + /@types/responselike@1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.0.tgz} + dependencies: + '@types/node': 20.4.7 + dev: true + + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.4.tgz} + dev: true + + /@types/sortablejs@1.15.7: + resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==, tarball: https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.7.tgz} + dev: true + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==, tarball: https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz} + dependencies: + '@types/node': 20.4.7 + dev: true + + /@types/unist@2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz} + + /@types/vfile-message@2.0.0: + resolution: {integrity: sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==, tarball: https://registry.npmmirror.com/@types/vfile-message/-/vfile-message-2.0.0.tgz} + deprecated: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed. + dependencies: + vfile-message: 3.1.4 + dev: true + + /@types/vfile@3.0.2: + resolution: {integrity: sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==, tarball: https://registry.npmmirror.com/@types/vfile/-/vfile-3.0.2.tgz} + dependencies: + '@types/node': 20.4.7 + '@types/unist': 2.0.6 + '@types/vfile-message': 2.0.0 + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==, tarball: https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz} + dev: false + + /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.8.0 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.15.0: + resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 + dev: true + + /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.15.0: + resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): + resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/visitor-keys': 6.15.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 + '@typescript-eslint/scope-manager': 6.15.0 + '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.15.0: + resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.15.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, tarball: https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz} + dev: true + + /@vant/icons@1.8.0: + resolution: {integrity: sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==, tarball: https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz} + dev: false + + /@vant/popperjs@1.3.0: + resolution: {integrity: sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==, tarball: https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz} + dev: false + + /@vant/use@1.5.2(vue@3.3.7): + resolution: {integrity: sha512-CBK61iT568dCHUwFFsErGbW6/5tmrPnZJKGtcSy7Tjcrmws8Ku+YZo7IUFD9Xkj9MfSJ4pfhQ7pU2KouP5Cojg==, tarball: https://registry.npmmirror.com/@vant/use/-/use-1.5.2.tgz} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.3.7(typescript@5.3.3) + dev: false + + /@vitejs/plugin-vue-jsx@3.1.0(vite@4.5.1)(vue@3.3.7): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.6) + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + vue: 3.3.7(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@4.5.2(vite@4.5.1)(vue@3.3.7): + resolution: {integrity: sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + vue: 3.3.7(typescript@5.3.3) + dev: true + + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==, tarball: https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==, tarball: https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==, tarball: https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/babel-helper-vue-transform-on@1.1.5: + resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==, tarball: https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz} + dev: true + + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.6): + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==, tarball: https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.6) + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/compiler-core@3.3.13: + resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + + /@vue/compiler-core@3.3.7: + resolution: {integrity: sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.7.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.3.7 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + + /@vue/compiler-dom@3.3.13: + resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz} + dependencies: + '@vue/compiler-core': 3.3.13 + '@vue/shared': 3.3.13 + + /@vue/compiler-dom@3.3.7: + resolution: {integrity: sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz} + dependencies: + '@vue/compiler-core': 3.3.7 + '@vue/shared': 3.3.7 + + /@vue/compiler-sfc@3.3.13: + resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.3.13 + '@vue/compiler-dom': 3.3.13 + '@vue/compiler-ssr': 3.3.13 + '@vue/reactivity-transform': 3.3.13 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.32 + source-map-js: 1.0.2 + + /@vue/compiler-sfc@3.3.7: + resolution: {integrity: sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.3.7 + '@vue/compiler-dom': 3.3.7 + '@vue/compiler-ssr': 3.3.7 + '@vue/reactivity-transform': 3.3.7 + '@vue/shared': 3.3.7 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.32 + source-map-js: 1.0.2 + + /@vue/compiler-ssr@3.3.13: + resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz} + dependencies: + '@vue/compiler-dom': 3.3.13 + '@vue/shared': 3.3.13 + + /@vue/compiler-ssr@3.3.7: + resolution: {integrity: sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz} + dependencies: + '@vue/compiler-dom': 3.3.7 + '@vue/shared': 3.3.7 + + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==, tarball: https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz} + dev: false + + /@vue/language-core@1.8.26(typescript@5.3.3): + resolution: {integrity: sha512-9cmza/Y2YTiOnKZ0Mi9zsNn7Irw+aKirP+5LLWVSNaL3fjKJjW1cD3HGBckasY2RuVh4YycvdA9/Q6EBpVd/7Q==, tarball: https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.26.tgz} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.3.13 + '@vue/shared': 3.3.13 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.14 + dev: true + + /@vue/reactivity-transform@3.3.13: + resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.3.13 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + magic-string: 0.30.5 + + /@vue/reactivity-transform@3.3.7: + resolution: {integrity: sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.3.7 + '@vue/shared': 3.3.7 + estree-walker: 2.0.2 + magic-string: 0.30.5 + + /@vue/reactivity@3.3.7: + resolution: {integrity: sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==, tarball: https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.7.tgz} + dependencies: + '@vue/shared': 3.3.7 + + /@vue/runtime-core@3.3.7: + resolution: {integrity: sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==, tarball: https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.7.tgz} + dependencies: + '@vue/reactivity': 3.3.7 + '@vue/shared': 3.3.7 + + /@vue/runtime-dom@3.3.7: + resolution: {integrity: sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==, tarball: https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz} + dependencies: + '@vue/runtime-core': 3.3.7 + '@vue/shared': 3.3.7 + csstype: 3.1.3 + + /@vue/server-renderer@3.3.7(vue@3.3.7): + resolution: {integrity: sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==, tarball: https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.7.tgz} + peerDependencies: + vue: 3.3.7 + dependencies: + '@vue/compiler-ssr': 3.3.7 + '@vue/shared': 3.3.7 + vue: 3.3.7(typescript@5.3.3) + + /@vue/shared@3.3.13: + resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz} + + /@vue/shared@3.3.7: + resolution: {integrity: sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.3.7.tgz} + + /@vuepress/markdown@1.9.10: + resolution: {integrity: sha512-sXTLjeZzH8SQuAL5AEH0hhsMljjNJbzWbBvzaj5yQCCdf+3sp/dJ0kwnBSnQjFPPnzPg5t3tLKGUYHyW0KiKzA==, tarball: https://registry.npmmirror.com/@vuepress/markdown/-/markdown-1.9.10.tgz} + dependencies: + '@vuepress/shared-utils': 1.9.10 + markdown-it: 8.4.2 + markdown-it-anchor: 5.3.0(markdown-it@8.4.2) + markdown-it-chain: 1.3.0(markdown-it@8.4.2) + markdown-it-emoji: 1.4.0 + markdown-it-table-of-contents: 0.4.4 + prismjs: 1.29.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@vuepress/shared-utils@1.9.10: + resolution: {integrity: sha512-M9A3DocPih+V8dKK2Zg9FJQ/f3JZrYsdaM/vQ9F48l8bPlzxw5NvqXIYMK4kKcGEyerQNTWCudoCpLL5uiU0hg==, tarball: https://registry.npmmirror.com/@vuepress/shared-utils/-/shared-utils-1.9.10.tgz} + dependencies: + chalk: 2.4.2 + escape-html: 1.0.3 + fs-extra: 7.0.1 + globby: 9.2.0 + gray-matter: 4.0.3 + hash-sum: 1.0.2 + semver: 6.3.1 + toml: 3.0.0 + upath: 1.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@vueuse/core@10.7.0(vue@3.3.7): + resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==, tarball: https://registry.npmmirror.com/@vueuse/core/-/core-10.7.0.tgz} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.7.0 + '@vueuse/shared': 10.7.0(vue@3.3.7) + vue-demi: 0.14.6(vue@3.3.7) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@10.7.0: + resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==, tarball: https://registry.npmmirror.com/@vueuse/metadata/-/metadata-10.7.0.tgz} + dev: false + + /@vueuse/shared@10.7.0(vue@3.3.7): + resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==, tarball: https://registry.npmmirror.com/@vueuse/shared/-/shared-10.7.0.tgz} + dependencies: + vue-demi: 0.14.6(vue@3.3.7) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, tarball: https://registry.npmmirror.com/JSONStream/-/JSONStream-1.3.5.tgz} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, tarball: https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==, tarball: https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz} + engines: {node: '>=0.4.2'} + dev: false + + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.13.1 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz} + engines: {node: '>=6'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==, tarball: https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz} + dev: true + + /archive-type@4.0.0: + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==, tarball: https://registry.npmmirror.com/archive-type/-/archive-type-4.0.0.tgz} + engines: {node: '>=4'} + dependencies: + file-type: 4.4.0 + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, tarball: https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} + dependencies: + sprintf-js: 1.0.3 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==, tarball: https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz} + engines: {node: '>=0.10.0'} + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==, tarball: https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz} + engines: {node: '>=0.10.0'} + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, tarball: https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz} + engines: {node: '>=0.10.0'} + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==, tarball: https://registry.npmmirror.com/array-find-index/-/array-find-index-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, tarball: https://registry.npmmirror.com/array-ify/-/array-ify-1.0.0.tgz} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + + /array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==, tarball: https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==, tarball: https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz} + engines: {node: '>=0.10.0'} + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==, tarball: https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz} + engines: {node: '>=0.10.0'} + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==, tarball: https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, tarball: https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==, tarball: https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz} + engines: {node: '>=0.10.0'} + + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz} + engines: {node: '>= 4.5.0'} + hasBin: true + + /autoprefixer@9.8.8: + resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==, tarball: https://registry.npmmirror.com/autoprefixer/-/autoprefixer-9.8.8.tgz} + hasBin: true + dependencies: + browserslist: 4.22.2 + caniuse-lite: 1.0.30001571 + normalize-range: 0.1.2 + num2fraction: 1.2.2 + picocolors: 0.2.1 + postcss: 7.0.39 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + engines: {node: '>= 0.4'} + dev: true + + /axios@0.24.0: + resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==, tarball: https://registry.npmmirror.com/axios/-/axios-0.24.0.tgz} + dependencies: + follow-redirects: 1.15.2 + transitivePeerDependencies: + - debug + dev: false + + /b-tween@0.3.3: + resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==, tarball: https://registry.npmmirror.com/b-tween/-/b-tween-0.3.3.tgz} + dev: false + + /b-validate@1.4.4: + resolution: {integrity: sha512-E2tnSnxxKDyxP1G+TMTbVHA8XajfHHOJKeWm9YVRISSPtzTL7ZP/7tIYp01b+O83L5R/6i31+Su+vCOJBnQWFQ==, tarball: https://registry.npmmirror.com/b-validate/-/b-validate-1.4.4.tgz} + dev: false + + /bail@1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==, tarball: https://registry.npmmirror.com/bail/-/bail-1.0.5.tgz} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-2.0.0.tgz} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==, tarball: https://registry.npmmirror.com/base/-/base-0.11.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==, tarball: https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz} + engines: {node: '>=0.6'} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} + dev: true + + /bin-build@3.0.0: + resolution: {integrity: sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==, tarball: https://registry.npmmirror.com/bin-build/-/bin-build-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + decompress: 4.2.1 + download: 6.2.5 + execa: 0.7.0 + p-map-series: 1.0.0 + tempfile: 2.0.0 + dev: true + + /bin-check@4.1.0: + resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==, tarball: https://registry.npmmirror.com/bin-check/-/bin-check-4.1.0.tgz} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + executable: 4.1.1 + dev: true + + /bin-version-check@4.0.0: + resolution: {integrity: sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==, tarball: https://registry.npmmirror.com/bin-version-check/-/bin-version-check-4.0.0.tgz} + engines: {node: '>=6'} + dependencies: + bin-version: 3.1.0 + semver: 5.7.1 + semver-truncate: 1.1.2 + dev: true + + /bin-version@3.1.0: + resolution: {integrity: sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==, tarball: https://registry.npmmirror.com/bin-version/-/bin-version-3.1.0.tgz} + engines: {node: '>=6'} + dependencies: + execa: 1.0.0 + find-versions: 3.2.0 + dev: true + + /bin-wrapper@4.1.0: + resolution: {integrity: sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==, tarball: https://registry.npmmirror.com/bin-wrapper/-/bin-wrapper-4.1.0.tgz} + engines: {node: '>=6'} + dependencies: + bin-check: 4.1.0 + bin-version-check: 4.0.0 + download: 7.1.0 + import-lazy: 3.1.0 + os-filter-obj: 2.0.0 + pify: 4.0.1 + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + engines: {node: '>=8'} + dev: true + + /bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==, tarball: https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} + dev: true + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, tarball: https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, tarball: https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.22.2.tgz} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001571 + electron-to-chromium: 1.4.616 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==, tarball: https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz} + dev: true + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==, tarball: https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, tarball: https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz} + dev: true + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==, tarball: https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, tarball: https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==, tarball: https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + /cacheable-request@2.1.4: + resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==, tarball: https://registry.npmmirror.com/cacheable-request/-/cacheable-request-2.1.4.tgz} + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.1 + responselike: 1.0.2 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.1 + dev: true + + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==, tarball: https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz} + + /caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==, tarball: https://registry.npmmirror.com/caller-callsite/-/caller-callsite-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + callsites: 2.0.0 + dev: true + + /caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==, tarball: https://registry.npmmirror.com/caller-path/-/caller-path-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + caller-callsite: 2.0.0 + dev: true + + /callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==, tarball: https://registry.npmmirror.com/callsites/-/callsites-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /camelcase-keys@2.1.0: + resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + camelcase: 2.1.1 + map-obj: 1.0.1 + dev: true + + /camelcase-keys@4.2.0: + resolution: {integrity: sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz} + engines: {node: '>=4'} + dependencies: + camelcase: 4.1.0 + map-obj: 2.0.0 + quick-lru: 1.1.0 + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz} + engines: {node: '>=4'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001571: + resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz} + dev: true + + /caw@2.0.1: + resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==, tarball: https://registry.npmmirror.com/caw/-/caw-2.0.1.tgz} + engines: {node: '>=4'} + dependencies: + get-proxy: 2.1.0 + isurl: 1.0.0 + tunnel-agent: 0.6.0 + url-to-options: 1.0.1 + dev: true + + /ccount@1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==, tarball: https://registry.npmmirror.com/ccount/-/ccount-1.1.0.tgz} + dev: true + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, tarball: https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, tarball: https://registry.npmmirror.com/chalk/-/chalk-5.3.0.tgz} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-html4@1.1.4: + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==, tarball: https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz} + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz} + dev: true + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz} + dev: false + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, tarball: https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-4.0.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, tarball: https://registry.npmmirror.com/cli-truncate/-/cli-truncate-4.0.0.tgz} + engines: {node: '>=18'} + dependencies: + slice-ansi: 5.0.0 + string-width: 7.0.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, tarball: https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-regexp@1.0.1: + resolution: {integrity: sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==, tarball: https://registry.npmmirror.com/clone-regexp/-/clone-regexp-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-regexp: 1.0.0 + is-supported-regexp-flag: 1.0.1 + dev: true + + /clone-response@1.0.2: + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==, tarball: https://registry.npmmirror.com/clone-response/-/clone-response-1.0.2.tgz} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==, tarball: https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz} + engines: {node: '>=0.8'} + dev: true + + /codemirror@5.65.14: + resolution: {integrity: sha512-VSNugIBDGt0OU9gDjeVr6fNkoFQznrWEUdAApMlXQNbfE8gGO19776D6MwSqF/V/w/sDwonsQ0z7KmmI9guScg==, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-5.65.14.tgz} + dev: false + + /codemirror@6.0.1(@lezer/common@1.1.2): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} + dependencies: + '@codemirror/autocomplete': 6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2) + '@codemirror/commands': 6.3.2 + '@codemirror/language': 6.9.3 + '@codemirror/lint': 6.4.2 + '@codemirror/search': 6.5.5 + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + transitivePeerDependencies: + - '@lezer/common' + dev: false + + /collapse-white-space@1.0.6: + resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==, tarball: https://registry.npmmirror.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz} + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==, tarball: https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, tarball: https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, tarball: https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz} + dev: true + + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, tarball: https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz} + engines: {node: '>=16'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} + engines: {node: '>= 10'} + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} + engines: {node: '>= 12'} + dev: false + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, tarball: https://registry.npmmirror.com/compare-func/-/compare-func-2.0.0.tgz} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, tarball: https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz} + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz} + dev: false + + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==, tarball: https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, tarball: https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, tarball: https://registry.npmmirror.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz} + dev: true + + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==, tarball: https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /console-stream@0.1.1: + resolution: {integrity: sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==, tarball: https://registry.npmmirror.com/console-stream/-/console-stream-0.1.1.tgz} + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, tarball: https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, tarball: https://registry.npmmirror.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, tarball: https://registry.npmmirror.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, tarball: https://registry.npmmirror.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} + dev: true + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==, tarball: https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz} + engines: {node: '>=0.10.0'} + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} + dev: true + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, tarball: https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==, tarball: https://registry.npmmirror.com/cose-base/-/cose-base-1.0.3.tgz} + dependencies: + layout-base: 1.0.2 + dev: false + + /cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==, tarball: https://registry.npmmirror.com/cose-base/-/cose-base-2.2.0.tgz} + dependencies: + layout-base: 2.0.1 + dev: false + + /cosmiconfig-typescript-loader@5.0.0(@types/node@18.15.10)(cosmiconfig@8.3.6)(typescript@5.3.3): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==, tarball: https://registry.npmmirror.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + dependencies: + '@types/node': 18.15.10 + cosmiconfig: 8.3.6(typescript@5.3.3) + jiti: 1.21.0 + typescript: 5.3.3 + dev: true + + /cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz} + engines: {node: '>=4'} + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.3.3 + dev: true + + /crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, tarball: https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz} + dev: false + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==, tarball: https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==, tarball: https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz} + dev: false + + /css-functions-list@3.2.1: + resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.1.tgz} + engines: {node: '>=12 || >=16'} + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, tarball: https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.0.1 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.2.1.tgz} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, tarball: https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssfilter@0.0.10: + resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==, tarball: https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz} + dev: false + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, tarball: https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, tarball: https://registry.npmmirror.com/csso/-/csso-5.0.5.tgz} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz} + + /currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==, tarball: https://registry.npmmirror.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + array-find-index: 1.0.2 + dev: true + + /cwebp-bin@6.1.2: + resolution: {integrity: sha512-NLEZ/BVAl9g426hwUX/qrQ7b/EfQH7BS1tr+CzPo2EgDQbcdzmUVE+fIfsi64lsL638lWgzTEViMAL4pxV1GOg==, tarball: https://registry.npmmirror.com/cwebp-bin/-/cwebp-bin-6.1.2.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + dev: true + + /cytoscape-cose-bilkent@4.1.0(cytoscape@3.28.1): + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==, tarball: https://registry.npmmirror.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz} + peerDependencies: + cytoscape: ^3.2.0 + dependencies: + cose-base: 1.0.3 + cytoscape: 3.28.1 + dev: false + + /cytoscape-fcose@2.2.0(cytoscape@3.28.1): + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==, tarball: https://registry.npmmirror.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz} + peerDependencies: + cytoscape: ^3.2.0 + dependencies: + cose-base: 2.2.0 + cytoscape: 3.28.1 + dev: false + + /cytoscape@3.28.1: + resolution: {integrity: sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==, tarball: https://registry.npmmirror.com/cytoscape/-/cytoscape-3.28.1.tgz} + engines: {node: '>=0.10'} + dependencies: + heap: 0.2.7 + lodash: 4.17.21 + dev: false + + /d3-array@1.2.4: + resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==, tarball: https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz} + dev: false + + /d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==, tarball: https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz} + engines: {node: '>=12'} + dependencies: + internmap: 2.0.3 + dev: false + + /d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==, tarball: https://registry.npmmirror.com/d3-axis/-/d3-axis-3.0.0.tgz} + engines: {node: '>=12'} + dev: false + + /d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==, tarball: https://registry.npmmirror.com/d3-brush/-/d3-brush-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + dev: false + + /d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==, tarball: https://registry.npmmirror.com/d3-chord/-/d3-chord-3.0.1.tgz} + engines: {node: '>=12'} + dependencies: + d3-path: 3.1.0 + dev: false + + /d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, tarball: https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz} + engines: {node: '>=12'} + dev: false + + /d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==, tarball: https://registry.npmmirror.com/d3-contour/-/d3-contour-4.0.2.tgz} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: false + + /d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==, tarball: https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz} + engines: {node: '>=12'} + dependencies: + delaunator: 5.0.0 + dev: false + + /d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==, tarball: https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==, tarball: https://registry.npmmirror.com/d3-drag/-/d3-drag-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + dev: false + + /d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==, tarball: https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz} + engines: {node: '>=12'} + hasBin: true + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + dev: false + + /d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==, tarball: https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==, tarball: https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz} + engines: {node: '>=12'} + dependencies: + d3-dsv: 3.0.1 + dev: false + + /d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==, tarball: https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + dev: false + + /d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, tarball: https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz} + engines: {node: '>=12'} + dev: false + + /d3-geo@3.1.0: + resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==, tarball: https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: false + + /d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==, tarball: https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz} + engines: {node: '>=12'} + dev: false + + /d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, tarball: https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + dev: false + + /d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==, tarball: https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz} + dev: false + + /d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==, tarball: https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz} + engines: {node: '>=12'} + dev: false + + /d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==, tarball: https://registry.npmmirror.com/d3-polygon/-/d3-polygon-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==, tarball: https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==, tarball: https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==, tarball: https://registry.npmmirror.com/d3-sankey/-/d3-sankey-0.12.3.tgz} + dependencies: + d3-array: 1.2.4 + d3-shape: 1.3.7 + dev: false + + /d3-scale-chromatic@3.0.0: + resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==, tarball: https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: false + + /d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, tarball: https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + dev: false + + /d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==, tarball: https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz} + engines: {node: '>=12'} + dev: false + + /d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==, tarball: https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz} + dependencies: + d3-path: 1.0.9 + dev: false + + /d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==, tarball: https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-path: 3.1.0 + dev: false + + /d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, tarball: https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-time: 3.1.0 + dev: false + + /d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, tarball: https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: false + + /d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==, tarball: https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz} + engines: {node: '>=12'} + dev: false + + /d3-transition@3.0.1(d3-selection@3.0.0): + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==, tarball: https://registry.npmmirror.com/d3-transition/-/d3-transition-3.0.1.tgz} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + dev: false + + /d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==, tarball: https://registry.npmmirror.com/d3-zoom/-/d3-zoom-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + dev: false + + /d3@7.8.5: + resolution: {integrity: sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==, tarball: https://registry.npmmirror.com/d3/-/d3-7.8.5.tgz} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.0 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + dev: false + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==, tarball: https://registry.npmmirror.com/d/-/d-1.0.1.tgz} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: false + + /dagre-d3-es@7.0.10: + resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==, tarball: https://registry.npmmirror.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz} + dependencies: + d3: 7.8.5 + lodash-es: 4.17.21 + dev: false + + /danmu.js@1.1.13: + resolution: {integrity: sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==, tarball: https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.13.tgz} + dependencies: + event-emitter: 0.3.5 + dev: false + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==, tarball: https://registry.npmmirror.com/dargs/-/dargs-7.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, tarball: https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, tarball: https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, tarball: https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} + dependencies: + character-entities: 2.0.2 + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} + engines: {node: '>=0.10'} + + /decode-uri-component@0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.4.1.tgz} + engines: {node: '>=14.16'} + dev: false + + /decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, tarball: https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: true + + /decompress-tar@4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==, tarball: https://registry.npmmirror.com/decompress-tar/-/decompress-tar-4.1.1.tgz} + engines: {node: '>=4'} + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + dev: true + + /decompress-tarbz2@4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==, tarball: https://registry.npmmirror.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + dev: true + + /decompress-targz@4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==, tarball: https://registry.npmmirror.com/decompress-targz/-/decompress-targz-4.1.1.tgz} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + dev: true + + /decompress-unzip@4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==, tarball: https://registry.npmmirror.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz} + engines: {node: '>=4'} + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + dev: true + + /decompress@4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==, tarball: https://registry.npmmirror.com/decompress/-/decompress-4.2.1.tgz} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} + dev: true + + /deepmerge@1.5.2: + resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz} + engines: {node: '>=0.10.0'} + dev: false + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, tarball: https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, tarball: https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.1.1 + titleize: 3.0.0 + dev: true + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==, tarball: https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==, tarball: https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==, tarball: https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + + /delaunator@5.0.0: + resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==, tarball: https://registry.npmmirror.com/delaunator/-/delaunator-5.0.0.tgz} + dependencies: + robust-predicates: 3.0.2 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz} + engines: {node: '>=6'} + dev: false + + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, tarball: https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz} + engines: {node: '>=0.3.1'} + dev: false + + /dir-glob@2.2.2: + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz} + engines: {node: '>=4'} + dependencies: + path-type: 3.0.0 + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.4.0 + dev: true + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /dompurify@3.0.6: + resolution: {integrity: sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==, tarball: https://registry.npmmirror.com/dompurify/-/dompurify-3.0.6.tgz} + dev: false + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==, tarball: https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==, tarball: https://registry.npmmirror.com/domutils/-/domutils-3.0.1.tgz} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, tarball: https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /download@6.2.5: + resolution: {integrity: sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==, tarball: https://registry.npmmirror.com/download/-/download-6.2.5.tgz} + engines: {node: '>=4'} + dependencies: + caw: 2.0.1 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 5.2.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 7.1.0 + make-dir: 1.3.0 + p-event: 1.3.0 + pify: 3.0.0 + dev: true + + /download@7.1.0: + resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==, tarball: https://registry.npmmirror.com/download/-/download-7.1.0.tgz} + engines: {node: '>=6'} + dependencies: + archive-type: 4.0.0 + caw: 2.0.1 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 8.1.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 8.3.2 + make-dir: 1.3.0 + p-event: 2.3.1 + pify: 3.0.0 + dev: true + + /downloadjs@1.4.7: + resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==, tarball: https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz} + dev: false + + /draggabilly@2.4.1: + resolution: {integrity: sha512-HHHLPEPZqRXIDQDFRFdK7RONZausNlJ4WkA73ST7Z6O2HPWttxFHVwHo8nccuDLzXWwiVKRVuc6fTkW+CQA++A==, tarball: https://registry.npmmirror.com/draggabilly/-/draggabilly-2.4.1.tgz} + dependencies: + get-size: 2.0.3 + unidragger: 2.4.0 + dev: false + + /duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, tarball: https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz} + dev: true + + /echarts@5.4.3: + resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==, tarball: https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz} + dependencies: + tslib: 2.3.0 + zrender: 5.4.4 + dev: false + + /electron-to-chromium@1.4.616: + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz} + dev: true + + /elkjs@0.8.2: + resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==, tarball: https://registry.npmmirror.com/elkjs/-/elkjs-0.8.2.tgz} + dev: false + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.3.0.tgz} + dev: true + + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} + engines: {node: '>= 4'} + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve@5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==, tarball: https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz} + + /entities@2.1.0: + resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==, tarball: https://registry.npmmirror.com/entities/-/entities-2.1.0.tgz} + dev: false + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + dev: true + + /entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, tarball: https://registry.npmmirror.com/entities/-/entities-4.4.0.tgz} + engines: {node: '>=0.12'} + dev: true + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, tarball: https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz} + engines: {node: '>=6'} + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, tarball: https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: false + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, tarball: https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: false + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, tarball: https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz} + dependencies: + d: 1.0.1 + ext: 1.7.0 + dev: false + + /esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + engines: {node: '>=6'} + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + engines: {node: '>=10'} + dev: true + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==, tarball: https://registry.npmmirror.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + object.assign: 4.1.4 + object.entries: 1.1.6 + semver: 6.3.1 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, tarball: https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, tarball: https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.4 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, tarball: https://registry.npmmirror.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.12.0 + eslint: 8.56.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + fast-glob: 3.3.2 + get-tsconfig: 4.5.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, tarball: https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, tarball: https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==, tarball: https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.1.1 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.6 + dev: true + + /eslint-plugin-vue@9.19.2(eslint@8.56.0): + resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==, tarball: https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.13 + semver: 7.5.4 + vue-eslint-parser: 9.3.2(eslint@8.56.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.8.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, tarball: https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@1.2.5: + resolution: {integrity: sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==, tarball: https://registry.npmmirror.com/esprima/-/esprima-1.2.5.tgz} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} + engines: {node: '>=4'} + hasBin: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, tarball: https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz} + engines: {node: '>= 0.6'} + dev: true + + /ev-emitter@1.1.1: + resolution: {integrity: sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==, tarball: https://registry.npmmirror.com/ev-emitter/-/ev-emitter-1.1.1.tgz} + dev: false + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==, tarball: https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + dev: false + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz} + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz} + dev: true + + /exec-buffer@3.2.0: + resolution: {integrity: sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==, tarball: https://registry.npmmirror.com/exec-buffer/-/exec-buffer-3.2.0.tgz} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + p-finally: 1.0.0 + pify: 3.0.0 + rimraf: 2.7.1 + tempfile: 2.0.0 + dev: true + + /execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==, tarball: https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==, tarball: https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, tarball: https://registry.npmmirror.com/execa/-/execa-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, tarball: https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==, tarball: https://registry.npmmirror.com/execa/-/execa-7.1.1.tgz} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, tarball: https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /execall@1.0.0: + resolution: {integrity: sha512-/J0Q8CvOvlAdpvhfkD/WnTQ4H1eU0exze2nFGPj/RSC7jpQ0NkKe2r28T5eMkhEEs+fzepMZNy1kVRKNlC04nQ==, tarball: https://registry.npmmirror.com/execall/-/execall-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + clone-regexp: 1.0.1 + dev: true + + /executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==, tarball: https://registry.npmmirror.com/executable/-/executable-4.1.1.tgz} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, tarball: https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /ext-list@2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==, tarball: https://registry.npmmirror.com/ext-list/-/ext-list-2.2.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.52.0 + dev: true + + /ext-name@5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==, tarball: https://registry.npmmirror.com/ext-name/-/ext-name-5.0.0.tgz} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: true + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==, tarball: https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz} + dependencies: + type: 2.7.2 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, tarball: https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + dev: true + + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, tarball: https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz} + dev: true + + /fast-glob@2.2.7: + resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz} + engines: {node: '>=4.0.0'} + dependencies: + '@mrmlnc/readdir-enhanced': 2.2.1 + '@nodelib/fs.stat': 1.1.3 + glob-parent: 3.1.0 + is-glob: 4.0.3 + merge2: 1.4.1 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + dev: true + + /fast-xml-parser@4.1.3: + resolution: {integrity: sha512-LsNDahCiCcJPe8NO7HijcnukHB24tKbfDDA5IILx9dmW3Frb52lhbeX6MPNUSvyGNfav2VTYpJ/OqkRoVLrh2Q==, tarball: https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.1.3.tgz} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, tarball: https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + dependencies: + reusify: 1.0.4 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, tarball: https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz} + dependencies: + pend: 1.2.0 + dev: true + + /figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==, tarball: https://registry.npmmirror.com/figures/-/figures-1.7.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + + /file-entry-cache@4.0.0: + resolution: {integrity: sha512-AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA==, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-4.0.0.tgz} + engines: {node: '>=4'} + dependencies: + flat-cache: 2.0.1 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /file-entry-cache@7.0.2: + resolution: {integrity: sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-7.0.2.tgz} + engines: {node: '>=12.0.0'} + dependencies: + flat-cache: 3.2.0 + dev: true + + /file-type@10.11.0: + resolution: {integrity: sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==, tarball: https://registry.npmmirror.com/file-type/-/file-type-10.11.0.tgz} + engines: {node: '>=6'} + dev: true + + /file-type@12.4.2: + resolution: {integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==, tarball: https://registry.npmmirror.com/file-type/-/file-type-12.4.2.tgz} + engines: {node: '>=8'} + dev: true + + /file-type@3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==, tarball: https://registry.npmmirror.com/file-type/-/file-type-3.9.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /file-type@4.4.0: + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-4.4.0.tgz} + engines: {node: '>=4'} + dev: true + + /file-type@5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-5.2.0.tgz} + engines: {node: '>=4'} + dev: true + + /file-type@6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==, tarball: https://registry.npmmirror.com/file-type/-/file-type-6.2.0.tgz} + engines: {node: '>=4'} + dev: true + + /file-type@8.1.0: + resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==, tarball: https://registry.npmmirror.com/file-type/-/file-type-8.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /filename-reserved-regex@2.0.0: + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==, tarball: https://registry.npmmirror.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /filenamify@2.1.0: + resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==, tarball: https://registry.npmmirror.com/filenamify/-/filenamify-2.1.0.tgz} + engines: {node: '>=4'} + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /filter-obj@5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==, tarball: https://registry.npmmirror.com/filter-obj/-/filter-obj-5.1.0.tgz} + engines: {node: '>=14.16'} + dev: false + + /find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==, tarball: https://registry.npmmirror.com/find-up/-/find-up-1.1.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, tarball: https://registry.npmmirror.com/find-up/-/find-up-2.1.0.tgz} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, tarball: https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-versions@3.2.0: + resolution: {integrity: sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==, tarball: https://registry.npmmirror.com/find-versions/-/find-versions-3.2.0.tgz} + engines: {node: '>=6'} + dependencies: + semver-regex: 2.0.0 + dev: true + + /flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz} + engines: {node: '>=4'} + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==, tarball: https://registry.npmmirror.com/flatted/-/flatted-2.0.2.tgz} + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz} + dev: true + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==, tarball: https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz} + engines: {node: '>=0.10.0'} + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==, tarball: https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + + /from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: true + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz} + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@5.0.0: + resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-5.0.0.tgz} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + dev: true + + /generate-source-map@0.0.5: + resolution: {integrity: sha512-jqiE7f3FEaeMcjnMSEYLjMa39bdx+RrrdfhxdJpMm9S/8IugHF4vLQLZ9sxHylWyxpsBILukC/l/7B0/O0zhNg==, tarball: https://registry.npmmirror.com/generate-source-map/-/generate-source-map-0.0.5.tgz} + dependencies: + esprima: 1.2.5 + source-map: 0.1.43 + dev: false + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, tarball: https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz} + engines: {node: '>=18'} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz} + dependencies: + function-bind: 1.1.2 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-proxy@2.1.0: + resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==, tarball: https://registry.npmmirror.com/get-proxy/-/get-proxy-2.1.0.tgz} + engines: {node: '>=4'} + dependencies: + npm-conf: 1.1.3 + dev: true + + /get-size@2.0.3: + resolution: {integrity: sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==, tarball: https://registry.npmmirror.com/get-size/-/get-size-2.0.3.tgz} + dev: false + + /get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==, tarball: https://registry.npmmirror.com/get-stdin/-/get-stdin-4.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /get-stdin@6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==, tarball: https://registry.npmmirror.com/get-stdin/-/get-stdin-6.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /get-stream@2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-2.3.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + dev: true + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz} + engines: {node: '>=16'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /get-tsconfig@4.5.0: + resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.5.0.tgz} + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, tarball: https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz} + engines: {node: '>=0.10.0'} + + /gifsicle@5.2.0: + resolution: {integrity: sha512-vOIS3j0XoTCxq9pkGj43gEix82RkI5FveNgaFZutjbaui/HH+4fR8Y56dwXDuxYo8hR4xOo6/j2h1WHoQW6XLw==, tarball: https://registry.npmmirror.com/gifsicle/-/gifsicle-5.2.0.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + execa: 5.1.1 + logalot: 2.1.0 + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==, tarball: https://registry.npmmirror.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz} + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.3.0: + resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz} + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, tarball: https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, tarball: https://registry.npmmirror.com/globals/-/globals-13.20.0.tgz} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@10.0.2: + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==, tarball: https://registry.npmmirror.com/globby/-/globby-10.0.2.tgz} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@9.2.0: + resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==, tarball: https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz} + engines: {node: '>=6'} + dependencies: + '@types/glob': 7.2.0 + array-union: 1.0.2 + dir-glob: 2.2.2 + fast-glob: 2.2.7 + glob: 7.2.3 + ignore: 4.0.6 + pify: 4.0.1 + slash: 2.0.0 + transitivePeerDependencies: + - supports-color + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, tarball: https://registry.npmmirror.com/globjoin/-/globjoin-0.1.4.tgz} + dev: true + + /gonzales-pe@4.3.0: + resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==, tarball: https://registry.npmmirror.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz} + engines: {node: '>=0.6.0'} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /got@7.1.0: + resolution: {integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==, tarball: https://registry.npmmirror.com/got/-/got-7.1.0.tgz} + engines: {node: '>=4'} + dependencies: + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + is-plain-obj: 1.1.0 + is-retry-allowed: 1.2.0 + is-stream: 1.1.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + p-cancelable: 0.3.0 + p-timeout: 1.2.1 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 1.0.0 + url-to-options: 1.0.1 + dev: true + + /got@8.3.2: + resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==, tarball: https://registry.npmmirror.com/got/-/got-8.3.2.tgz} + engines: {node: '>=4'} + dependencies: + '@sindresorhus/is': 0.7.0 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + cacheable-request: 2.1.4 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.2.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 0.4.1 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + + /gradient-parser@1.0.2: + resolution: {integrity: sha512-gR6nY33xC9yJoH4wGLQtZQMXDi6RI3H37ERu7kQCVUzlXjNedpZM7xcA489Opwbq0BSGohtWGsWsntupmxelMg==, tarball: https://registry.npmmirror.com/gradient-parser/-/gradient-parser-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} + dev: true + + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, tarball: https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, tarball: https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + engines: {node: '>= 0.4'} + dev: true + + /has-symbol-support-x@1.4.2: + resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==, tarball: https://registry.npmmirror.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + engines: {node: '>= 0.4'} + dev: true + + /has-to-string-tag-x@1.4.1: + resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==, tarball: https://registry.npmmirror.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz} + dependencies: + has-symbol-support-x: 1.4.2 + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, tarball: https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==, tarball: https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, tarball: https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz} + engines: {node: '>=0.10.0'} + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==, tarball: https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.2 + dev: true + + /hash-sum@1.0.2: + resolution: {integrity: sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==, tarball: https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz} + dev: false + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} + hasBin: true + dev: true + + /heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==, tarball: https://registry.npmmirror.com/heap/-/heap-0.2.7.tgz} + dev: false + + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} + dev: false + + /highlight.js@11.9.0: + resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz} + engines: {node: '>=12.0.0'} + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-tags@2.0.0: + resolution: {integrity: sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} + engines: {node: '>=8'} + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /http-cache-semantics@3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz} + dev: true + + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz} + engines: {node: '>=14.18.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz} + engines: {node: '>=16.17.0'} + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + dev: true + + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==, tarball: https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz} + engines: {node: '>= 4'} + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /imagemin-gifsicle@7.0.0: + resolution: {integrity: sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA==, tarball: https://registry.npmmirror.com/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz} + engines: {node: '>=10'} + dependencies: + execa: 1.0.0 + gifsicle: 5.2.0 + is-gif: 3.0.0 + dev: true + + /imagemin-jpegtran@7.0.0: + resolution: {integrity: sha512-MJoyTCW8YjMJf56NorFE41SR/WkaGA3IYk4JgvMlRwguJEEd3PnP9UxA8Y2UWjquz8d+On3Ds/03ZfiiLS8xTQ==, tarball: https://registry.npmmirror.com/imagemin-jpegtran/-/imagemin-jpegtran-7.0.0.tgz} + engines: {node: '>=10'} + dependencies: + exec-buffer: 3.2.0 + is-jpg: 2.0.0 + jpegtran-bin: 5.0.2 + dev: true + + /imagemin-mozjpeg@9.0.0: + resolution: {integrity: sha512-TwOjTzYqCFRgROTWpVSt5UTT0JeCuzF1jswPLKALDd89+PmrJ2PdMMYeDLYZ1fs9cTovI9GJd68mRSnuVt691w==, tarball: https://registry.npmmirror.com/imagemin-mozjpeg/-/imagemin-mozjpeg-9.0.0.tgz} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + is-jpg: 2.0.0 + mozjpeg: 7.1.1 + dev: true + + /imagemin-optipng@8.0.0: + resolution: {integrity: sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A==, tarball: https://registry.npmmirror.com/imagemin-optipng/-/imagemin-optipng-8.0.0.tgz} + engines: {node: '>=10'} + dependencies: + exec-buffer: 3.2.0 + is-png: 2.0.0 + optipng-bin: 7.0.1 + dev: true + + /imagemin-pngquant@9.0.2: + resolution: {integrity: sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==, tarball: https://registry.npmmirror.com/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + is-png: 2.0.0 + is-stream: 2.0.1 + ow: 0.17.0 + pngquant-bin: 6.0.1 + dev: true + + /imagemin-svgo@9.0.0: + resolution: {integrity: sha512-uNgXpKHd99C0WODkrJ8OO/3zW3qjgS4pW7hcuII0RcHN3tnKxDjJWcitdVC/TZyfIqSricU8WfrHn26bdSW62g==, tarball: https://registry.npmmirror.com/imagemin-svgo/-/imagemin-svgo-9.0.0.tgz} + engines: {node: '>=10'} + dependencies: + is-svg: 4.4.0 + svgo: 2.8.0 + dev: true + + /imagemin-webp@6.1.0: + resolution: {integrity: sha512-i8ZluZV1pfQX9aVzmZ/VZh9KBSdPwUlp5VruAa9c30GZnX/nMl5n7h+oUMnI7Mg7+SUpu9mYBsw2nsYGUEllWQ==, tarball: https://registry.npmmirror.com/imagemin-webp/-/imagemin-webp-6.1.0.tgz} + engines: {node: '>=10'} + dependencies: + cwebp-bin: 6.1.2 + exec-buffer: 3.2.0 + is-cwebp-readable: 3.0.0 + dev: true + + /imagemin@7.0.1: + resolution: {integrity: sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==, tarball: https://registry.npmmirror.com/imagemin/-/imagemin-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + file-type: 12.4.2 + globby: 10.0.2 + graceful-fs: 4.2.11 + junk: 3.1.0 + make-dir: 3.1.0 + p-pipe: 3.1.0 + replace-ext: 1.0.1 + dev: true + + /immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, tarball: https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz} + dev: true + + /import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy@3.1.0: + resolution: {integrity: sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-3.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@2.1.0: + resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + repeating: 2.0.1 + dev: true + + /indent-string@3.2.0: + resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-3.2.0.tgz} + engines: {node: '>=4'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /indexes-of@1.0.1: + resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==, tarball: https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} + dev: true + + /insert-text-at-cursor@0.3.0: + resolution: {integrity: sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ==, tarball: https://registry.npmmirror.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz} + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, tarball: https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz} + engines: {node: '>=12'} + dev: false + + /into-stream@3.1.0: + resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==, tarball: https://registry.npmmirror.com/into-stream/-/into-stream-3.1.0.tgz} + engines: {node: '>=4'} + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==, tarball: https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==, tarball: https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz} + dev: true + + /is-alphanumeric@1.0.0: + resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==, tarball: https://registry.npmmirror.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + dev: true + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} + engines: {node: '>=4'} + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} + dependencies: + hasown: 2.0.0 + dev: true + + /is-cwebp-readable@3.0.0: + resolution: {integrity: sha512-bpELc7/Q1/U5MWHn4NdHI44R3jxk0h9ew9ljzabiRl70/UIjL/ZAqRMb52F5+eke/VC8yTiv4Ewryo1fPWidvA==, tarball: https://registry.npmmirror.com/is-cwebp-readable/-/is-cwebp-readable-3.0.0.tgz} + dependencies: + file-type: 10.11.0 + dev: true + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==, tarball: https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==, tarball: https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz} + dev: true + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==, tarball: https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==, tarball: https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + + /is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==, tarball: https://registry.npmmirror.com/is-directory/-/is-directory-0.3.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz} + engines: {node: '>=0.10.0'} + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + engines: {node: '>=0.10.0'} + + /is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==, tarball: https://registry.npmmirror.com/is-finite/-/is-finite-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz} + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + + /is-gif@3.0.0: + resolution: {integrity: sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==, tarball: https://registry.npmmirror.com/is-gif/-/is-gif-3.0.0.tgz} + engines: {node: '>=6'} + dependencies: + file-type: 10.11.0 + dev: true + + /is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} + dev: true + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, tarball: https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + + /is-jpg@2.0.0: + resolution: {integrity: sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg==, tarball: https://registry.npmmirror.com/is-jpg/-/is-jpg-2.0.0.tgz} + engines: {node: '>=6'} + dev: true + + /is-natural-number@4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==, tarball: https://registry.npmmirror.com/is-natural-number/-/is-natural-number-4.0.1.tgz} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, tarball: https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, tarball: https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-object@1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==, tarball: https://registry.npmmirror.com/is-object/-/is-object-1.0.2.tgz} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} + engines: {node: '>=0.10.0'} + + /is-png@2.0.0: + resolution: {integrity: sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==, tarball: https://registry.npmmirror.com/is-png/-/is-png-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==, tarball: https://registry.npmmirror.com/is-regexp/-/is-regexp-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-supported-regexp-flag@1.0.1: + resolution: {integrity: sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==, tarball: https://registry.npmmirror.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-svg@4.4.0: + resolution: {integrity: sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==, tarball: https://registry.npmmirror.com/is-svg/-/is-svg-4.4.0.tgz} + engines: {node: '>=6'} + dependencies: + fast-xml-parser: 4.1.3 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, tarball: https://registry.npmmirror.com/is-text-path/-/is-text-path-2.0.0.tgz} + engines: {node: '>=8'} + dependencies: + text-extensions: 2.4.0 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, tarball: https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} + dev: true + + /is-whitespace-character@1.0.4: + resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==, tarball: https://registry.npmmirror.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, tarball: https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz} + engines: {node: '>=0.10.0'} + + /is-word-character@1.0.4: + resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==, tarball: https://registry.npmmirror.com/is-word-character/-/is-word-character-1.0.4.tgz} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, tarball: https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==, tarball: https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} + engines: {node: '>=0.10.0'} + + /isurl@1.0.0: + resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==, tarball: https://registry.npmmirror.com/isurl/-/isurl-1.0.0.tgz} + engines: {node: '>= 4'} + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + dev: true + + /javascript-stringify@1.6.0: + resolution: {integrity: sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==, tarball: https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz} + dev: false + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, tarball: https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz} + hasBin: true + dev: true + + /jpegtran-bin@5.0.2: + resolution: {integrity: sha512-4FSmgIcr8d5+V6T1+dHbPZjaFH0ogVyP4UVsE+zri7S9YLO4qAT2our4IN3sW3STVgNTbqPermdIgt2XuAJ4EA==, tarball: https://registry.npmmirror.com/jpegtran-bin/-/jpegtran-bin-5.0.2.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + logalot: 2.1.0 + dev: true + + /jpegtran-bin@6.0.1: + resolution: {integrity: sha512-WohhhHhqe22de7PU8hXs6Sr5d4BAvkrfA93NR5tGlHyPnFLgvEW/bH+q7fv65JgoiQDsd7SBwwQ/OGRBivU3Mw==, tarball: https://registry.npmmirror.com/jpegtran-bin/-/jpegtran-bin-6.0.1.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==, tarball: https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + dev: true + + /js-tokens@8.0.1: + resolution: {integrity: sha512-3AGrZT6tuMm1ZWWn9mLXh7XMfi2YtiLNPALCVxBCiUVq0LD1OQMxV/AdS/s7rLJU5o9i/jBZw/N4vXXL5dm29A==, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-8.0.1.tgz} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsencrypt@3.3.2: + resolution: {integrity: sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==, tarball: https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.2.tgz} + dev: false + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz} + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, tarball: https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, tarball: https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, tarball: https://registry.npmmirror.com/jsonparse/-/jsonparse-1.3.1.tgz} + engines: {'0': node >= 0.2.0} + dev: true + + /junk@3.1.0: + resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==, tarball: https://registry.npmmirror.com/junk/-/junk-3.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /katex@0.13.24: + resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==, tarball: https://registry.npmmirror.com/katex/-/katex-0.13.24.tgz} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + + /keyv@3.0.0: + resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==, tarball: https://registry.npmmirror.com/keyv/-/keyv-3.0.0.tgz} + dependencies: + json-buffer: 3.0.0 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} + dependencies: + json-buffer: 3.0.1 + dev: true + + /khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==, tarball: https://registry.npmmirror.com/khroma/-/khroma-2.1.0.tgz} + dev: false + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz} + engines: {node: '>=0.10.0'} + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} + engines: {node: '>=0.10.0'} + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} + engines: {node: '>=6'} + dev: false + + /known-css-properties@0.11.0: + resolution: {integrity: sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w==, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.11.0.tgz} + dev: true + + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.29.0.tgz} + dev: true + + /layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==, tarball: https://registry.npmmirror.com/layout-base/-/layout-base-1.0.2.tgz} + dev: false + + /layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==, tarball: https://registry.npmmirror.com/layout-base/-/layout-base-2.0.1.tgz} + dev: false + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==, tarball: https://registry.npmmirror.com/less/-/less-4.2.0.tgz} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /leven@2.1.0: + resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==, tarball: https://registry.npmmirror.com/leven/-/leven-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==, tarball: https://registry.npmmirror.com/lilconfig/-/lilconfig-3.0.0.tgz} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + dev: true + + /linkify-it@2.2.0: + resolution: {integrity: sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==, tarball: https://registry.npmmirror.com/linkify-it/-/linkify-it-2.2.0.tgz} + dependencies: + uc.micro: 1.0.6 + dev: false + + /linkify-it@3.0.3: + resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==, tarball: https://registry.npmmirror.com/linkify-it/-/linkify-it-3.0.3.tgz} + dependencies: + uc.micro: 1.0.6 + dev: false + + /lint-staged@15.2.0: + resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==, tarball: https://registry.npmmirror.com/lint-staged/-/lint-staged-15.2.0.tgz} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.0 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@8.0.0: + resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==, tarball: https://registry.npmmirror.com/listr2/-/listr2-8.0.0.tgz} + engines: {node: '>=18.0.0'} + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.0 + wrap-ansi: 9.0.0 + dev: true + + /load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==, tarball: https://registry.npmmirror.com/load-json-file/-/load-json-file-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==, tarball: https://registry.npmmirror.com/load-json-file/-/load-json-file-4.0.0.tgz} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz} + engines: {node: '>=14'} + dev: true + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, tarball: https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} + dev: true + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==, tarball: https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, tarball: https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz} + dev: true + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, tarball: https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, tarball: https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz} + dev: true + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, tarball: https://registry.npmmirror.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, tarball: https://registry.npmmirror.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} + dev: true + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, tarball: https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz} + dev: true + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, tarball: https://registry.npmmirror.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + + /log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz} + engines: {node: '>=4'} + dependencies: + chalk: 2.4.2 + dev: true + + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==, tarball: https://registry.npmmirror.com/log-update/-/log-update-6.0.0.tgz} + engines: {node: '>=18'} + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + dev: true + + /logalot@2.1.0: + resolution: {integrity: sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==, tarball: https://registry.npmmirror.com/logalot/-/logalot-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + figures: 1.7.0 + squeak: 1.3.0 + dev: true + + /longest-streak@2.0.4: + resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-2.0.4.tgz} + dev: true + + /longest@1.0.1: + resolution: {integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==, tarball: https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /loud-rejection@1.6.0: + resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==, tarball: https://registry.npmmirror.com/loud-rejection/-/loud-rejection-1.6.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.7 + dev: true + + /lowercase-keys@1.0.0: + resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /lpad-align@1.1.2: + resolution: {integrity: sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==, tarball: https://registry.npmmirror.com/lpad-align/-/lpad-align-1.1.2.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + get-stdin: 4.0.1 + indent-string: 2.1.0 + longest: 1.0.1 + meow: 3.7.0 + dev: true + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + optional: true + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==, tarball: https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz} + engines: {node: '>=0.10.0'} + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@2.0.0: + resolution: {integrity: sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==, tarball: https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + + /markdown-escapes@1.0.4: + resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==, tarball: https://registry.npmmirror.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz} + dev: true + + /markdown-it-anchor@5.3.0(markdown-it@8.4.2): + resolution: {integrity: sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==, tarball: https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz} + peerDependencies: + markdown-it: '*' + dependencies: + markdown-it: 8.4.2 + dev: false + + /markdown-it-attrs@4.1.6(markdown-it@12.3.2): + resolution: {integrity: sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==, tarball: https://registry.npmmirror.com/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz} + engines: {node: '>=6'} + peerDependencies: + markdown-it: '>= 9.0.0' + dependencies: + markdown-it: 12.3.2 + dev: false + + /markdown-it-chain@1.3.0(markdown-it@8.4.2): + resolution: {integrity: sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==, tarball: https://registry.npmmirror.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz} + engines: {node: '>=6.9'} + peerDependencies: + markdown-it: '>=5.0.0' + dependencies: + markdown-it: 8.4.2 + webpack-chain: 4.12.1 + dev: false + + /markdown-it-container@3.0.0: + resolution: {integrity: sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==, tarball: https://registry.npmmirror.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz} + dev: false + + /markdown-it-emoji@1.4.0: + resolution: {integrity: sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==, tarball: https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz} + dev: false + + /markdown-it-table-of-contents@0.4.4: + resolution: {integrity: sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==, tarball: https://registry.npmmirror.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz} + engines: {node: '>6.4.0'} + dev: false + + /markdown-it@12.3.2: + resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==, tarball: https://registry.npmmirror.com/markdown-it/-/markdown-it-12.3.2.tgz} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 2.1.0 + linkify-it: 3.0.3 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + + /markdown-it@8.4.2: + resolution: {integrity: sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==, tarball: https://registry.npmmirror.com/markdown-it/-/markdown-it-8.4.2.tgz} + hasBin: true + dependencies: + argparse: 1.0.10 + entities: 1.1.2 + linkify-it: 2.2.0 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + + /markdown-table@1.1.3: + resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-1.1.3.tgz} + dev: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, tarball: https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} + dev: true + + /mdast-util-compact@1.0.4: + resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==, tarball: https://registry.npmmirror.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, tarball: https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.6 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, tarball: https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz} + dependencies: + '@types/mdast': 3.0.15 + dev: false + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.28.tgz} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz} + dev: true + + /mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==, tarball: https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz} + dev: false + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, tarball: https://registry.npmmirror.com/meow/-/meow-12.1.1.tgz} + engines: {node: '>=16.10'} + dev: true + + /meow@3.7.0: + resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==, tarball: https://registry.npmmirror.com/meow/-/meow-3.7.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.8 + normalize-package-data: 2.5.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + dev: true + + /meow@5.0.0: + resolution: {integrity: sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==, tarball: https://registry.npmmirror.com/meow/-/meow-5.0.0.tgz} + engines: {node: '>=6'} + dependencies: + camelcase-keys: 4.2.0 + decamelize-keys: 1.1.1 + loud-rejection: 1.6.0 + minimist-options: 3.0.2 + normalize-package-data: 2.5.0 + read-pkg-up: 3.0.0 + redent: 2.0.0 + trim-newlines: 2.0.0 + yargs-parser: 10.1.0 + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==, tarball: https://registry.npmmirror.com/meow/-/meow-8.1.2.tgz} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==, tarball: https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + engines: {node: '>= 8'} + + /mermaid@10.6.1: + resolution: {integrity: sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==, tarball: https://registry.npmmirror.com/mermaid/-/mermaid-10.6.1.tgz} + dependencies: + '@braintree/sanitize-url': 6.0.4 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.3 + cytoscape: 3.28.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.28.1) + cytoscape-fcose: 2.2.0(cytoscape@3.28.1) + d3: 7.8.5 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.10 + dayjs: 1.11.10 + dompurify: 3.0.6 + elkjs: 0.8.2 + khroma: 2.1.0 + lodash-es: 4.17.21 + mdast-util-from-markdown: 1.3.1 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.3.0 + ts-dedent: 2.2.0 + uuid: 9.0.1 + web-worker: 1.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, tarball: https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, tarball: https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, tarball: https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, tarball: https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, tarball: https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, tarball: https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, tarball: https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, tarball: https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, tarball: https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, tarball: https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, tarball: https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz} + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, tarball: https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, tarball: https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, tarball: https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, tarball: https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, tarball: https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, tarball: https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, tarball: https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, tarball: https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + engines: {node: '>= 0.6'} + dev: true + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, tarball: https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz} + engines: {node: '>=4'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, tarball: https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@3.0.2: + resolution: {integrity: sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-3.0.2.tgz} + engines: {node: '>= 4'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, tarball: https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz} + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==, tarball: https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} + hasBin: true + dependencies: + commander: 11.1.0 + dev: true + + /mozjpeg@7.1.1: + resolution: {integrity: sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A==, tarball: https://registry.npmmirror.com/mozjpeg/-/mozjpeg-7.1.1.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + dev: true + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, tarball: https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} + engines: {node: '>=4'} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + dev: true + + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==, tarball: https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, tarball: https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} + dev: true + + /needle@3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, tarball: https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.6.3 + sax: 1.2.4 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, tarball: https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz} + dev: false + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, tarball: https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz} + dev: true + + /non-layered-tidy-tree-layout@2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==, tarball: https://registry.npmmirror.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz} + dev: false + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.4 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, tarball: https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-selector@0.2.0: + resolution: {integrity: sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==, tarball: https://registry.npmmirror.com/normalize-selector/-/normalize-selector-0.2.0.tgz} + dev: true + + /normalize-url@2.0.1: + resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==, tarball: https://registry.npmmirror.com/normalize-url/-/normalize-url-2.0.1.tgz} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + query-string: 5.1.1 + sort-keys: 2.0.0 + dev: true + + /npm-conf@1.1.3: + resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==, tarball: https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz} + engines: {node: '>=4'} + dependencies: + config-chain: 1.1.13 + pify: 3.0.0 + dev: true + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} + dependencies: + boolbase: 1.0.0 + dev: true + + /num2fraction@1.2.2: + resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==, tarball: https://registry.npmmirror.com/num2fraction/-/num2fraction-1.2.2.tgz} + dev: true + + /number-precision@1.6.0: + resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==, tarball: https://registry.npmmirror.com/number-precision/-/number-precision-1.6.0.tgz} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==, tarball: https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==, tarball: https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.6.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, tarball: https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.1.tgz} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, tarball: https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, tarball: https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, tarball: https://registry.npmmirror.com/open/-/open-8.4.2.tgz} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, tarball: https://registry.npmmirror.com/open/-/open-9.1.0.tgz} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /optipng-bin@7.0.1: + resolution: {integrity: sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA==, tarball: https://registry.npmmirror.com/optipng-bin/-/optipng-bin-7.0.1.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + dev: true + + /os-filter-obj@2.0.0: + resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==, tarball: https://registry.npmmirror.com/os-filter-obj/-/os-filter-obj-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + arch: 2.2.0 + dev: true + + /ow@0.17.0: + resolution: {integrity: sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==, tarball: https://registry.npmmirror.com/ow/-/ow-0.17.0.tgz} + engines: {node: '>=10'} + dependencies: + type-fest: 0.11.0 + dev: true + + /p-cancelable@0.3.0: + resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==, tarball: https://registry.npmmirror.com/p-cancelable/-/p-cancelable-0.3.0.tgz} + engines: {node: '>=4'} + dev: true + + /p-cancelable@0.4.1: + resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==, tarball: https://registry.npmmirror.com/p-cancelable/-/p-cancelable-0.4.1.tgz} + engines: {node: '>=4'} + dev: true + + /p-event@1.3.0: + resolution: {integrity: sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==, tarball: https://registry.npmmirror.com/p-event/-/p-event-1.3.0.tgz} + engines: {node: '>=4'} + dependencies: + p-timeout: 1.2.1 + dev: true + + /p-event@2.3.1: + resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==, tarball: https://registry.npmmirror.com/p-event/-/p-event-2.3.1.tgz} + engines: {node: '>=6'} + dependencies: + p-timeout: 2.0.1 + dev: true + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, tarball: https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /p-is-promise@1.1.0: + resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==, tarball: https://registry.npmmirror.com/p-is-promise/-/p-is-promise-1.1.0.tgz} + engines: {node: '>=4'} + dev: true + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-1.3.0.tgz} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map-series@1.0.0: + resolution: {integrity: sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==, tarball: https://registry.npmmirror.com/p-map-series/-/p-map-series-1.0.0.tgz} + engines: {node: '>=4'} + dependencies: + p-reduce: 1.0.0 + dev: true + + /p-pipe@3.1.0: + resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==, tarball: https://registry.npmmirror.com/p-pipe/-/p-pipe-3.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /p-reduce@1.0.0: + resolution: {integrity: sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==, tarball: https://registry.npmmirror.com/p-reduce/-/p-reduce-1.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /p-timeout@1.2.1: + resolution: {integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==, tarball: https://registry.npmmirror.com/p-timeout/-/p-timeout-1.2.1.tgz} + engines: {node: '>=4'} + dependencies: + p-finally: 1.0.0 + dev: true + + /p-timeout@2.0.1: + resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==, tarball: https://registry.npmmirror.com/p-timeout/-/p-timeout-2.0.1.tgz} + engines: {node: '>=4'} + dependencies: + p-finally: 1.0.0 + dev: true + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, tarball: https://registry.npmmirror.com/p-try/-/p-try-1.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, tarball: https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} + engines: {node: '>=6'} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-entities@1.2.2: + resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-1.2.2.tgz} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-2.2.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + error-ex: 1.3.2 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, tarball: https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz} + engines: {node: '>= 0.10'} + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==, tarball: https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz} + engines: {node: '>=0.10.0'} + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz} + dev: true + + /path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==, tarball: https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz} + + /path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + pinkie-promise: 2.0.1 + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + engines: {node: '>=0.10.0'} + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, tarball: https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, tarball: https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + dev: true + + /path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==, tarball: https://registry.npmmirror.com/path-type/-/path-type-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==, tarball: https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==, tarball: https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz} + dev: true + + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, tarball: https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz} + dev: true + + /picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, tarball: https://registry.npmmirror.com/pidtree/-/pidtree-0.6.0.tgz} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, tarball: https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, tarball: https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} + engines: {node: '>=4'} + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, tarball: https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz} + engines: {node: '>=6'} + + /pinia@2.1.7(typescript@5.3.3)(vue@3.3.7): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 5.3.3 + vue: 3.3.7(typescript@5.3.3) + vue-demi: 0.14.6(vue@3.3.7) + dev: false + + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==, tarball: https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==, tarball: https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /pngquant-bin@6.0.1: + resolution: {integrity: sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==, tarball: https://registry.npmmirror.com/pngquant-bin/-/pngquant-bin-6.0.1.tgz} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + bin-build: 3.0.0 + bin-wrapper: 4.1.0 + execa: 4.1.0 + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==, tarball: https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz} + engines: {node: '>=0.10.0'} + + /postcss-html@0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==, tarball: https://registry.npmmirror.com/postcss-html/-/postcss-html-0.36.0.tgz} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + dependencies: + htmlparser2: 3.10.1 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss@5.2.18) + dev: true + + /postcss-html@1.5.0: + resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==, tarball: https://registry.npmmirror.com/postcss-html/-/postcss-html-1.5.0.tgz} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.2 + js-tokens: 8.0.1 + postcss: 8.4.32 + postcss-safe-parser: 6.0.0(postcss@8.4.32) + dev: true + + /postcss-jsx@0.36.4(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==, tarball: https://registry.npmmirror.com/postcss-jsx/-/postcss-jsx-0.36.4.tgz} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + dependencies: + '@babel/core': 7.23.6 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss@5.2.18) + transitivePeerDependencies: + - supports-color + dev: true + + /postcss-less@3.1.4: + resolution: {integrity: sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==, tarball: https://registry.npmmirror.com/postcss-less/-/postcss-less-3.1.4.tgz} + engines: {node: '>=6.14.4'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-markdown@0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39): + resolution: {integrity: sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==, tarball: https://registry.npmmirror.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + dependencies: + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss@5.2.18) + remark: 10.0.1 + unist-util-find-all-after: 1.0.5 + dev: true + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-reporter@6.0.1: + resolution: {integrity: sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==, tarball: https://registry.npmmirror.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz} + engines: {node: '>=6'} + dependencies: + chalk: 2.4.2 + lodash: 4.17.21 + log-symbols: 2.2.0 + postcss: 7.0.39 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==, tarball: https://registry.npmmirror.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz} + dev: true + + /postcss-safe-parser@4.0.2: + resolution: {integrity: sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz} + engines: {node: '>=6.0.0'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.32): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.32 + dev: true + + /postcss-safe-parser@7.0.0(postcss@8.4.32): + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.32 + dev: true + + /postcss-sass@0.3.5: + resolution: {integrity: sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==, tarball: https://registry.npmmirror.com/postcss-sass/-/postcss-sass-0.3.5.tgz} + dependencies: + gonzales-pe: 4.3.0 + postcss: 7.0.39 + dev: true + + /postcss-scss@2.1.1: + resolution: {integrity: sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==, tarball: https://registry.npmmirror.com/postcss-scss/-/postcss-scss-2.1.1.tgz} + engines: {node: '>=6.0.0'} + dependencies: + postcss: 7.0.39 + dev: true + + /postcss-selector-parser@3.1.2: + resolution: {integrity: sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz} + engines: {node: '>=8'} + dependencies: + dot-prop: 5.3.0 + indexes-of: 1.0.1 + uniq: 1.0.1 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-sorting@4.1.0: + resolution: {integrity: sha512-r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw==, tarball: https://registry.npmmirror.com/postcss-sorting/-/postcss-sorting-4.1.0.tgz} + engines: {node: '>=6.14.3'} + dependencies: + lodash: 4.17.21 + postcss: 7.0.39 + dev: true + + /postcss-sorting@8.0.2(postcss@8.4.32): + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==, tarball: https://registry.npmmirror.com/postcss-sorting/-/postcss-sorting-8.0.2.tgz} + peerDependencies: + postcss: ^8.4.20 + dependencies: + postcss: 8.4.32 + dev: true + + /postcss-syntax@0.36.2(postcss-html@1.5.0)(postcss@5.2.18): + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==, tarball: https://registry.npmmirror.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz} + peerDependencies: + postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + dependencies: + postcss: 5.2.18 + postcss-html: 1.5.0 + dev: true + + /postcss-value-parser@3.3.1: + resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz} + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + dev: true + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==, tarball: https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==, tarball: https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz} + engines: {node: '>=6.0.0'} + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 + dev: true + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==, tarball: https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==, tarball: https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==, tarball: https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==, tarball: https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==, tarball: https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} + engines: {node: '>= 0.8.0'} + dev: true + + /prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, tarball: https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: true + + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==, tarball: https://registry.npmmirror.com/prettier/-/prettier-3.1.1.tgz} + engines: {node: '>=14'} + hasBin: true + dev: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz} + engines: {node: '>=6'} + dev: false + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + dev: true + + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, tarball: https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz} + dev: true + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, tarball: https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz} + requiresBuild: true + dev: true + optional: true + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, tarball: https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz} + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, tarball: https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} + engines: {node: '>=6'} + dev: true + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==, tarball: https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==, tarball: https://registry.npmmirror.com/query-string/-/query-string-5.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /query-string@8.1.0: + resolution: {integrity: sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw==, tarball: https://registry.npmmirror.com/query-string/-/query-string-8.1.0.tgz} + engines: {node: '>=14.16'} + dependencies: + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + dev: true + + /quick-lru@1.1.0: + resolution: {integrity: sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-1.1.0.tgz} + engines: {node: '>=4'} + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: true + + /read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@1.0.0: + resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==, tarball: https://registry.npmmirror.com/redent/-/redent-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + indent-string: 2.1.0 + strip-indent: 1.0.1 + dev: true + + /redent@2.0.0: + resolution: {integrity: sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==, tarball: https://registry.npmmirror.com/redent/-/redent-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + indent-string: 3.2.0 + strip-indent: 2.0.0 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==, tarball: https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + set-function-name: 2.0.1 + dev: true + + /remark-parse@6.0.3: + resolution: {integrity: sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-6.0.3.tgz} + dependencies: + collapse-white-space: 1.0.6 + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + is-word-character: 1.0.4 + markdown-escapes: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + trim: 0.0.1 + trim-trailing-lines: 1.1.4 + unherit: 1.1.3 + unist-util-remove-position: 1.1.4 + vfile-location: 2.0.6 + xtend: 4.0.2 + dev: true + + /remark-stringify@6.0.4: + resolution: {integrity: sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==, tarball: https://registry.npmmirror.com/remark-stringify/-/remark-stringify-6.0.4.tgz} + dependencies: + ccount: 1.1.0 + is-alphanumeric: 1.0.0 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + longest-streak: 2.0.4 + markdown-escapes: 1.0.4 + markdown-table: 1.1.3 + mdast-util-compact: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + stringify-entities: 1.3.2 + unherit: 1.1.3 + xtend: 4.0.2 + dev: true + + /remark@10.0.1: + resolution: {integrity: sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==, tarball: https://registry.npmmirror.com/remark/-/remark-10.0.1.tgz} + dependencies: + remark-parse: 6.0.3 + remark-stringify: 6.0.4 + unified: 7.1.0 + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==, tarball: https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz} + engines: {node: '>=0.10.0'} + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, tarball: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz} + engines: {node: '>=0.10'} + + /repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==, tarball: https://registry.npmmirror.com/repeating/-/repeating-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-finite: 1.1.0 + dev: true + + /replace-ext@1.0.0: + resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==, tarball: https://registry.npmmirror.com/replace-ext/-/replace-ext-1.0.0.tgz} + engines: {node: '>= 0.10'} + dev: true + + /replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==, tarball: https://registry.npmmirror.com/replace-ext/-/replace-ext-1.0.1.tgz} + engines: {node: '>= 0.10'} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==, tarball: https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} + dev: false + + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==, tarball: https://registry.npmmirror.com/resolve-global/-/resolve-global-1.0.0.tgz} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==, tarball: https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz} + deprecated: https://github.com/lydell/resolve-url#deprecated + + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==, tarball: https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz} + dependencies: + lowercase-keys: 1.0.1 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-4.0.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, tarball: https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz} + engines: {node: '>=0.12'} + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, tarball: https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz} + dev: true + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==, tarball: https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz} + dev: false + + /rollup-plugin-visualizer@5.11.0(rollup@4.9.1): + resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==, tarball: https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.11.0.tgz} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 4.9.1 + source-map: 0.7.4 + yargs: 17.7.1 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==, tarball: https://registry.npmmirror.com/rollup/-/rollup-4.9.1.tgz} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.1 + '@rollup/rollup-android-arm64': 4.9.1 + '@rollup/rollup-darwin-arm64': 4.9.1 + '@rollup/rollup-darwin-x64': 4.9.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 + '@rollup/rollup-linux-arm64-musl': 4.9.1 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-musl': 4.9.1 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 + '@rollup/rollup-win32-x64-msvc': 4.9.1 + fsevents: 2.3.2 + dev: true + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, tarball: https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz} + dev: false + + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==, tarball: https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz} + dependencies: + ret: 0.1.15 + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + requiresBuild: true + + /sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==, tarball: https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.4 + source-map-js: 1.0.2 + dev: true + + /sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, tarball: https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} + requiresBuild: true + dev: true + optional: true + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, tarball: https://registry.npmmirror.com/section-matter/-/section-matter-1.0.0.tgz} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + + /seek-bzip@1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==, tarball: https://registry.npmmirror.com/seek-bzip/-/seek-bzip-1.0.6.tgz} + hasBin: true + dependencies: + commander: 2.20.3 + dev: true + + /semver-regex@2.0.0: + resolution: {integrity: sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==, tarball: https://registry.npmmirror.com/semver-regex/-/semver-regex-2.0.0.tgz} + engines: {node: '>=6'} + dev: true + + /semver-truncate@1.1.2: + resolution: {integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==, tarball: https://registry.npmmirror.com/semver-truncate/-/semver-truncate-1.1.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + semver: 5.7.1 + dev: true + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, tarball: https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==, tarball: https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz} + engines: {node: '>=14'} + dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==, tarball: https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz} + engines: {node: '>=6'} + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.0.tgz} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==, tarball: https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==, tarball: https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, tarball: https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + /sort-keys-length@1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==, tarball: https://registry.npmmirror.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + sort-keys: 1.1.2 + dev: true + + /sort-keys@1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==, tarball: https://registry.npmmirror.com/sort-keys/-/sort-keys-1.1.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /sort-keys@2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==, tarball: https://registry.npmmirror.com/sort-keys/-/sort-keys-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /sortablejs@1.15.1: + resolution: {integrity: sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ==, tarball: https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + engines: {node: '>=0.10.0'} + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==, tarball: https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + /source-map@0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.1.43.tgz} + engines: {node: '>=0.8.0'} + dependencies: + amdefine: 1.0.1 + dev: false + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + engines: {node: '>=0.10.0'} + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} + engines: {node: '>= 8'} + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.13 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, tarball: https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, tarball: https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 + dev: true + + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==, tarball: https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz} + dev: true + + /specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==, tarball: https://registry.npmmirror.com/specificity/-/specificity-0.4.1.tgz} + hasBin: true + dev: true + + /split-on-first@3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==, tarball: https://registry.npmmirror.com/split-on-first/-/split-on-first-3.0.0.tgz} + engines: {node: '>=12'} + dev: false + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==, tarball: https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==, tarball: https://registry.npmmirror.com/split2/-/split2-3.2.2.tgz} + dependencies: + readable-stream: 3.6.2 + dev: true + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, tarball: https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz} + engines: {node: '>= 10.x'} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, tarball: https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz} + + /squeak@1.3.0: + resolution: {integrity: sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==, tarball: https://registry.npmmirror.com/squeak/-/squeak-1.3.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + chalk: 1.1.3 + console-stream: 0.1.1 + lpad-align: 1.1.2 + dev: true + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, tarball: https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /state-toggle@1.0.3: + resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==, tarball: https://registry.npmmirror.com/state-toggle/-/state-toggle-1.0.3.tgz} + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==, tarball: https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, tarball: https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==, tarball: https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==, tarball: https://registry.npmmirror.com/string-width/-/string-width-7.0.0.tgz} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@1.3.2: + resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==, tarball: https://registry.npmmirror.com/stringify-entities/-/stringify-entities-1.3.2.tgz} + dependencies: + character-entities-html4: 1.1.4 + character-entities-legacy: 1.1.4 + is-alphanumerical: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, tarball: https://registry.npmmirror.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: false + + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==, tarball: https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, tarball: https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /strip-dirs@2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==, tarball: https://registry.npmmirror.com/strip-dirs/-/strip-dirs-2.1.0.tgz} + dependencies: + is-natural-number: 4.0.1 + dev: true + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, tarball: https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /strip-indent@1.0.1: + resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-1.0.1.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + get-stdin: 4.0.1 + dev: true + + /strip-indent@2.0.0: + resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + engines: {node: '>=8'} + dev: true + + /strip-outer@1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==, tarball: https://registry.npmmirror.com/strip-outer/-/strip-outer-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, tarball: https://registry.npmmirror.com/strnum/-/strnum-1.0.5.tgz} + dev: true + + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, tarball: https://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} + dev: false + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} + dev: true + + /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@16.0.2): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==, tarball: https://registry.npmmirror.com/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-config-prettier@9.0.5(stylelint@16.0.2): + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==, tarball: https://registry.npmmirror.com/stylelint-config-prettier/-/stylelint-config-prettier-9.0.5.tgz} + engines: {node: '>= 12'} + hasBin: true + peerDependencies: + stylelint: '>= 11.x < 15' + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-config-rational-order@0.1.2: + resolution: {integrity: sha512-Qo7ZQaihCwTqijfZg4sbdQQHtugOX/B1/fYh018EiDZHW+lkqH9uHOnsDwDPGZrYJuB6CoyI7MZh2ecw2dOkew==, tarball: https://registry.npmmirror.com/stylelint-config-rational-order/-/stylelint-config-rational-order-0.1.2.tgz} + dependencies: + stylelint: 9.10.1 + stylelint-order: 2.2.1(stylelint@9.10.1) + transitivePeerDependencies: + - supports-color + dev: true + + /stylelint-config-recommended-vue@1.5.0(postcss-html@1.5.0)(stylelint@16.0.2): + resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==, tarball: https://registry.npmmirror.com/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.5.0.tgz} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + semver: 7.5.4 + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@16.0.2) + stylelint-config-recommended: 13.0.0(stylelint@16.0.2) + dev: true + + /stylelint-config-recommended@13.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-config-recommended@14.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint-config-standard@35.0.0(stylelint@16.0.2): + resolution: {integrity: sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==, tarball: https://registry.npmmirror.com/stylelint-config-standard/-/stylelint-config-standard-35.0.0.tgz} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.0 + dependencies: + stylelint: 16.0.2(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.0.2) + dev: true + + /stylelint-order@2.2.1(stylelint@9.10.1): + resolution: {integrity: sha512-019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg==, tarball: https://registry.npmmirror.com/stylelint-order/-/stylelint-order-2.2.1.tgz} + engines: {node: '>=6'} + peerDependencies: + stylelint: ^9.10.1 || ^10.0.0 + dependencies: + lodash: 4.17.21 + postcss: 7.0.39 + postcss-sorting: 4.1.0 + stylelint: 9.10.1 + dev: true + + /stylelint-order@6.0.4(stylelint@16.0.2): + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==, tarball: https://registry.npmmirror.com/stylelint-order/-/stylelint-order-6.0.4.tgz} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + dependencies: + postcss: 8.4.32 + postcss-sorting: 8.0.2(postcss@8.4.32) + stylelint: 16.0.2(typescript@5.3.3) + dev: true + + /stylelint@16.0.2(typescript@5.3.3): + resolution: {integrity: sha512-SxA/rg3VWxdoHZlW0nmVueWO1E7TAKW4W6mmA3iTxxEF9bIeQdFZu2oiBlQYyNe1pGnOamOqo2XYnI7cs5Bgow==, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-16.0.2.tgz} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.3.3) + css-functions-list: 3.2.1 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 7.0.2 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.29.0 + mathml-tag-names: 2.1.3 + meow: 12.1.1 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.32 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 7.0.0(postcss@8.4.32) + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /stylelint@9.10.1: + resolution: {integrity: sha512-9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ==, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-9.10.1.tgz} + engines: {node: '>=6'} + hasBin: true + dependencies: + autoprefixer: 9.8.8 + balanced-match: 1.0.2 + chalk: 2.4.2 + cosmiconfig: 5.2.1 + debug: 4.3.4 + execall: 1.0.0 + file-entry-cache: 4.0.0 + get-stdin: 6.0.0 + global-modules: 2.0.0 + globby: 9.2.0 + globjoin: 0.1.4 + html-tags: 2.0.0 + ignore: 5.3.0 + import-lazy: 3.1.0 + imurmurhash: 0.1.4 + known-css-properties: 0.11.0 + leven: 2.1.0 + lodash: 4.17.21 + log-symbols: 2.2.0 + mathml-tag-names: 2.1.3 + meow: 5.0.0 + micromatch: 3.1.10 + normalize-selector: 0.2.0 + pify: 4.0.1 + postcss: 7.0.39 + postcss-html: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39) + postcss-jsx: 0.36.4(postcss-syntax@0.36.2)(postcss@7.0.39) + postcss-less: 3.1.4 + postcss-markdown: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39) + postcss-media-query-parser: 0.2.3 + postcss-reporter: 6.0.1 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 4.0.2 + postcss-sass: 0.3.5 + postcss-scss: 2.1.1 + postcss-selector-parser: 3.1.2 + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss@5.2.18) + postcss-value-parser: 3.3.1 + resolve-from: 4.0.0 + signal-exit: 3.0.7 + slash: 2.0.0 + specificity: 0.4.1 + string-width: 3.1.0 + style-search: 0.1.0 + sugarss: 2.0.0 + svg-tags: 1.0.0 + table: 5.4.6 + transitivePeerDependencies: + - supports-color + dev: true + + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} + dev: false + + /sugarss@2.0.0: + resolution: {integrity: sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==, tarball: https://registry.npmmirror.com/sugarss/-/sugarss-2.0.0.tgz} + dependencies: + postcss: 7.0.39 + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + engines: {node: '>= 0.4'} + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==, tarball: https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, tarball: https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==, tarball: https://registry.npmmirror.com/svgo/-/svgo-3.0.2.tgz} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /synckit@0.8.6: + resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==, tarball: https://registry.npmmirror.com/synckit/-/synckit-0.8.6.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + dev: true + + /table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==, tarball: https://registry.npmmirror.com/table/-/table-5.4.6.tgz} + engines: {node: '>=6.0.0'} + dependencies: + ajv: 6.12.6 + lodash: 4.17.21 + slice-ansi: 2.1.0 + string-width: 3.1.0 + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, tarball: https://registry.npmmirror.com/table/-/table-6.8.1.tgz} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} + engines: {node: '>=6'} + dev: true + + /tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==, tarball: https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: true + + /temp-dir@1.0.0: + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==, tarball: https://registry.npmmirror.com/temp-dir/-/temp-dir-1.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /tempfile@2.0.0: + resolution: {integrity: sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==, tarball: https://registry.npmmirror.com/tempfile/-/tempfile-2.0.0.tgz} + engines: {node: '>=4'} + dependencies: + temp-dir: 1.0.0 + uuid: 3.4.0 + dev: true + + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, tarball: https://registry.npmmirror.com/text-extensions/-/text-extensions-2.4.0.tgz} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==, tarball: https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} + dev: true + + /timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, tarball: https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, tarball: https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz} + dev: false + + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==, tarball: https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==, tarball: https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==, tarball: https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} + dev: false + + /toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, tarball: https://registry.npmmirror.com/toml/-/toml-3.0.0.tgz} + dev: false + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==, tarball: https://registry.npmmirror.com/traverse/-/traverse-0.6.7.tgz} + dev: true + + /trim-newlines@1.0.0: + resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /trim-newlines@2.0.0: + resolution: {integrity: sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-2.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /trim-repeated@1.0.0: + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==, tarball: https://registry.npmmirror.com/trim-repeated/-/trim-repeated-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /trim-trailing-lines@1.1.4: + resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==, tarball: https://registry.npmmirror.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz} + dev: true + + /trim@0.0.1: + resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==, tarball: https://registry.npmmirror.com/trim/-/trim-0.0.1.tgz} + deprecated: Use String.prototype.trim() instead + dev: true + + /trough@1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==, tarball: https://registry.npmmirror.com/trough/-/trough-1.0.5.tgz} + dev: true + + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, tarball: https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + + /ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==, tarball: https://registry.npmmirror.com/ts-dedent/-/ts-dedent-2.2.0.tgz} + engines: {node: '>=6.10'} + dev: false + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, tarball: https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.11.0: + resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.11.0.tgz} + engines: {node: '>=8'} + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} + engines: {node: '>=8'} + dev: true + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-3.13.1.tgz} + engines: {node: '>=14.16'} + dev: true + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==, tarball: https://registry.npmmirror.com/type/-/type-1.2.0.tgz} + dev: false + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==, tarball: https://registry.npmmirror.com/type/-/type-2.7.2.tgz} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, tarball: https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz} + engines: {node: '>=14.17'} + hasBin: true + + /uc.micro@1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, tarball: https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz} + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==, tarball: https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + dev: true + + /unherit@1.1.3: + resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==, tarball: https://registry.npmmirror.com/unherit/-/unherit-1.1.3.tgz} + dependencies: + inherits: 2.0.4 + xtend: 4.0.2 + dev: true + + /unidragger@2.4.0: + resolution: {integrity: sha512-MueZK2oXuGE6OAlGKIrSXK2zCq+8yb1QUZgqyTDCSJzvwYL0g2Llrad+TtoQTYxtFnNyxxSw0IMnKNIgEMia1w==, tarball: https://registry.npmmirror.com/unidragger/-/unidragger-2.4.0.tgz} + dependencies: + unipointer: 2.4.0 + dev: false + + /unified@7.1.0: + resolution: {integrity: sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==, tarball: https://registry.npmmirror.com/unified/-/unified-7.1.0.tgz} + dependencies: + '@types/unist': 2.0.6 + '@types/vfile': 3.0.2 + bail: 1.0.5 + extend: 3.0.2 + is-plain-obj: 1.1.0 + trough: 1.0.5 + vfile: 3.0.1 + x-is-string: 0.1.0 + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==, tarball: https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + /unipointer@2.4.0: + resolution: {integrity: sha512-VjzDLPjGK7aYpQKH7bnDZS8X4axF5AFU/LQi+NQe1oyEHfaz6lWKhaQ7n4o7vJ1iJ4i2T0quCIfrQM139p05Sw==, tarball: https://registry.npmmirror.com/unipointer/-/unipointer-2.4.0.tgz} + dependencies: + ev-emitter: 1.1.1 + dev: false + + /uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==, tarball: https://registry.npmmirror.com/uniq/-/uniq-1.0.1.tgz} + dev: true + + /unist-util-find-all-after@1.0.5: + resolution: {integrity: sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==, tarball: https://registry.npmmirror.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz} + dependencies: + unist-util-is: 3.0.0 + dev: true + + /unist-util-is@3.0.0: + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==, tarball: https://registry.npmmirror.com/unist-util-is/-/unist-util-is-3.0.0.tgz} + dev: true + + /unist-util-remove-position@1.1.4: + resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==, tarball: https://registry.npmmirror.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /unist-util-stringify-position@1.1.2: + resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz} + dev: true + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz} + dependencies: + '@types/unist': 2.0.6 + + /unist-util-visit-parents@2.1.2: + resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==, tarball: https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz} + dependencies: + unist-util-is: 3.0.0 + dev: true + + /unist-util-visit@1.4.1: + resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==, tarball: https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz} + dependencies: + unist-util-visit-parents: 2.1.2 + dev: true + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} + engines: {node: '>= 4.0.0'} + dev: false + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} + engines: {node: '>= 10.0.0'} + dev: true + + /unplugin-vue-components@0.26.0(rollup@4.9.1)(vue@3.3.7): + resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==, tarball: https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.3.2 + local-pkg: 0.4.3 + magic-string: 0.30.5 + minimatch: 9.0.3 + resolve: 1.22.4 + unplugin: 1.4.0 + vue: 3.3.7(typescript@5.3.3) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin@1.4.0: + resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==, tarball: https://registry.npmmirror.com/unplugin/-/unplugin-1.4.0.tgz} + dependencies: + acorn: 8.10.0 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==, tarball: https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, tarball: https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==, tarball: https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz} + engines: {node: '>=4'} + dev: false + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + dependencies: + punycode: 2.3.0 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==, tarball: https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz} + deprecated: Please see https://github.com/lydell/urix#deprecated + + /url-parse-lax@1.0.0: + resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + prepend-http: 1.0.4 + dev: true + + /url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: true + + /url-to-options@1.0.1: + resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==, tarball: https://registry.npmmirror.com/url-to-options/-/url-to-options-1.0.1.tgz} + engines: {node: '>= 4'} + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==, tarball: https://registry.npmmirror.com/use/-/use-3.1.1.tgz} + engines: {node: '>=0.10.0'} + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + dev: true + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, tarball: https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, tarball: https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz} + hasBin: true + dev: false + + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, tarball: https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + + /v-viewer@3.0.11(vue@3.3.7): + resolution: {integrity: sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==, tarball: https://registry.npmmirror.com/v-viewer/-/v-viewer-3.0.11.tgz} + peerDependencies: + vue: ^3.0.0 + dependencies: + lodash: 4.17.21 + viewerjs: 1.11.6 + vue: 3.3.7(typescript@5.3.3) + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vant@3.6.12(vue@3.3.7): + resolution: {integrity: sha512-fLzwhpV0ZPQqxrTx6RU8mJVUqP7DSkpdXNeByKubp+O9vKYGcWRX9wFdEwApyy7qLZLLu+rU1Jw52d6lktPL4w==, tarball: https://registry.npmmirror.com/vant/-/vant-3.6.12.tgz} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vant/icons': 1.8.0 + '@vant/popperjs': 1.3.0 + '@vant/use': 1.5.2(vue@3.3.7) + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} + engines: {node: '>= 0.8'} + dev: true + + /vfile-location@2.0.6: + resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-2.0.6.tgz} + dev: true + + /vfile-message@1.1.1: + resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-1.1.1.tgz} + dependencies: + unist-util-stringify-position: 1.1.2 + dev: true + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 3.0.3 + dev: true + + /vfile@3.0.1: + resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==, tarball: https://registry.npmmirror.com/vfile/-/vfile-3.0.1.tgz} + dependencies: + is-buffer: 2.0.5 + replace-ext: 1.0.0 + unist-util-stringify-position: 1.1.2 + vfile-message: 1.1.1 + dev: true + + /viewerjs@1.11.6: + resolution: {integrity: sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==, tarball: https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz} + dev: false + + /vite-plugin-compression@0.5.1(vite@4.5.1): + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==, tarball: https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz} + peerDependencies: + vite: '>=2.0.0' + dependencies: + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@4.5.1): + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, tarball: https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.21.3 + eslint: 8.56.0 + rollup: 2.79.1 + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + dev: true + + /vite-plugin-imagemin@0.6.1(vite@4.5.1): + resolution: {integrity: sha512-cP7LDn8euPrji7WYtDoNQpJEB9nkMxJHm/A+QZnvMrrCSuyo/clpMy/T1v7suDXPBavsDiDdFdVQB5p7VGD2cg==, tarball: https://registry.npmmirror.com/vite-plugin-imagemin/-/vite-plugin-imagemin-0.6.1.tgz} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/imagemin': 7.0.1 + '@types/imagemin-gifsicle': 7.0.1 + '@types/imagemin-jpegtran': 5.0.1 + '@types/imagemin-mozjpeg': 8.0.1 + '@types/imagemin-optipng': 5.2.1 + '@types/imagemin-svgo': 10.0.2 + '@types/imagemin-webp': 7.0.0 + '@types/svgo': 2.6.4 + chalk: 4.1.2 + debug: 4.3.4 + esbuild: 0.14.54 + fs-extra: 10.1.0 + gifsicle: 5.2.0 + imagemin: 7.0.1 + imagemin-gifsicle: 7.0.0 + imagemin-jpegtran: 7.0.0 + imagemin-mozjpeg: 9.0.0 + imagemin-optipng: 8.0.0 + imagemin-pngquant: 9.0.2 + imagemin-svgo: 9.0.0 + imagemin-webp: 6.1.0 + jpegtran-bin: 6.0.1 + pathe: 0.2.0 + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.5.1): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==, tarball: https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-svg-loader@4.0.0: + resolution: {integrity: sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA==, tarball: https://registry.npmmirror.com/vite-svg-loader/-/vite-svg-loader-4.0.0.tgz} + dependencies: + '@vue/compiler-sfc': 3.3.13 + svgo: 3.0.2 + dev: true + + /vite@4.5.1(@types/node@18.15.10)(less@4.2.0)(sass@1.69.5): + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.1.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.15.10 + esbuild: 0.18.20 + less: 4.2.0 + postcss: 8.4.32 + rollup: 3.29.4 + sass: 1.69.5 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vue-codemirror@6.1.1(codemirror@6.0.1)(vue@3.3.7): + resolution: {integrity: sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==, tarball: https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-6.1.1.tgz} + peerDependencies: + codemirror: 6.x + vue: 3.x + dependencies: + '@codemirror/commands': 6.3.2 + '@codemirror/language': 6.9.3 + '@codemirror/state': 6.3.3 + '@codemirror/view': 6.22.3 + codemirror: 6.0.1(@lezer/common@1.1.2) + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-cropper@1.1.1: + resolution: {integrity: sha512-WsqKMpaBf9Osi1LQlE/5AKdD0nHWOy1asLXocaG8NomOWO07jiZi968+/PbMmnD0QbPJOumDQaGuGa13qys85A==, tarball: https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.1.1.tgz} + dev: false + + /vue-demi@0.13.11(vue@3.3.7): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-demi@0.14.6(vue@3.3.7): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-echarts@6.6.5(echarts@5.4.3)(vue@3.3.7): + resolution: {integrity: sha512-LO+jQrBu3OZMMp1O00VOdeU1Lnc1tqY1UFmTha8G5ntOsz7NxLYs3+S3l32E53dHdax+YlEh8ZWMHMZGAuELig==, tarball: https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.6.5.tgz} + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.5 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + echarts: 5.4.3 + resize-detector: 0.3.0 + vue: 3.3.7(typescript@5.3.3) + vue-demi: 0.13.11(vue@3.3.7) + dev: false + + /vue-eslint-parser@9.3.2(eslint@8.56.0): + resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.56.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-i18n@9.8.0(vue@3.3.7): + resolution: {integrity: sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==, tarball: https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.8.0.tgz} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.8.0 + '@intlify/shared': 9.8.0 + '@vue/devtools-api': 6.5.0 + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-json-pretty@2.3.0(vue@3.3.7): + resolution: {integrity: sha512-iBul6Xg7vZfMV2MQC/gGtzbyg8FLk6cJ8KG91f37UEkQyXqHg91VQJ24bDBXNVuOSP04BUKxWagD3V2N/WEy0g==, tarball: https://registry.npmmirror.com/vue-json-pretty/-/vue-json-pretty-2.3.0.tgz} + engines: {node: '>= 10.0.0', npm: '>= 5.0.0'} + peerDependencies: + vue: '>=3.0.0' + dependencies: + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-router@4.2.5(vue@3.3.7): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==, tarball: https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.0 + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==, tarball: https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.26(typescript@5.3.3): + resolution: {integrity: sha512-jMEJ4aqU/l1hdgmeExH5h1TFoN+hbho0A2ZAhHy53/947DGm7Qj/bpB85VpECOCwV00h7JYNVnvoD2ceOorB4Q==, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.26.tgz} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.26(typescript@5.3.3) + semver: 7.5.4 + typescript: 5.3.3 + dev: true + + /vue-types@4.2.1(vue@3.3.7): + resolution: {integrity: sha512-DNQZmJuOvovLUIp0BENRkdnZHbI0V4e2mNvjAZOAXKD56YGvRchtUYOXA/XqTxdv7Ng5SJLZqRKRpAhm5NLaPQ==, tarball: https://registry.npmmirror.com/vue-types/-/vue-types-4.2.1.tgz} + engines: {node: '>=12.16.0'} + peerDependencies: + vue: ^2.0.0 || ^3.0.0 + dependencies: + is-plain-object: 5.0.0 + vue: 3.3.7(typescript@5.3.3) + dev: false + + /vue3-colorpicker@2.2.3(@aesoper/normal-utils@0.1.5)(@popperjs/core@2.11.8)(@vueuse/core@10.7.0)(gradient-parser@1.0.2)(lodash-es@4.17.21)(tinycolor2@1.6.0)(vue-types@4.2.1)(vue@3.3.7): + resolution: {integrity: sha512-hGGH3gfXU8nv7FzSy+xCslOGPCH7YgLxsuY+pQ/GN8SwVZYAd5BXDNt1/8DF+A3wihZ8Whow9XIWwrDhAlJW1Q==, tarball: https://registry.npmmirror.com/vue3-colorpicker/-/vue3-colorpicker-2.2.3.tgz} + peerDependencies: + '@aesoper/normal-utils': ^0.1.5 + '@popperjs/core': ^2.11.8 + '@vueuse/core': ^10.1.2 + gradient-parser: ^1.0.2 + lodash-es: ^4.17.21 + tinycolor2: ^1.4.2 + vue: ^3.2.6 + vue-types: ^4.1.0 + dependencies: + '@aesoper/normal-utils': 0.1.5 + '@popperjs/core': 2.11.8 + '@vueuse/core': 10.7.0(vue@3.3.7) + gradient-parser: 1.0.2 + lodash-es: 4.17.21 + tinycolor2: 1.6.0 + vue: 3.3.7(typescript@5.3.3) + vue-types: 4.2.1(vue@3.3.7) + dev: false + + /vue@3.3.7(typescript@5.3.3): + resolution: {integrity: sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==, tarball: https://registry.npmmirror.com/vue/-/vue-3.3.7.tgz} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.3.7 + '@vue/compiler-sfc': 3.3.7 + '@vue/runtime-dom': 3.3.7 + '@vue/server-renderer': 3.3.7(vue@3.3.7) + '@vue/shared': 3.3.7 + typescript: 5.3.3 + + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} + dev: false + + /web-worker@1.2.0: + resolution: {integrity: sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==, tarball: https://registry.npmmirror.com/web-worker/-/web-worker-1.2.0.tgz} + dev: false + + /webpack-chain@4.12.1: + resolution: {integrity: sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==, tarball: https://registry.npmmirror.com/webpack-chain/-/webpack-chain-4.12.1.tgz} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + deepmerge: 1.5.2 + javascript-stringify: 1.6.0 + dev: false + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==, tarball: https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz} + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.11.tgz} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + + /write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==, tarball: https://registry.npmmirror.com/write/-/write-1.0.3.tgz} + engines: {node: '>=4'} + dependencies: + mkdirp: 0.5.6 + dev: true + + /x-is-string@0.1.0: + resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==, tarball: https://registry.npmmirror.com/x-is-string/-/x-is-string-0.1.0.tgz} + dev: true + + /xgplayer-subtitles@1.0.19: + resolution: {integrity: sha512-ITvMTgnHD0uytWUYYoS3Qtz10T0o8W0YW3J7/GbfipeJQs4IiFyzhnvTXYB2KnZ6wRXLO6LrNhK9esY9iISJWA==, tarball: https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-1.0.19.tgz} + dependencies: + eventemitter3: 4.0.7 + generate-source-map: 0.0.5 + dev: false + + /xgplayer@2.32.6: + resolution: {integrity: sha512-ESwYYcG8SQciPaN43tZkN3r0dS/jQ5RtyxyGbxn2+qcKgZQ861M899xq8Cab/z6qVVX+/4eIsxDbm3lfYGYzvA==, tarball: https://registry.npmmirror.com/xgplayer/-/xgplayer-2.32.6.tgz} + hasBin: true + dependencies: + chalk: 2.4.2 + commander: 2.20.3 + danmu.js: 1.1.13 + downloadjs: 1.4.7 + draggabilly: 2.4.1 + event-emitter: 0.3.5 + fs-extra: 5.0.0 + xgplayer-subtitles: 1.0.19 + dev: false + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, tarball: https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /xss@1.0.14: + resolution: {integrity: sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==, tarball: https://registry.npmmirror.com/xss/-/xss-1.0.14.tgz} + engines: {node: '>= 0.10.0'} + hasBin: true + dependencies: + commander: 2.20.3 + cssfilter: 0.0.10 + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} + engines: {node: '>=0.4'} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} + engines: {node: '>=10'} + dev: true + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, tarball: https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, tarball: https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==, tarball: https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@10.1.0: + resolution: {integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-10.1.0.tgz} + dependencies: + camelcase: 4.1.0 + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==, tarball: https://registry.npmmirror.com/yargs/-/yargs-17.7.1.tgz} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, tarball: https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} + engines: {node: '>=10'} + dev: true + + /zrender@5.4.4: + resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==, tarball: https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz} + dependencies: + tslib: 2.3.0 + dev: false diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..f3c48de Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..0d0f422 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..238e31b --- /dev/null +++ b/src/App.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/api/auth/index.ts b/src/api/auth/index.ts new file mode 100644 index 0000000..10bba29 --- /dev/null +++ b/src/api/auth/index.ts @@ -0,0 +1,58 @@ +import axios from 'axios'; +import type { RouteRecordNormalized } from 'vue-router'; +import { UserState } from '@/store/modules/user/types'; + +const BASE_URL = '/auth'; + +export interface AccountLoginReq { + username?: string; + password?: string; + captcha: string; + uuid?: string; +} + +export interface LoginRes { + token: string; +} + +export function accountLogin(req: AccountLoginReq) { + return axios.post(`${BASE_URL}/account`, req); +} + +export interface EmailLoginReq { + email: string; + captcha: string; +} + +export function emailLogin(req: EmailLoginReq) { + return axios.post(`${BASE_URL}/email`, req); +} + +export interface PhoneLoginReq { + phone: string; + captcha: string; +} + +export function phoneLogin(req: PhoneLoginReq) { + return axios.post(`${BASE_URL}/phone`, req); +} + +export function logout() { + return axios.post(`${BASE_URL}/logout`); +} + +export function getUserInfo() { + return axios.get(`${BASE_URL}/user/info`); +} + +export function listRoute() { + return axios.get(`${BASE_URL}/route`); +} + +export function socialAuth(source: string) { + return axios.get(`/oauth/${source}`); +} + +export function socialLogin(source: string, req: any) { + return axios.post(`/oauth/${source}`, req); +} diff --git a/src/api/common/captcha.ts b/src/api/common/captcha.ts new file mode 100644 index 0000000..8e42679 --- /dev/null +++ b/src/api/common/captcha.ts @@ -0,0 +1,63 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/captcha'; + +export interface ImageCaptchaRes { + uuid: string; + img: string; +} + +export interface BehaviorCaptchaRes { + originalImageBase64: string; + point: { + x: number; + y: number; + }; + jigsawImageBase64: string; + token: string; + secretKey: string; +} + +export interface BehaviorCaptchaReq { + captchaType?: string; + captchaVerification?: string; + clientUid?: string; +} + +export interface CheckBehaviorCaptchaRes { + repCode: string; + repMsg: string; +} + +export function getImageCaptcha() { + return axios.get(`${BASE_URL}/img`); +} + +export function getMailCaptcha(email: string) { + return axios.get(`${BASE_URL}/mail?email=${email}`); +} + +export function getSmsCaptcha( + phone: string, + behaviorCaptcha: BehaviorCaptchaReq, +) { + return axios.get( + `${BASE_URL}/sms?phone=${phone}&captchaVerification=${encodeURIComponent( + behaviorCaptcha.captchaVerification || '', + )}`, + ); +} + +export function getBehaviorCaptcha(params: any) { + return axios.get(`${BASE_URL}/behavior`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function checkBehaviorCaptcha(params: any) { + return axios.post(`${BASE_URL}/behavior`, params); +} diff --git a/src/api/common/dashboard.ts b/src/api/common/dashboard.ts new file mode 100644 index 0000000..aaf1225 --- /dev/null +++ b/src/api/common/dashboard.ts @@ -0,0 +1,65 @@ +import axios from 'axios'; + +const BASE_URL = '/dashboard'; + +export interface DashboardTotalRecord { + pvCount: number; + ipCount: number; + todayPvCount: number; + newPvFromYesterday: number; +} + +export interface DashboardAccessTrendRecord { + date: string; + pvCount: number; + ipCount: number; +} + +export interface DashboardPopularModuleRecord { + module: string; + pvCount: number; + newPvFromYesterday: number; +} + +export interface DashboardGeoDistributionRecord { + locations: string[]; + locationIpStatistics: []; +} + +export interface DashboardAnnouncementRecord { + id: number; + title: string; + type: number; +} + +export interface DashboardRecentlyVisitedRecord { + title?: string; + path: string; + icon?: string; +} + +export function getTotal() { + return axios.get(`${BASE_URL}/total`); +} + +export function listAccessTrend(days: number) { + return axios.get( + `${BASE_URL}/access/trend/${days}`, + ); +} + +export function listPopularModule() { + return axios.get( + `${BASE_URL}/popular/module`, + ); +} + +export function getGeoDistribution() { + return axios.get( + `${BASE_URL}/geo/distribution`, + ); +} + +export function listAnnouncement() { + return axios.get(`${BASE_URL}/announcement`); +} diff --git a/src/api/common/index.ts b/src/api/common/index.ts new file mode 100644 index 0000000..d662223 --- /dev/null +++ b/src/api/common/index.ts @@ -0,0 +1,54 @@ +import axios from 'axios'; +import qs from 'query-string'; +import { ListParam as DeptParam } from '@/api/system/dept'; +import { ListParam as MenuParam } from '@/api/system/menu'; +import { ListParam as RoleParam } from '@/api/system/role'; +import { ListParam as OptionParam } from '@/api/system/config'; +import { TreeNodeData } from '@arco-design/web-vue'; +import { LabelValueState } from '@/store/modules/dict/types'; + +const BASE_URL = '/common'; + +export function listDeptTree(params: DeptParam) { + return axios.get(`${BASE_URL}/tree/dept`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function listMenuTree(params: MenuParam) { + return axios.get(`${BASE_URL}/tree/menu`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function listRoleDict(params: RoleParam) { + return axios.get(`${BASE_URL}/dict/role`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function listDict(code: string) { + return axios.get(`${BASE_URL}/dict/${code}`); +} + +export function listOption(params: OptionParam) { + return axios.get(`${BASE_URL}/option`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function upload(data: FormData) { + return axios.post(`${BASE_URL}/file`, data); +} diff --git a/src/api/demo/form.ts b/src/api/demo/form.ts new file mode 100644 index 0000000..0a1ea7c --- /dev/null +++ b/src/api/demo/form.ts @@ -0,0 +1,21 @@ +import axios from 'axios'; + +export interface BaseInfoModel { + activityName: string; + channelType: string; + promotionTime: string[]; + promoteLink: string; +} +export interface ChannelInfoModel { + advertisingSource: string; + advertisingMedia: string; + keyword: string[]; + pushNotify: boolean; + advertisingContent: string; +} + +export type UnitChannelModel = BaseInfoModel & ChannelInfoModel; + +export function submitChannelForm(data: UnitChannelModel) { + return axios.post('/api/channel-form/submit', { data }); +} diff --git a/src/api/demo/list.ts b/src/api/demo/list.ts new file mode 100644 index 0000000..2c58189 --- /dev/null +++ b/src/api/demo/list.ts @@ -0,0 +1,56 @@ +import axios from 'axios'; +import qs from 'query-string'; +import type { DescData } from '@arco-design/web-vue/es/descriptions/interface'; + +export interface PolicyRecord { + id: string; + number: number; + name: string; + contentType: 'img' | 'horizontalVideo' | 'verticalVideo'; + filterType: 'artificial' | 'rules'; + count: number; + status: 'online' | 'offline'; + createdTime: string; +} + +export interface PolicyParams extends Partial { + current: number; + pageSize: number; +} + +export interface PolicyListRes { + list: PolicyRecord[]; + total: number; +} + +export function queryPolicyList(params: PolicyParams) { + return axios.get('/api/list/policy', { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface ServiceRecord { + id: number; + title: string; + description: string; + name?: string; + actionType?: string; + icon?: string; + data?: DescData[]; + enable?: boolean; + expires?: boolean; +} +export function queryInspectionList() { + return axios.get('/api/list/quality-inspection'); +} + +export function queryTheServiceList() { + return axios.get('/api/list/the-service'); +} + +export function queryRulesPresetList() { + return axios.get('/api/list/rules-preset'); +} diff --git a/src/api/demo/message.ts b/src/api/demo/message.ts new file mode 100644 index 0000000..a0405bb --- /dev/null +++ b/src/api/demo/message.ts @@ -0,0 +1,38 @@ +import axios from 'axios'; + +export interface MessageRecord { + id: number; + type: string; + title: string; + subTitle: string; + avatar?: string; + content: string; + time: string; + status: 0 | 1; + messageType?: number; +} +export type MessageListType = MessageRecord[]; + +export function queryMessageList() { + return axios.get('/api/message/list'); +} + +interface MessageStatus { + ids: number[]; +} + +export function setMessageStatus(data: MessageStatus) { + return axios.post('/api/message/read', data); +} + +export interface ChatRecord { + id: number; + username: string; + content: string; + time: string; + isCollect: boolean; +} + +export function queryChatList() { + return axios.get('/api/chat/list'); +} diff --git a/src/api/demo/profile.ts b/src/api/demo/profile.ts new file mode 100644 index 0000000..3083749 --- /dev/null +++ b/src/api/demo/profile.ts @@ -0,0 +1,49 @@ +import axios from 'axios'; + +export interface ProfileBasicRes { + status: number; + video: { + mode: string; + acquisition: { + resolution: string; + frameRate: number; + }; + encoding: { + resolution: string; + rate: { + min: number; + max: number; + default: number; + }; + frameRate: number; + profile: string; + }; + }; + audio: { + mode: string; + acquisition: { + channels: number; + }; + encoding: { + channels: number; + rate: number; + profile: string; + }; + }; +} + +export function queryProfileBasic() { + return axios.get('/api/profile/basic'); +} + +export type operationLogRes = Array<{ + key: string; + contentNumber: string; + updateContent: string; + status: number; + updateTime: string; +}>; + +export function queryOperationLog() { + return axios.get('/api/operation/log'); +} diff --git a/src/api/demo/visualization.ts b/src/api/demo/visualization.ts new file mode 100644 index 0000000..c443119 --- /dev/null +++ b/src/api/demo/visualization.ts @@ -0,0 +1,73 @@ +import axios from 'axios'; +import { GeneralChart } from '@/types/global'; + +export interface ChartDataRecord { + x: string; + y: number; + name: string; +} +export interface DataChainGrowth { + quota: string; +} + +export interface DataChainGrowthRes { + count: number; + growth: number; + chartData: { + xAxis: string[]; + data: { name: string; value: number[] }; + }; +} +export function queryDataChainGrowth(data: DataChainGrowth) { + return axios.post('/api/data-chain-growth', data); +} + +export interface PopularAuthorRes { + list: { + ranking: number; + author: string; + contentCount: number; + clickCount: number; + }[]; +} + +export function queryPopularAuthor() { + return axios.get('/api/popular-author/list'); +} + +export interface ContentPublishRecord { + x: string[]; + y: number[]; + name: string; +} + +export function queryContentPublish() { + return axios.get('/api/content-publish'); +} + +export function queryContentPeriodAnalysis() { + return axios.get('/api/content-period-analysis'); +} + +export interface PublicOpinionAnalysis { + quota: string; +} +export interface PublicOpinionAnalysisRes { + count: number; + growth: number; + chartData: ChartDataRecord[]; +} +export function queryPublicOpinionAnalysis(data: DataChainGrowth) { + return axios.post( + '/api/public-opinion-analysis', + data + ); +} +export interface DataOverviewRes { + xAxis: string[]; + data: Array<{ name: string; value: number[]; count: number }>; +} + +export function queryDataOverview() { + return axios.get('/api/data-overview'); +} diff --git a/src/api/monitor/log.ts b/src/api/monitor/log.ts new file mode 100644 index 0000000..2a499d9 --- /dev/null +++ b/src/api/monitor/log.ts @@ -0,0 +1,107 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/monitor/log'; + +export interface LogRecord { + id?: number; + ip: string; + address: string; + browser: string; + os: string; + createTime: string; +} + +export interface LoginLogRecord extends LogRecord { + description: string; + status: number; + errorMsg: string; + createUserString: string; +} + +export interface OperationLogRecord extends LogRecord { + module: string; + description: string; + status: number; + errorMsgString: string; + createUserString: string; +} + +export interface SystemLogRecord extends LogRecord { + statusCode: number; + requestMethod: string; + requestUrl: string; + timeTaken: number; +} + +export interface SystemLogDetailRecord extends SystemLogRecord { + requestHeaders: string; + requestBody: string; + responseHeaders: string; + responseBody: string; +} + +export interface LoginLogParam extends Partial { + page: number; + size: number; + sort: Array; +} + +export interface LoginLogListRes { + list: LoginLogRecord[]; + total: number; +} + +export function listLoginLog(params: LoginLogParam) { + return axios.get(`${BASE_URL}/login`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface OperationLogParam extends Partial { + page: number; + size: number; + sort: Array; + uid?: string; +} + +export interface OperationLogListRes { + list: OperationLogRecord[]; + total: number; +} + +export function listOperationLog(params: OperationLogParam) { + return axios.get(`${BASE_URL}/operation`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface SystemLogParam extends Partial { + page: number; + size: number; + sort: Array; +} + +export interface SystemLogListRes { + list: SystemLogRecord[]; + total: number; +} + +export function listSystemLog(params: SystemLogParam) { + return axios.get(`${BASE_URL}/system`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function getSystemLog(id: number) { + return axios.get(`${BASE_URL}/system/${id}`); +} diff --git a/src/api/monitor/online.ts b/src/api/monitor/online.ts new file mode 100644 index 0000000..da9f061 --- /dev/null +++ b/src/api/monitor/online.ts @@ -0,0 +1,39 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/monitor/online/user'; + +export interface DataRecord { + token: string; + username: string; + nickname: string; + ip: string; + address: string; + browser: string; + os: string; + loginTime: string; +} + +export interface ListParam extends Partial { + page: number; + size: number; + sort: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(BASE_URL, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function kickout(token: string) { + return axios.delete(`${BASE_URL}/${token}`); +} diff --git a/src/api/system/announcement.ts b/src/api/system/announcement.ts new file mode 100644 index 0000000..5efa6ac --- /dev/null +++ b/src/api/system/announcement.ts @@ -0,0 +1,59 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/announcement'; + +export interface DataRecord { + id?: number; + title?: string; + content?: string; + status?: number; + type?: string; + effectiveTime?: string; + terminateTime?: string; + createUser?: string; + createTime?: string; + updateUser?: string; + updateTime?: string; + createUserString?: string; + updateUserString?: string; +} + +export interface ListParam { + title?: string; + status?: number; + type?: string; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/config.ts b/src/api/system/config.ts new file mode 100644 index 0000000..9573f5f --- /dev/null +++ b/src/api/system/config.ts @@ -0,0 +1,39 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/option'; + +export interface BasicConfigRecord { + site_title?: string; + site_copyright?: string; + site_logo?: string; + site_favicon?: string; +} + +export interface DataRecord { + name?: string; + code: string; + value: string; + description?: string; +} + +export interface ListParam { + code?: Array; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function save(req: DataRecord[]) { + return axios.patch(`${BASE_URL}`, req); +} + +export function resetValue(params: ListParam) { + return axios.patch(`${BASE_URL}/value`, params); +} diff --git a/src/api/system/dept.ts b/src/api/system/dept.ts new file mode 100644 index 0000000..fc1d066 --- /dev/null +++ b/src/api/system/dept.ts @@ -0,0 +1,51 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/dept'; + +export interface DataRecord { + id?: number; + name?: string; + parentId?: number; + description?: string; + sort?: number; + status?: number; + isSystem?: boolean; + createUserString?: string; + createTime?: string; + updateUserString?: string; + updateTime?: string; + children?: Array; + parentName?: string; + disabled?: boolean; +} + +export interface ListParam { + name?: string; + status?: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}/tree`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/dict-item.ts b/src/api/system/dict-item.ts new file mode 100644 index 0000000..10e7c20 --- /dev/null +++ b/src/api/system/dict-item.ts @@ -0,0 +1,57 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/dict/item'; + +export interface DataRecord { + id?: number; + label?: string; + value?: string; + color?: string; + sort?: number; + description?: string; + dictId?: number; + createUser?: string; + createTime?: string; + updateUser?: string; + updateTime?: string; + createUserString?: string; + updateUserString?: string; +} + +export interface ListParam { + dictId?: number; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/dict.ts b/src/api/system/dict.ts new file mode 100644 index 0000000..f923d2d --- /dev/null +++ b/src/api/system/dict.ts @@ -0,0 +1,55 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/dict'; + +export interface DataRecord { + id?: number; + name?: string; + code?: string; + description?: string; + isSystem?: boolean; + createUser?: string; + createTime?: string; + updateUser?: string; + updateTime?: string; + createUserString?: string; + updateUserString?: string; +} + +export interface ListParam { + name?: string; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/file.ts b/src/api/system/file.ts new file mode 100644 index 0000000..94da7c7 --- /dev/null +++ b/src/api/system/file.ts @@ -0,0 +1,47 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/file'; + +export interface FileItem { + id: string; + name: string; + size: number; + url: string; + extension: string; + type?: string; + storageId?: string; + createUser?: string; + createTime?: string; + updateUser?: string; + updateTime: string; + createUserString?: string; + updateUserString?: string; +} + +export interface ListParam { + name?: string; + type?: string; + sort?: Array; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}/list`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface FileItemUpdate { + name: string; +} + +export function update(req: FileItemUpdate, id: string) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: string | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/menu.ts b/src/api/system/menu.ts new file mode 100644 index 0000000..5882036 --- /dev/null +++ b/src/api/system/menu.ts @@ -0,0 +1,57 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/menu'; + +export interface DataRecord { + id?: number; + title?: string; + parentId?: number; + type?: number; + path?: string; + name?: string; + component?: string; + icon?: string; + isExternal?: boolean; + isCache?: boolean; + isHidden?: boolean; + permission?: string; + sort?: number; + status?: number; + createUserString?: string; + createTime?: string; + updateUserString?: string; + updateTime?: string; + children?: Array; + parentName?: string; +} + +export interface ListParam { + name?: string; + status?: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}/tree`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/message.ts b/src/api/system/message.ts new file mode 100644 index 0000000..352a59f --- /dev/null +++ b/src/api/system/message.ts @@ -0,0 +1,60 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/message'; + +export interface DataRecord { + id: number; + title: string; + content: string; + type: number; + createUserString?: string; + createTime: string; + isRead: boolean; + readTime: string; +} + +export interface ListParam { + title?: string; + type?: number; + isRead?: boolean; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} + +export function read(ids: Array) { + return axios.patch(`${BASE_URL}/read?ids=${ids}`); +} + +export interface MessageTypeUnreadRes { + type: number; + count: number; +} + +export interface MessageUnreadRes { + total: number; + details: MessageTypeUnreadRes[]; +} + +export function countUnread(detail: boolean) { + return axios.get(`${BASE_URL}/unread?detail=${detail}`); +} diff --git a/src/api/system/role.ts b/src/api/system/role.ts new file mode 100644 index 0000000..3dad00c --- /dev/null +++ b/src/api/system/role.ts @@ -0,0 +1,60 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/role'; + +export interface DataRecord { + id?: number; + name?: string; + code?: string; + sort?: number; + description?: string; + menuIds?: Array; + dataScope?: number; + deptIds?: Array; + status?: number; + isSystem?: boolean; + createUserString?: string; + createTime?: string; + updateUserString?: string; + updateTime?: string; + disabled?: boolean; +} + +export interface ListParam { + name?: string; + status?: number; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/storage.ts b/src/api/system/storage.ts new file mode 100644 index 0000000..3601ad7 --- /dev/null +++ b/src/api/system/storage.ts @@ -0,0 +1,64 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/storage'; + +export interface DataRecord { + id?: number; + name?: string; + code?: string; + type?: number; + accessKey?: string; + secretKey?: string; + endpoint?: string; + bucketName?: string; + domain?: string; + description?: string; + isDefault?: boolean; + sort?: number; + status?: number; + createUser?: string; + createTime?: string; + updateUser?: string; + updateTime?: string; + createUserString?: string; + updateUserString?: string; +} + +export interface ListParam { + name?: string; + status?: string; + page?: number; + size?: number; + sort?: Array; +} + +export interface PageRes { + total: number; + list: T; +} + +export function list(params: ListParam) { + return axios.get>(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} diff --git a/src/api/system/user-center.ts b/src/api/system/user-center.ts new file mode 100644 index 0000000..c4a5b92 --- /dev/null +++ b/src/api/system/user-center.ts @@ -0,0 +1,86 @@ +import axios from 'axios'; + +const BASE_URL = '/system/user'; + +export interface BasicInfoModel { + username: string; + nickname: string; + gender: number; +} + +export interface AvatarRes { + avatar: string; +} + +export interface cropperOptions { + autoCrop: boolean; // 是否默认生成截图框 + autoCropWidth: number; // 默认生成截图框宽度 + autoCropHeight: number; // 默认生成截图框高度 + canMove: boolean; // 上传图片是否可以移动 (默认:true) + centerBox: boolean; // 截图框是否被限制在图片里面 (默认:false) + full: boolean; // 是否输出原图比例的截图 选true生成的图片会非常大 (默认:false) + fixed: boolean; // 是否开启截图框宽高固定比例 (默认:false) + fixedBox: boolean; // 固定截图框大小 不允许改变 + img: string | ArrayBuffer | null; // 裁剪图片的地址 + outputSize: number; // 裁剪生成图片的质量 (默认:1) + outputType: string; // 默认生成截图为PNG格式 +} + +export function uploadAvatar(data: FormData) { + return axios.post(`${BASE_URL}/avatar`, data); +} + +export interface UserBasicInfoUpdateReq { + nickname: string; + gender: number; +} + +export function updateBasicInfo(req: UserBasicInfoUpdateReq) { + return axios.patch(`${BASE_URL}/basic/info`, req); +} + +export interface UserPasswordUpdateReq { + oldPassword: string; + newPassword: string; +} + +export function updatePassword(req: UserPasswordUpdateReq) { + return axios.patch(`${BASE_URL}/password`, req); +} + +export interface UserPhoneUpdateReq { + newPhone: string; + captcha: string; + currentPassword: string; +} + +export function updatePhone(req: UserPhoneUpdateReq) { + return axios.patch(`${BASE_URL}/phone`, req); +} + +export interface UserEmailUpdateReq { + newEmail: string; + captcha: string; + currentPassword: string; +} + +export function updateEmail(req: UserEmailUpdateReq) { + return axios.patch(`${BASE_URL}/email`, req); +} + +export interface UserSocialBindRecord { + source: string; + description: string; +} + +export function listSocial() { + return axios.get(`${BASE_URL}/social`); +} + +export function bindSocial(source: string, req: any) { + return axios.post(`${BASE_URL}/social/${source}`, req); +} + +export function unbindSocial(source: string) { + return axios.delete(`${BASE_URL}/social/${source}`); +} diff --git a/src/api/system/user.ts b/src/api/system/user.ts new file mode 100644 index 0000000..d691b5d --- /dev/null +++ b/src/api/system/user.ts @@ -0,0 +1,77 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/system/user'; + +export interface DataRecord { + id?: number; + username?: string; + nickname?: string; + gender?: number; + email?: string; + phone?: string; + description?: string; + status?: number; + isSystem?: boolean; + pwdResetTime?: string; + createUserString?: string; + createTime?: string; + updateUserString?: string; + updateTime?: string; + deptId?: number; + deptName?: string; + roleIds?: Array; + roleNames?: Array; + disabled?: boolean; +} + +export interface ListParam { + username?: string; + status?: number; + createTime?: Array; + page?: number; + size?: number; + sort?: Array; +} + +export interface ListRes { + list: DataRecord[]; + total: number; +} + +export function list(params: ListParam) { + return axios.get(`${BASE_URL}`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export function get(id: number) { + return axios.get(`${BASE_URL}/${id}`); +} + +export function add(req: DataRecord) { + return axios.post(BASE_URL, req); +} + +export function update(req: DataRecord, id: number) { + return axios.put(`${BASE_URL}/${id}`, req); +} + +export function del(ids: number | Array) { + return axios.delete(`${BASE_URL}/${ids}`); +} + +export function resetPassword(id: number) { + return axios.patch(`${BASE_URL}/${id}/password`); +} + +export interface UpdateUserRoleReq { + roleIds?: Array; +} + +export function updateUserRole(req: UpdateUserRoleReq, id: number) { + return axios.patch(`${BASE_URL}/${id}/role`, req); +} diff --git a/src/api/tool/generator.ts b/src/api/tool/generator.ts new file mode 100644 index 0000000..6b4e340 --- /dev/null +++ b/src/api/tool/generator.ts @@ -0,0 +1,92 @@ +import axios from 'axios'; +import qs from 'query-string'; + +const BASE_URL = '/tool/generator'; + +export interface TableRecord { + tableName: string; + comment?: string; + engine: string; + charset: string; + createTime?: string; + isConfiged: boolean; +} + +export interface TableParam { + tableName?: string; +} + +export interface TableListRes { + list: TableRecord[]; + total: number; +} + +export function listTable(params: TableParam) { + return axios.get(`${BASE_URL}/table`, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface FieldConfigRecord { + tableName: string; + columnName: string; + columnType: string; + fieldName: string; + fieldType: string; + comment: string; + isRequired: boolean; + showInList: boolean; + showInForm: boolean; + showInQuery: boolean; + formType: string; + queryType: string; + createTime?: string; +} + +export function listFieldConfig(tableName: string, requireSync: boolean) { + return axios.get( + `${BASE_URL}/field/${tableName}?requireSync=${requireSync}`, + ); +} + +export interface GenConfigRecord { + tableName: string; + moduleName: string; + packageName: string; + frontendPath: string; + businessName: string; + author: string; + tablePrefix: string; + isOverride: boolean; + createTime?: string; + updateTime?: string; +} + +export function getGenConfig(tableName: string) { + return axios.get(`${BASE_URL}/config/${tableName}`); +} + +export interface GeneratorConfigRecord { + genConfig: GenConfigRecord; + fieldConfigs: FieldConfigRecord[]; +} + +export function saveConfig(tableName: string, req: GeneratorConfigRecord) { + return axios.post(`${BASE_URL}/config/${tableName}`, req); +} + +export interface GeneratePreviewRecord { + fileName: string; + content: string; +} + +export function preview(tableName: string) { + return axios.get(`${BASE_URL}/preview/${tableName}`); +} + +export function generate(tableName: string) { + return axios.post(`${BASE_URL}/${tableName}`); +} diff --git a/src/assets/icons/png/data.png b/src/assets/icons/png/data.png new file mode 100644 index 0000000..6b60def Binary files /dev/null and b/src/assets/icons/png/data.png differ diff --git a/src/assets/icons/png/hot.png b/src/assets/icons/png/hot.png new file mode 100644 index 0000000..c24a063 Binary files /dev/null and b/src/assets/icons/png/hot.png differ diff --git a/src/assets/icons/png/popularity.png b/src/assets/icons/png/popularity.png new file mode 100644 index 0000000..99b5984 Binary files /dev/null and b/src/assets/icons/png/popularity.png differ diff --git a/src/assets/icons/png/same-city.png b/src/assets/icons/png/same-city.png new file mode 100644 index 0000000..aa9e7f9 Binary files /dev/null and b/src/assets/icons/png/same-city.png differ diff --git a/src/assets/icons/svg/account.svg b/src/assets/icons/svg/account.svg new file mode 100644 index 0000000..fef80ba --- /dev/null +++ b/src/assets/icons/svg/account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/advertising.svg b/src/assets/icons/svg/advertising.svg new file mode 100644 index 0000000..851efd1 --- /dev/null +++ b/src/assets/icons/svg/advertising.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/align-center.svg b/src/assets/icons/svg/align-center.svg new file mode 100644 index 0000000..d079c42 --- /dev/null +++ b/src/assets/icons/svg/align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/align-left.svg b/src/assets/icons/svg/align-left.svg new file mode 100644 index 0000000..69462f0 --- /dev/null +++ b/src/assets/icons/svg/align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/align-right.svg b/src/assets/icons/svg/align-right.svg new file mode 100644 index 0000000..936320c --- /dev/null +++ b/src/assets/icons/svg/align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/announcement.svg b/src/assets/icons/svg/announcement.svg new file mode 100644 index 0000000..15a20dd --- /dev/null +++ b/src/assets/icons/svg/announcement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/anonymity.svg b/src/assets/icons/svg/anonymity.svg new file mode 100644 index 0000000..fa73b4f --- /dev/null +++ b/src/assets/icons/svg/anonymity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/apps.svg b/src/assets/icons/svg/apps.svg new file mode 100644 index 0000000..c7b973a --- /dev/null +++ b/src/assets/icons/svg/apps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/archive.svg b/src/assets/icons/svg/archive.svg new file mode 100644 index 0000000..aae0361 --- /dev/null +++ b/src/assets/icons/svg/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-down.svg b/src/assets/icons/svg/arrow-down.svg new file mode 100644 index 0000000..c2baa40 --- /dev/null +++ b/src/assets/icons/svg/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-fall.svg b/src/assets/icons/svg/arrow-fall.svg new file mode 100644 index 0000000..e041a42 --- /dev/null +++ b/src/assets/icons/svg/arrow-fall.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-left.svg b/src/assets/icons/svg/arrow-left.svg new file mode 100644 index 0000000..c599ac2 --- /dev/null +++ b/src/assets/icons/svg/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-right.svg b/src/assets/icons/svg/arrow-right.svg new file mode 100644 index 0000000..d8746eb --- /dev/null +++ b/src/assets/icons/svg/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-rise.svg b/src/assets/icons/svg/arrow-rise.svg new file mode 100644 index 0000000..a53f721 --- /dev/null +++ b/src/assets/icons/svg/arrow-rise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/arrow-up.svg b/src/assets/icons/svg/arrow-up.svg new file mode 100644 index 0000000..99fd475 --- /dev/null +++ b/src/assets/icons/svg/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/at.svg b/src/assets/icons/svg/at.svg new file mode 100644 index 0000000..6a62b93 --- /dev/null +++ b/src/assets/icons/svg/at.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/attachment.svg b/src/assets/icons/svg/attachment.svg new file mode 100644 index 0000000..197fe39 --- /dev/null +++ b/src/assets/icons/svg/attachment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/backward.svg b/src/assets/icons/svg/backward.svg new file mode 100644 index 0000000..47e00de --- /dev/null +++ b/src/assets/icons/svg/backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bar-chart.svg b/src/assets/icons/svg/bar-chart.svg new file mode 100644 index 0000000..69be475 --- /dev/null +++ b/src/assets/icons/svg/bar-chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/behavior-anal.svg b/src/assets/icons/svg/behavior-anal.svg new file mode 100644 index 0000000..62a26cd --- /dev/null +++ b/src/assets/icons/svg/behavior-anal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bg-colors.svg b/src/assets/icons/svg/bg-colors.svg new file mode 100644 index 0000000..ab88f4a --- /dev/null +++ b/src/assets/icons/svg/bg-colors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bold.svg b/src/assets/icons/svg/bold.svg new file mode 100644 index 0000000..1c1b6c8 --- /dev/null +++ b/src/assets/icons/svg/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/book.svg b/src/assets/icons/svg/book.svg new file mode 100644 index 0000000..9fe1f2a --- /dev/null +++ b/src/assets/icons/svg/book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bookmark.svg b/src/assets/icons/svg/bookmark.svg new file mode 100644 index 0000000..75ab8e1 --- /dev/null +++ b/src/assets/icons/svg/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/branch.svg b/src/assets/icons/svg/branch.svg new file mode 100644 index 0000000..4e96333 --- /dev/null +++ b/src/assets/icons/svg/branch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/brush.svg b/src/assets/icons/svg/brush.svg new file mode 100644 index 0000000..99e8204 --- /dev/null +++ b/src/assets/icons/svg/brush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bug.svg b/src/assets/icons/svg/bug.svg new file mode 100644 index 0000000..ab59c1e --- /dev/null +++ b/src/assets/icons/svg/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bulb.svg b/src/assets/icons/svg/bulb.svg new file mode 100644 index 0000000..8145198 --- /dev/null +++ b/src/assets/icons/svg/bulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/calendar.svg b/src/assets/icons/svg/calendar.svg new file mode 100644 index 0000000..d524a73 --- /dev/null +++ b/src/assets/icons/svg/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/calendar_clock.svg b/src/assets/icons/svg/calendar_clock.svg new file mode 100644 index 0000000..c14aa80 --- /dev/null +++ b/src/assets/icons/svg/calendar_clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/camera.svg b/src/assets/icons/svg/camera.svg new file mode 100644 index 0000000..d6886b1 --- /dev/null +++ b/src/assets/icons/svg/camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-down.svg b/src/assets/icons/svg/caret-down.svg new file mode 100644 index 0000000..1150866 --- /dev/null +++ b/src/assets/icons/svg/caret-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-left.svg b/src/assets/icons/svg/caret-left.svg new file mode 100644 index 0000000..9f6eeea --- /dev/null +++ b/src/assets/icons/svg/caret-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-right.svg b/src/assets/icons/svg/caret-right.svg new file mode 100644 index 0000000..f7d02d6 --- /dev/null +++ b/src/assets/icons/svg/caret-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-up.svg b/src/assets/icons/svg/caret-up.svg new file mode 100644 index 0000000..d7b4a04 --- /dev/null +++ b/src/assets/icons/svg/caret-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/check-circle-f.svg b/src/assets/icons/svg/check-circle-f.svg new file mode 100644 index 0000000..e7fece5 --- /dev/null +++ b/src/assets/icons/svg/check-circle-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/check-circle.svg b/src/assets/icons/svg/check-circle.svg new file mode 100644 index 0000000..a69c815 --- /dev/null +++ b/src/assets/icons/svg/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/check-square.svg b/src/assets/icons/svg/check-square.svg new file mode 100644 index 0000000..ccc1f91 --- /dev/null +++ b/src/assets/icons/svg/check-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/check.svg b/src/assets/icons/svg/check.svg new file mode 100644 index 0000000..1f2426b --- /dev/null +++ b/src/assets/icons/svg/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/chinese-fill.svg b/src/assets/icons/svg/chinese-fill.svg new file mode 100644 index 0000000..5f1a7b1 --- /dev/null +++ b/src/assets/icons/svg/chinese-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/clock-circle.svg b/src/assets/icons/svg/clock-circle.svg new file mode 100644 index 0000000..6dc8f0c --- /dev/null +++ b/src/assets/icons/svg/clock-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/close-circle-f.svg b/src/assets/icons/svg/close-circle-f.svg new file mode 100644 index 0000000..a026738 --- /dev/null +++ b/src/assets/icons/svg/close-circle-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/close-circle.svg b/src/assets/icons/svg/close-circle.svg new file mode 100644 index 0000000..3123e96 --- /dev/null +++ b/src/assets/icons/svg/close-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/close.svg b/src/assets/icons/svg/close.svg new file mode 100644 index 0000000..23162c0 --- /dev/null +++ b/src/assets/icons/svg/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/cloud-down.svg b/src/assets/icons/svg/cloud-down.svg new file mode 100644 index 0000000..64dce5e --- /dev/null +++ b/src/assets/icons/svg/cloud-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/cloud.svg b/src/assets/icons/svg/cloud.svg new file mode 100644 index 0000000..0714b38 --- /dev/null +++ b/src/assets/icons/svg/cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/code-block.svg b/src/assets/icons/svg/code-block.svg new file mode 100644 index 0000000..91dda66 --- /dev/null +++ b/src/assets/icons/svg/code-block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/code-square.svg b/src/assets/icons/svg/code-square.svg new file mode 100644 index 0000000..2eee2e8 --- /dev/null +++ b/src/assets/icons/svg/code-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/code.svg b/src/assets/icons/svg/code.svg new file mode 100644 index 0000000..6808ea1 --- /dev/null +++ b/src/assets/icons/svg/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/command.svg b/src/assets/icons/svg/command.svg new file mode 100644 index 0000000..2fe4241 --- /dev/null +++ b/src/assets/icons/svg/command.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/common.svg b/src/assets/icons/svg/common.svg new file mode 100644 index 0000000..da3baab --- /dev/null +++ b/src/assets/icons/svg/common.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/compass.svg b/src/assets/icons/svg/compass.svg new file mode 100644 index 0000000..e97de46 --- /dev/null +++ b/src/assets/icons/svg/compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/computer.svg b/src/assets/icons/svg/computer.svg new file mode 100644 index 0000000..4db2dc4 --- /dev/null +++ b/src/assets/icons/svg/computer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/copy.svg b/src/assets/icons/svg/copy.svg new file mode 100644 index 0000000..13b0556 --- /dev/null +++ b/src/assets/icons/svg/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/copyright.svg b/src/assets/icons/svg/copyright.svg new file mode 100644 index 0000000..eeb0422 --- /dev/null +++ b/src/assets/icons/svg/copyright.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/cust-service.svg b/src/assets/icons/svg/cust-service.svg new file mode 100644 index 0000000..ce4a3da --- /dev/null +++ b/src/assets/icons/svg/cust-service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dashboard.svg b/src/assets/icons/svg/dashboard.svg new file mode 100644 index 0000000..ff717ba --- /dev/null +++ b/src/assets/icons/svg/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/delete.svg b/src/assets/icons/svg/delete.svg new file mode 100644 index 0000000..868128f --- /dev/null +++ b/src/assets/icons/svg/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/desktop.svg b/src/assets/icons/svg/desktop.svg new file mode 100644 index 0000000..bc29384 --- /dev/null +++ b/src/assets/icons/svg/desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dice.svg b/src/assets/icons/svg/dice.svg new file mode 100644 index 0000000..5eeaac4 --- /dev/null +++ b/src/assets/icons/svg/dice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/double-down.svg b/src/assets/icons/svg/double-down.svg new file mode 100644 index 0000000..28d6740 --- /dev/null +++ b/src/assets/icons/svg/double-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/double-left.svg b/src/assets/icons/svg/double-left.svg new file mode 100644 index 0000000..f63ac59 --- /dev/null +++ b/src/assets/icons/svg/double-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/double-right.svg b/src/assets/icons/svg/double-right.svg new file mode 100644 index 0000000..02cfcf8 --- /dev/null +++ b/src/assets/icons/svg/double-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/double-up.svg b/src/assets/icons/svg/double-up.svg new file mode 100644 index 0000000..6c84d3c --- /dev/null +++ b/src/assets/icons/svg/double-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/down-circle.svg b/src/assets/icons/svg/down-circle.svg new file mode 100644 index 0000000..2503e36 --- /dev/null +++ b/src/assets/icons/svg/down-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/down.svg b/src/assets/icons/svg/down.svg new file mode 100644 index 0000000..d6ddcd5 --- /dev/null +++ b/src/assets/icons/svg/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/download.svg b/src/assets/icons/svg/download.svg new file mode 100644 index 0000000..a21ef85 --- /dev/null +++ b/src/assets/icons/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drag-arrow.svg b/src/assets/icons/svg/drag-arrow.svg new file mode 100644 index 0000000..04ecd04 --- /dev/null +++ b/src/assets/icons/svg/drag-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drag-dot-2.svg b/src/assets/icons/svg/drag-dot-2.svg new file mode 100644 index 0000000..a4a12c0 --- /dev/null +++ b/src/assets/icons/svg/drag-dot-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drag-dot.svg b/src/assets/icons/svg/drag-dot.svg new file mode 100644 index 0000000..605237f --- /dev/null +++ b/src/assets/icons/svg/drag-dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drive-file.svg b/src/assets/icons/svg/drive-file.svg new file mode 100644 index 0000000..f812c26 --- /dev/null +++ b/src/assets/icons/svg/drive-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/ear.svg b/src/assets/icons/svg/ear.svg new file mode 100644 index 0000000..01c5000 --- /dev/null +++ b/src/assets/icons/svg/ear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/edit.svg b/src/assets/icons/svg/edit.svg new file mode 100644 index 0000000..4c5e286 --- /dev/null +++ b/src/assets/icons/svg/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/email.svg b/src/assets/icons/svg/email.svg new file mode 100644 index 0000000..b9e66b5 --- /dev/null +++ b/src/assets/icons/svg/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/empty.svg b/src/assets/icons/svg/empty.svg new file mode 100644 index 0000000..1e9ec31 --- /dev/null +++ b/src/assets/icons/svg/empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/english-fill.svg b/src/assets/icons/svg/english-fill.svg new file mode 100644 index 0000000..337083b --- /dev/null +++ b/src/assets/icons/svg/english-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eraser.svg b/src/assets/icons/svg/eraser.svg new file mode 100644 index 0000000..0d4f78e --- /dev/null +++ b/src/assets/icons/svg/eraser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exclamation-2-f.svg b/src/assets/icons/svg/exclamation-2-f.svg new file mode 100644 index 0000000..03f699e --- /dev/null +++ b/src/assets/icons/svg/exclamation-2-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exclamation-2.svg b/src/assets/icons/svg/exclamation-2.svg new file mode 100644 index 0000000..057151e --- /dev/null +++ b/src/assets/icons/svg/exclamation-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exclamation-3-f.svg b/src/assets/icons/svg/exclamation-3-f.svg new file mode 100644 index 0000000..f9a7ee4 --- /dev/null +++ b/src/assets/icons/svg/exclamation-3-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exclamation.svg b/src/assets/icons/svg/exclamation.svg new file mode 100644 index 0000000..71fe317 --- /dev/null +++ b/src/assets/icons/svg/exclamation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/expand.svg b/src/assets/icons/svg/expand.svg new file mode 100644 index 0000000..b743b18 --- /dev/null +++ b/src/assets/icons/svg/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/experiment.svg b/src/assets/icons/svg/experiment.svg new file mode 100644 index 0000000..3bf5c51 --- /dev/null +++ b/src/assets/icons/svg/experiment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/export.svg b/src/assets/icons/svg/export.svg new file mode 100644 index 0000000..25f02e7 --- /dev/null +++ b/src/assets/icons/svg/export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye-invisible.svg b/src/assets/icons/svg/eye-invisible.svg new file mode 100644 index 0000000..6d79206 --- /dev/null +++ b/src/assets/icons/svg/eye-invisible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye.svg b/src/assets/icons/svg/eye.svg new file mode 100644 index 0000000..6bed286 --- /dev/null +++ b/src/assets/icons/svg/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/face-frown-f.svg b/src/assets/icons/svg/face-frown-f.svg new file mode 100644 index 0000000..9078435 --- /dev/null +++ b/src/assets/icons/svg/face-frown-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/face-meh-f.svg b/src/assets/icons/svg/face-meh-f.svg new file mode 100644 index 0000000..9a092fb --- /dev/null +++ b/src/assets/icons/svg/face-meh-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/face-smile-f.svg b/src/assets/icons/svg/face-smile-f.svg new file mode 100644 index 0000000..893c5ec --- /dev/null +++ b/src/assets/icons/svg/face-smile-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-audio-a.svg b/src/assets/icons/svg/file-audio-a.svg new file mode 100644 index 0000000..00051dd --- /dev/null +++ b/src/assets/icons/svg/file-audio-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-css.svg b/src/assets/icons/svg/file-css.svg new file mode 100644 index 0000000..1aabe7c --- /dev/null +++ b/src/assets/icons/svg/file-css.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-dir.svg b/src/assets/icons/svg/file-dir.svg new file mode 100644 index 0000000..04daada --- /dev/null +++ b/src/assets/icons/svg/file-dir.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-excel.svg b/src/assets/icons/svg/file-excel.svg new file mode 100644 index 0000000..f53b51f --- /dev/null +++ b/src/assets/icons/svg/file-excel.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-exe.svg b/src/assets/icons/svg/file-exe.svg new file mode 100644 index 0000000..4111d06 --- /dev/null +++ b/src/assets/icons/svg/file-exe.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-html.svg b/src/assets/icons/svg/file-html.svg new file mode 100644 index 0000000..9b704e9 --- /dev/null +++ b/src/assets/icons/svg/file-html.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-image-a.svg b/src/assets/icons/svg/file-image-a.svg new file mode 100644 index 0000000..31ed403 --- /dev/null +++ b/src/assets/icons/svg/file-image-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-image.svg b/src/assets/icons/svg/file-image.svg new file mode 100644 index 0000000..e4989db --- /dev/null +++ b/src/assets/icons/svg/file-image.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-js.svg b/src/assets/icons/svg/file-js.svg new file mode 100644 index 0000000..b38ef34 --- /dev/null +++ b/src/assets/icons/svg/file-js.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-json.svg b/src/assets/icons/svg/file-json.svg new file mode 100644 index 0000000..e7cd332 --- /dev/null +++ b/src/assets/icons/svg/file-json.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-music.svg b/src/assets/icons/svg/file-music.svg new file mode 100644 index 0000000..7758116 --- /dev/null +++ b/src/assets/icons/svg/file-music.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-other.svg b/src/assets/icons/svg/file-other.svg new file mode 100644 index 0000000..4215a13 --- /dev/null +++ b/src/assets/icons/svg/file-other.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-pdf-a.svg b/src/assets/icons/svg/file-pdf-a.svg new file mode 100644 index 0000000..ad9a37c --- /dev/null +++ b/src/assets/icons/svg/file-pdf-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-pdf.svg b/src/assets/icons/svg/file-pdf.svg new file mode 100644 index 0000000..9bf682b --- /dev/null +++ b/src/assets/icons/svg/file-pdf.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-ppt.svg b/src/assets/icons/svg/file-ppt.svg new file mode 100644 index 0000000..72bac64 --- /dev/null +++ b/src/assets/icons/svg/file-ppt.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-rar.svg b/src/assets/icons/svg/file-rar.svg new file mode 100644 index 0000000..8cc3ee2 --- /dev/null +++ b/src/assets/icons/svg/file-rar.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-txt.svg b/src/assets/icons/svg/file-txt.svg new file mode 100644 index 0000000..833e12a --- /dev/null +++ b/src/assets/icons/svg/file-txt.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-video-a.svg b/src/assets/icons/svg/file-video-a.svg new file mode 100644 index 0000000..6458080 --- /dev/null +++ b/src/assets/icons/svg/file-video-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file-video.svg b/src/assets/icons/svg/file-video.svg new file mode 100644 index 0000000..720ee9f --- /dev/null +++ b/src/assets/icons/svg/file-video.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-wps.svg b/src/assets/icons/svg/file-wps.svg new file mode 100644 index 0000000..210fd33 --- /dev/null +++ b/src/assets/icons/svg/file-wps.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/file-zip.svg b/src/assets/icons/svg/file-zip.svg new file mode 100644 index 0000000..51fde6f --- /dev/null +++ b/src/assets/icons/svg/file-zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/file.svg b/src/assets/icons/svg/file.svg new file mode 100644 index 0000000..a3575ab --- /dev/null +++ b/src/assets/icons/svg/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/filter.svg b/src/assets/icons/svg/filter.svg new file mode 100644 index 0000000..a7b3228 --- /dev/null +++ b/src/assets/icons/svg/filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/find-replace.svg b/src/assets/icons/svg/find-replace.svg new file mode 100644 index 0000000..9b06d91 --- /dev/null +++ b/src/assets/icons/svg/find-replace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fire.svg b/src/assets/icons/svg/fire.svg new file mode 100644 index 0000000..362f3cf --- /dev/null +++ b/src/assets/icons/svg/fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fold.svg b/src/assets/icons/svg/fold.svg new file mode 100644 index 0000000..5cac8d9 --- /dev/null +++ b/src/assets/icons/svg/fold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/folder-add.svg b/src/assets/icons/svg/folder-add.svg new file mode 100644 index 0000000..1525210 --- /dev/null +++ b/src/assets/icons/svg/folder-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/folder-delete.svg b/src/assets/icons/svg/folder-delete.svg new file mode 100644 index 0000000..8ea9074 --- /dev/null +++ b/src/assets/icons/svg/folder-delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/folder.svg b/src/assets/icons/svg/folder.svg new file mode 100644 index 0000000..11cc5a7 --- /dev/null +++ b/src/assets/icons/svg/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/font-colors.svg b/src/assets/icons/svg/font-colors.svg new file mode 100644 index 0000000..8ae31e7 --- /dev/null +++ b/src/assets/icons/svg/font-colors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/formula.svg b/src/assets/icons/svg/formula.svg new file mode 100644 index 0000000..825e218 --- /dev/null +++ b/src/assets/icons/svg/formula.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/forward.svg b/src/assets/icons/svg/forward.svg new file mode 100644 index 0000000..374c67a --- /dev/null +++ b/src/assets/icons/svg/forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fullscreen-exit.svg b/src/assets/icons/svg/fullscreen-exit.svg new file mode 100644 index 0000000..6678453 --- /dev/null +++ b/src/assets/icons/svg/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fullscreen.svg b/src/assets/icons/svg/fullscreen.svg new file mode 100644 index 0000000..a53aaba --- /dev/null +++ b/src/assets/icons/svg/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/general.svg b/src/assets/icons/svg/general.svg new file mode 100644 index 0000000..0164864 --- /dev/null +++ b/src/assets/icons/svg/general.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/gift.svg b/src/assets/icons/svg/gift.svg new file mode 100644 index 0000000..d9a76cb --- /dev/null +++ b/src/assets/icons/svg/gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/github.svg b/src/assets/icons/svg/github.svg new file mode 100644 index 0000000..05e1a2a --- /dev/null +++ b/src/assets/icons/svg/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h1.svg b/src/assets/icons/svg/h1.svg new file mode 100644 index 0000000..7d86bb8 --- /dev/null +++ b/src/assets/icons/svg/h1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h2.svg b/src/assets/icons/svg/h2.svg new file mode 100644 index 0000000..c0d511e --- /dev/null +++ b/src/assets/icons/svg/h2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h3.svg b/src/assets/icons/svg/h3.svg new file mode 100644 index 0000000..cf21219 --- /dev/null +++ b/src/assets/icons/svg/h3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h4.svg b/src/assets/icons/svg/h4.svg new file mode 100644 index 0000000..22e6dc8 --- /dev/null +++ b/src/assets/icons/svg/h4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h5.svg b/src/assets/icons/svg/h5.svg new file mode 100644 index 0000000..00bb290 --- /dev/null +++ b/src/assets/icons/svg/h5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h6.svg b/src/assets/icons/svg/h6.svg new file mode 100644 index 0000000..defb791 --- /dev/null +++ b/src/assets/icons/svg/h6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/h7.svg b/src/assets/icons/svg/h7.svg new file mode 100644 index 0000000..654118f --- /dev/null +++ b/src/assets/icons/svg/h7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/heart-fill.svg b/src/assets/icons/svg/heart-fill.svg new file mode 100644 index 0000000..e00fe8d --- /dev/null +++ b/src/assets/icons/svg/heart-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/heart.svg b/src/assets/icons/svg/heart.svg new file mode 100644 index 0000000..c5fafa4 --- /dev/null +++ b/src/assets/icons/svg/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/highlight.svg b/src/assets/icons/svg/highlight.svg new file mode 100644 index 0000000..34fd22f --- /dev/null +++ b/src/assets/icons/svg/highlight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/history.svg b/src/assets/icons/svg/history.svg new file mode 100644 index 0000000..3a7c715 --- /dev/null +++ b/src/assets/icons/svg/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/home.svg b/src/assets/icons/svg/home.svg new file mode 100644 index 0000000..503926b --- /dev/null +++ b/src/assets/icons/svg/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/idcard.svg b/src/assets/icons/svg/idcard.svg new file mode 100644 index 0000000..5b1f082 --- /dev/null +++ b/src/assets/icons/svg/idcard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/image-close.svg b/src/assets/icons/svg/image-close.svg new file mode 100644 index 0000000..f92028d --- /dev/null +++ b/src/assets/icons/svg/image-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/image.svg b/src/assets/icons/svg/image.svg new file mode 100644 index 0000000..d74ed42 --- /dev/null +++ b/src/assets/icons/svg/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/import.svg b/src/assets/icons/svg/import.svg new file mode 100644 index 0000000..b989c9c --- /dev/null +++ b/src/assets/icons/svg/import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/info-circle-fill.svg b/src/assets/icons/svg/info-circle-fill.svg new file mode 100644 index 0000000..58011f3 --- /dev/null +++ b/src/assets/icons/svg/info-circle-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/info-circle.svg b/src/assets/icons/svg/info-circle.svg new file mode 100644 index 0000000..b3e2ed9 --- /dev/null +++ b/src/assets/icons/svg/info-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/info.svg b/src/assets/icons/svg/info.svg new file mode 100644 index 0000000..a05c646 --- /dev/null +++ b/src/assets/icons/svg/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/interaction.svg b/src/assets/icons/svg/interaction.svg new file mode 100644 index 0000000..8408336 --- /dev/null +++ b/src/assets/icons/svg/interaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/italic.svg b/src/assets/icons/svg/italic.svg new file mode 100644 index 0000000..7e4ea07 --- /dev/null +++ b/src/assets/icons/svg/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/language.svg b/src/assets/icons/svg/language.svg new file mode 100644 index 0000000..15ecd7c --- /dev/null +++ b/src/assets/icons/svg/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/launch.svg b/src/assets/icons/svg/launch.svg new file mode 100644 index 0000000..603c1c8 --- /dev/null +++ b/src/assets/icons/svg/launch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/layout.svg b/src/assets/icons/svg/layout.svg new file mode 100644 index 0000000..1a1cb90 --- /dev/null +++ b/src/assets/icons/svg/layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/left-circle.svg b/src/assets/icons/svg/left-circle.svg new file mode 100644 index 0000000..d4dccca --- /dev/null +++ b/src/assets/icons/svg/left-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/left.svg b/src/assets/icons/svg/left.svg new file mode 100644 index 0000000..a5c68be --- /dev/null +++ b/src/assets/icons/svg/left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/line-height.svg b/src/assets/icons/svg/line-height.svg new file mode 100644 index 0000000..2aafbbd --- /dev/null +++ b/src/assets/icons/svg/line-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/link.svg b/src/assets/icons/svg/link.svg new file mode 100644 index 0000000..f78b18b --- /dev/null +++ b/src/assets/icons/svg/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/list.svg b/src/assets/icons/svg/list.svg new file mode 100644 index 0000000..b5aa47a --- /dev/null +++ b/src/assets/icons/svg/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/live-broadcast.svg b/src/assets/icons/svg/live-broadcast.svg new file mode 100644 index 0000000..4050a99 --- /dev/null +++ b/src/assets/icons/svg/live-broadcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/loading.svg b/src/assets/icons/svg/loading.svg new file mode 100644 index 0000000..f56e3ca --- /dev/null +++ b/src/assets/icons/svg/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/location.svg b/src/assets/icons/svg/location.svg new file mode 100644 index 0000000..f793657 --- /dev/null +++ b/src/assets/icons/svg/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/lock.svg b/src/assets/icons/svg/lock.svg new file mode 100644 index 0000000..29029bc --- /dev/null +++ b/src/assets/icons/svg/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/log-search.svg b/src/assets/icons/svg/log-search.svg new file mode 100644 index 0000000..c2753cf --- /dev/null +++ b/src/assets/icons/svg/log-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/loop.svg b/src/assets/icons/svg/loop.svg new file mode 100644 index 0000000..2507ba8 --- /dev/null +++ b/src/assets/icons/svg/loop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/man.svg b/src/assets/icons/svg/man.svg new file mode 100644 index 0000000..f7fba7e --- /dev/null +++ b/src/assets/icons/svg/man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-about.svg b/src/assets/icons/svg/menu-about.svg new file mode 100644 index 0000000..424adad --- /dev/null +++ b/src/assets/icons/svg/menu-about.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-chart.svg b/src/assets/icons/svg/menu-chart.svg new file mode 100644 index 0000000..2a6cb92 --- /dev/null +++ b/src/assets/icons/svg/menu-chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-data.svg b/src/assets/icons/svg/menu-data.svg new file mode 100644 index 0000000..a55d086 --- /dev/null +++ b/src/assets/icons/svg/menu-data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-delete.svg b/src/assets/icons/svg/menu-delete.svg new file mode 100644 index 0000000..9a2e277 --- /dev/null +++ b/src/assets/icons/svg/menu-delete.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-detail.svg b/src/assets/icons/svg/menu-detail.svg new file mode 100644 index 0000000..3b50683 --- /dev/null +++ b/src/assets/icons/svg/menu-detail.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-download.svg b/src/assets/icons/svg/menu-download.svg new file mode 100644 index 0000000..a473c63 --- /dev/null +++ b/src/assets/icons/svg/menu-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-edit.svg b/src/assets/icons/svg/menu-edit.svg new file mode 100644 index 0000000..9f5d103 --- /dev/null +++ b/src/assets/icons/svg/menu-edit.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-error.svg b/src/assets/icons/svg/menu-error.svg new file mode 100644 index 0000000..b078659 --- /dev/null +++ b/src/assets/icons/svg/menu-error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-example.svg b/src/assets/icons/svg/menu-example.svg new file mode 100644 index 0000000..e6336ca --- /dev/null +++ b/src/assets/icons/svg/menu-example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-file.svg b/src/assets/icons/svg/menu-file.svg new file mode 100644 index 0000000..d2a1c8a --- /dev/null +++ b/src/assets/icons/svg/menu-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-fold.svg b/src/assets/icons/svg/menu-fold.svg new file mode 100644 index 0000000..02f67a3 --- /dev/null +++ b/src/assets/icons/svg/menu-fold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-form.svg b/src/assets/icons/svg/menu-form.svg new file mode 100644 index 0000000..e9c9065 --- /dev/null +++ b/src/assets/icons/svg/menu-form.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-gitee.svg b/src/assets/icons/svg/menu-gitee.svg new file mode 100644 index 0000000..0e55b98 --- /dev/null +++ b/src/assets/icons/svg/menu-gitee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-home.svg b/src/assets/icons/svg/menu-home.svg new file mode 100644 index 0000000..97ff012 --- /dev/null +++ b/src/assets/icons/svg/menu-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-move.svg b/src/assets/icons/svg/menu-move.svg new file mode 100644 index 0000000..30583b1 --- /dev/null +++ b/src/assets/icons/svg/menu-move.svg @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-nav.svg b/src/assets/icons/svg/menu-nav.svg new file mode 100644 index 0000000..51909da --- /dev/null +++ b/src/assets/icons/svg/menu-nav.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-result.svg b/src/assets/icons/svg/menu-result.svg new file mode 100644 index 0000000..186d90d --- /dev/null +++ b/src/assets/icons/svg/menu-result.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-system.svg b/src/assets/icons/svg/menu-system.svg new file mode 100644 index 0000000..7d220b3 --- /dev/null +++ b/src/assets/icons/svg/menu-system.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-table.svg b/src/assets/icons/svg/menu-table.svg new file mode 100644 index 0000000..404a0f6 --- /dev/null +++ b/src/assets/icons/svg/menu-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-test.svg b/src/assets/icons/svg/menu-test.svg new file mode 100644 index 0000000..5fe4694 --- /dev/null +++ b/src/assets/icons/svg/menu-test.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-unfold.svg b/src/assets/icons/svg/menu-unfold.svg new file mode 100644 index 0000000..59ff5c3 --- /dev/null +++ b/src/assets/icons/svg/menu-unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-user.svg b/src/assets/icons/svg/menu-user.svg new file mode 100644 index 0000000..c427510 --- /dev/null +++ b/src/assets/icons/svg/menu-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/menu-zip.svg b/src/assets/icons/svg/menu-zip.svg new file mode 100644 index 0000000..7116177 --- /dev/null +++ b/src/assets/icons/svg/menu-zip.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/src/assets/icons/svg/menu.svg b/src/assets/icons/svg/menu.svg new file mode 100644 index 0000000..08aa1ea --- /dev/null +++ b/src/assets/icons/svg/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/message-2.svg b/src/assets/icons/svg/message-2.svg new file mode 100644 index 0000000..c70269d --- /dev/null +++ b/src/assets/icons/svg/message-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/message.svg b/src/assets/icons/svg/message.svg new file mode 100644 index 0000000..eb61cd2 --- /dev/null +++ b/src/assets/icons/svg/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/mind-mapping.svg b/src/assets/icons/svg/mind-mapping.svg new file mode 100644 index 0000000..318d8b6 --- /dev/null +++ b/src/assets/icons/svg/mind-mapping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/minus-circle-f.svg b/src/assets/icons/svg/minus-circle-f.svg new file mode 100644 index 0000000..516bc68 --- /dev/null +++ b/src/assets/icons/svg/minus-circle-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/minus-circle.svg b/src/assets/icons/svg/minus-circle.svg new file mode 100644 index 0000000..315fd7a --- /dev/null +++ b/src/assets/icons/svg/minus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/minus-square.svg b/src/assets/icons/svg/minus-square.svg new file mode 100644 index 0000000..69b62ae --- /dev/null +++ b/src/assets/icons/svg/minus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/minus.svg b/src/assets/icons/svg/minus.svg new file mode 100644 index 0000000..32928b1 --- /dev/null +++ b/src/assets/icons/svg/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/mobile.svg b/src/assets/icons/svg/mobile.svg new file mode 100644 index 0000000..d464c3a --- /dev/null +++ b/src/assets/icons/svg/mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/moon-fill.svg b/src/assets/icons/svg/moon-fill.svg new file mode 100644 index 0000000..29de4a7 --- /dev/null +++ b/src/assets/icons/svg/moon-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/moon.svg b/src/assets/icons/svg/moon.svg new file mode 100644 index 0000000..9639ee5 --- /dev/null +++ b/src/assets/icons/svg/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/more-vertical.svg b/src/assets/icons/svg/more-vertical.svg new file mode 100644 index 0000000..eac20c8 --- /dev/null +++ b/src/assets/icons/svg/more-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/more.svg b/src/assets/icons/svg/more.svg new file mode 100644 index 0000000..a116768 --- /dev/null +++ b/src/assets/icons/svg/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/mosaic.svg b/src/assets/icons/svg/mosaic.svg new file mode 100644 index 0000000..f181d8e --- /dev/null +++ b/src/assets/icons/svg/mosaic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/music.svg b/src/assets/icons/svg/music.svg new file mode 100644 index 0000000..2204b3b --- /dev/null +++ b/src/assets/icons/svg/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/mute-fill.svg b/src/assets/icons/svg/mute-fill.svg new file mode 100644 index 0000000..7d9f751 --- /dev/null +++ b/src/assets/icons/svg/mute-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/mute.svg b/src/assets/icons/svg/mute.svg new file mode 100644 index 0000000..19f56e5 --- /dev/null +++ b/src/assets/icons/svg/mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/nav.svg b/src/assets/icons/svg/nav.svg new file mode 100644 index 0000000..74bf6af --- /dev/null +++ b/src/assets/icons/svg/nav.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/notification-2.svg b/src/assets/icons/svg/notification-2.svg new file mode 100644 index 0000000..bbc2acb --- /dev/null +++ b/src/assets/icons/svg/notification-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/notification.svg b/src/assets/icons/svg/notification.svg new file mode 100644 index 0000000..517cbb4 --- /dev/null +++ b/src/assets/icons/svg/notification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/oblique-line.svg b/src/assets/icons/svg/oblique-line.svg new file mode 100644 index 0000000..d5a14e4 --- /dev/null +++ b/src/assets/icons/svg/oblique-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/old-version.svg b/src/assets/icons/svg/old-version.svg new file mode 100644 index 0000000..dbf3caf --- /dev/null +++ b/src/assets/icons/svg/old-version.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/ordered-list.svg b/src/assets/icons/svg/ordered-list.svg new file mode 100644 index 0000000..6abdccf --- /dev/null +++ b/src/assets/icons/svg/ordered-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/original-size.svg b/src/assets/icons/svg/original-size.svg new file mode 100644 index 0000000..e5f7e00 --- /dev/null +++ b/src/assets/icons/svg/original-size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/palette.svg b/src/assets/icons/svg/palette.svg new file mode 100644 index 0000000..511e18d --- /dev/null +++ b/src/assets/icons/svg/palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/paste.svg b/src/assets/icons/svg/paste.svg new file mode 100644 index 0000000..8a170a0 --- /dev/null +++ b/src/assets/icons/svg/paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pause-circle-f.svg b/src/assets/icons/svg/pause-circle-f.svg new file mode 100644 index 0000000..3fd7c26 --- /dev/null +++ b/src/assets/icons/svg/pause-circle-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pause-circle.svg b/src/assets/icons/svg/pause-circle.svg new file mode 100644 index 0000000..83aec31 --- /dev/null +++ b/src/assets/icons/svg/pause-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pause.svg b/src/assets/icons/svg/pause.svg new file mode 100644 index 0000000..38f4efc --- /dev/null +++ b/src/assets/icons/svg/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pen-fill.svg b/src/assets/icons/svg/pen-fill.svg new file mode 100644 index 0000000..c8c7ddb --- /dev/null +++ b/src/assets/icons/svg/pen-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pen.svg b/src/assets/icons/svg/pen.svg new file mode 100644 index 0000000..1a24517 --- /dev/null +++ b/src/assets/icons/svg/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/phone.svg b/src/assets/icons/svg/phone.svg new file mode 100644 index 0000000..118c10d --- /dev/null +++ b/src/assets/icons/svg/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/plan-analysis.svg b/src/assets/icons/svg/plan-analysis.svg new file mode 100644 index 0000000..7a69bc7 --- /dev/null +++ b/src/assets/icons/svg/plan-analysis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/play-arrow-f.svg b/src/assets/icons/svg/play-arrow-f.svg new file mode 100644 index 0000000..67c6706 --- /dev/null +++ b/src/assets/icons/svg/play-arrow-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/play-arrow.svg b/src/assets/icons/svg/play-arrow.svg new file mode 100644 index 0000000..581720a --- /dev/null +++ b/src/assets/icons/svg/play-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/play-circle-f.svg b/src/assets/icons/svg/play-circle-f.svg new file mode 100644 index 0000000..7abdf41 --- /dev/null +++ b/src/assets/icons/svg/play-circle-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/play-circle.svg b/src/assets/icons/svg/play-circle.svg new file mode 100644 index 0000000..4678b21 --- /dev/null +++ b/src/assets/icons/svg/play-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/plus-circle-fill.svg b/src/assets/icons/svg/plus-circle-fill.svg new file mode 100644 index 0000000..5a6e9f1 --- /dev/null +++ b/src/assets/icons/svg/plus-circle-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/plus-circle.svg b/src/assets/icons/svg/plus-circle.svg new file mode 100644 index 0000000..7641478 --- /dev/null +++ b/src/assets/icons/svg/plus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/plus.svg b/src/assets/icons/svg/plus.svg new file mode 100644 index 0000000..1f8f6bc --- /dev/null +++ b/src/assets/icons/svg/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/poweroff.svg b/src/assets/icons/svg/poweroff.svg new file mode 100644 index 0000000..f9f1857 --- /dev/null +++ b/src/assets/icons/svg/poweroff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/printer.svg b/src/assets/icons/svg/printer.svg new file mode 100644 index 0000000..0fa9cb4 --- /dev/null +++ b/src/assets/icons/svg/printer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/privacy.svg b/src/assets/icons/svg/privacy.svg new file mode 100644 index 0000000..5018c5e --- /dev/null +++ b/src/assets/icons/svg/privacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/public.svg b/src/assets/icons/svg/public.svg new file mode 100644 index 0000000..b3fb462 --- /dev/null +++ b/src/assets/icons/svg/public.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pushpin.svg b/src/assets/icons/svg/pushpin.svg new file mode 100644 index 0000000..5fc47a2 --- /dev/null +++ b/src/assets/icons/svg/pushpin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/qrcode.svg b/src/assets/icons/svg/qrcode.svg new file mode 100644 index 0000000..a70e716 --- /dev/null +++ b/src/assets/icons/svg/qrcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/question-2-f.svg b/src/assets/icons/svg/question-2-f.svg new file mode 100644 index 0000000..87526c3 --- /dev/null +++ b/src/assets/icons/svg/question-2-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/question-2.svg b/src/assets/icons/svg/question-2.svg new file mode 100644 index 0000000..0df1777 --- /dev/null +++ b/src/assets/icons/svg/question-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/question.svg b/src/assets/icons/svg/question.svg new file mode 100644 index 0000000..8444176 --- /dev/null +++ b/src/assets/icons/svg/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/quote.svg b/src/assets/icons/svg/quote.svg new file mode 100644 index 0000000..f948647 --- /dev/null +++ b/src/assets/icons/svg/quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/record-stop.svg b/src/assets/icons/svg/record-stop.svg new file mode 100644 index 0000000..497eba2 --- /dev/null +++ b/src/assets/icons/svg/record-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/record.svg b/src/assets/icons/svg/record.svg new file mode 100644 index 0000000..48a8e79 --- /dev/null +++ b/src/assets/icons/svg/record.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/redo.svg b/src/assets/icons/svg/redo.svg new file mode 100644 index 0000000..9fb4e92 --- /dev/null +++ b/src/assets/icons/svg/redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/reference.svg b/src/assets/icons/svg/reference.svg new file mode 100644 index 0000000..8472821 --- /dev/null +++ b/src/assets/icons/svg/reference.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/refresh.svg b/src/assets/icons/svg/refresh.svg new file mode 100644 index 0000000..61c0fde --- /dev/null +++ b/src/assets/icons/svg/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/reply.svg b/src/assets/icons/svg/reply.svg new file mode 100644 index 0000000..4914dcd --- /dev/null +++ b/src/assets/icons/svg/reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/right-circle.svg b/src/assets/icons/svg/right-circle.svg new file mode 100644 index 0000000..ed97469 --- /dev/null +++ b/src/assets/icons/svg/right-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/right.svg b/src/assets/icons/svg/right.svg new file mode 100644 index 0000000..e6ec4b9 --- /dev/null +++ b/src/assets/icons/svg/right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/robot-add.svg b/src/assets/icons/svg/robot-add.svg new file mode 100644 index 0000000..42ffb6e --- /dev/null +++ b/src/assets/icons/svg/robot-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/robot.svg b/src/assets/icons/svg/robot.svg new file mode 100644 index 0000000..0691b93 --- /dev/null +++ b/src/assets/icons/svg/robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/roi-analysis.svg b/src/assets/icons/svg/roi-analysis.svg new file mode 100644 index 0000000..0037d28 --- /dev/null +++ b/src/assets/icons/svg/roi-analysis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/rotate-left.svg b/src/assets/icons/svg/rotate-left.svg new file mode 100644 index 0000000..69e2c87 --- /dev/null +++ b/src/assets/icons/svg/rotate-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/rotate-right.svg b/src/assets/icons/svg/rotate-right.svg new file mode 100644 index 0000000..c8aafe8 --- /dev/null +++ b/src/assets/icons/svg/rotate-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/safe.svg b/src/assets/icons/svg/safe.svg new file mode 100644 index 0000000..149de2b --- /dev/null +++ b/src/assets/icons/svg/safe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/save.svg b/src/assets/icons/svg/save.svg new file mode 100644 index 0000000..704e8ed --- /dev/null +++ b/src/assets/icons/svg/save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/scan.svg b/src/assets/icons/svg/scan.svg new file mode 100644 index 0000000..decda12 --- /dev/null +++ b/src/assets/icons/svg/scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/schedule.svg b/src/assets/icons/svg/schedule.svg new file mode 100644 index 0000000..3f3dffb --- /dev/null +++ b/src/assets/icons/svg/schedule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/scissor.svg b/src/assets/icons/svg/scissor.svg new file mode 100644 index 0000000..afd5683 --- /dev/null +++ b/src/assets/icons/svg/scissor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/search.svg b/src/assets/icons/svg/search.svg new file mode 100644 index 0000000..2e05bba --- /dev/null +++ b/src/assets/icons/svg/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/select-all.svg b/src/assets/icons/svg/select-all.svg new file mode 100644 index 0000000..ea5d3b3 --- /dev/null +++ b/src/assets/icons/svg/select-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/send.svg b/src/assets/icons/svg/send.svg new file mode 100644 index 0000000..e6726a8 --- /dev/null +++ b/src/assets/icons/svg/send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/settings.svg b/src/assets/icons/svg/settings.svg new file mode 100644 index 0000000..46da1d3 --- /dev/null +++ b/src/assets/icons/svg/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/shake.svg b/src/assets/icons/svg/shake.svg new file mode 100644 index 0000000..475b88d --- /dev/null +++ b/src/assets/icons/svg/shake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/share-alt.svg b/src/assets/icons/svg/share-alt.svg new file mode 100644 index 0000000..5101a45 --- /dev/null +++ b/src/assets/icons/svg/share-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/share-external.svg b/src/assets/icons/svg/share-external.svg new file mode 100644 index 0000000..4e20f0e --- /dev/null +++ b/src/assets/icons/svg/share-external.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/share-internal.svg b/src/assets/icons/svg/share-internal.svg new file mode 100644 index 0000000..3d77d19 --- /dev/null +++ b/src/assets/icons/svg/share-internal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/shrink.svg b/src/assets/icons/svg/shrink.svg new file mode 100644 index 0000000..d000e7c --- /dev/null +++ b/src/assets/icons/svg/shrink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skin.svg b/src/assets/icons/svg/skin.svg new file mode 100644 index 0000000..be75186 --- /dev/null +++ b/src/assets/icons/svg/skin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skip-next-fill.svg b/src/assets/icons/svg/skip-next-fill.svg new file mode 100644 index 0000000..668d940 --- /dev/null +++ b/src/assets/icons/svg/skip-next-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skip-next.svg b/src/assets/icons/svg/skip-next.svg new file mode 100644 index 0000000..2f17baf --- /dev/null +++ b/src/assets/icons/svg/skip-next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skip-previous-f.svg b/src/assets/icons/svg/skip-previous-f.svg new file mode 100644 index 0000000..dcffe76 --- /dev/null +++ b/src/assets/icons/svg/skip-previous-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skip-previous.svg b/src/assets/icons/svg/skip-previous.svg new file mode 100644 index 0000000..2e3d12b --- /dev/null +++ b/src/assets/icons/svg/skip-previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sort-ascend.svg b/src/assets/icons/svg/sort-ascend.svg new file mode 100644 index 0000000..1946354 --- /dev/null +++ b/src/assets/icons/svg/sort-ascend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sort-descend.svg b/src/assets/icons/svg/sort-descend.svg new file mode 100644 index 0000000..f9a7918 --- /dev/null +++ b/src/assets/icons/svg/sort-descend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sort.svg b/src/assets/icons/svg/sort.svg new file mode 100644 index 0000000..58c3432 --- /dev/null +++ b/src/assets/icons/svg/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sound-fill.svg b/src/assets/icons/svg/sound-fill.svg new file mode 100644 index 0000000..baa1af8 --- /dev/null +++ b/src/assets/icons/svg/sound-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sound.svg b/src/assets/icons/svg/sound.svg new file mode 100644 index 0000000..c2cf8ac --- /dev/null +++ b/src/assets/icons/svg/sound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/stamp.svg b/src/assets/icons/svg/stamp.svg new file mode 100644 index 0000000..5912332 --- /dev/null +++ b/src/assets/icons/svg/stamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/star-fill.svg b/src/assets/icons/svg/star-fill.svg new file mode 100644 index 0000000..55b9184 --- /dev/null +++ b/src/assets/icons/svg/star-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/star.svg b/src/assets/icons/svg/star.svg new file mode 100644 index 0000000..886dc60 --- /dev/null +++ b/src/assets/icons/svg/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/stop.svg b/src/assets/icons/svg/stop.svg new file mode 100644 index 0000000..d91e97a --- /dev/null +++ b/src/assets/icons/svg/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/storage.svg b/src/assets/icons/svg/storage.svg new file mode 100644 index 0000000..1a4fb09 --- /dev/null +++ b/src/assets/icons/svg/storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/strikethrough.svg b/src/assets/icons/svg/strikethrough.svg new file mode 100644 index 0000000..0dc0912 --- /dev/null +++ b/src/assets/icons/svg/strikethrough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/subscribe-add.svg b/src/assets/icons/svg/subscribe-add.svg new file mode 100644 index 0000000..444d34a --- /dev/null +++ b/src/assets/icons/svg/subscribe-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/subscribe.svg b/src/assets/icons/svg/subscribe.svg new file mode 100644 index 0000000..c211c0a --- /dev/null +++ b/src/assets/icons/svg/subscribe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/subscribed.svg b/src/assets/icons/svg/subscribed.svg new file mode 100644 index 0000000..577e13c --- /dev/null +++ b/src/assets/icons/svg/subscribed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sun-fill.svg b/src/assets/icons/svg/sun-fill.svg new file mode 100644 index 0000000..2376c59 --- /dev/null +++ b/src/assets/icons/svg/sun-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sun.svg b/src/assets/icons/svg/sun.svg new file mode 100644 index 0000000..f558efb --- /dev/null +++ b/src/assets/icons/svg/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/swap.svg b/src/assets/icons/svg/swap.svg new file mode 100644 index 0000000..d4c952f --- /dev/null +++ b/src/assets/icons/svg/swap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/sync.svg b/src/assets/icons/svg/sync.svg new file mode 100644 index 0000000..8afc252 --- /dev/null +++ b/src/assets/icons/svg/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tag.svg b/src/assets/icons/svg/tag.svg new file mode 100644 index 0000000..c6a8835 --- /dev/null +++ b/src/assets/icons/svg/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tags.svg b/src/assets/icons/svg/tags.svg new file mode 100644 index 0000000..7ef83c8 --- /dev/null +++ b/src/assets/icons/svg/tags.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/thumb-down-f.svg b/src/assets/icons/svg/thumb-down-f.svg new file mode 100644 index 0000000..0efd073 --- /dev/null +++ b/src/assets/icons/svg/thumb-down-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/thumb-down.svg b/src/assets/icons/svg/thumb-down.svg new file mode 100644 index 0000000..af86fde --- /dev/null +++ b/src/assets/icons/svg/thumb-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/thumb-up-f.svg b/src/assets/icons/svg/thumb-up-f.svg new file mode 100644 index 0000000..8b7b4a8 --- /dev/null +++ b/src/assets/icons/svg/thumb-up-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/thumb-up.svg b/src/assets/icons/svg/thumb-up.svg new file mode 100644 index 0000000..4a03509 --- /dev/null +++ b/src/assets/icons/svg/thumb-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/thunderbolt.svg b/src/assets/icons/svg/thunderbolt.svg new file mode 100644 index 0000000..afb0543 --- /dev/null +++ b/src/assets/icons/svg/thunderbolt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/to-bottom.svg b/src/assets/icons/svg/to-bottom.svg new file mode 100644 index 0000000..c08004d --- /dev/null +++ b/src/assets/icons/svg/to-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/to-left.svg b/src/assets/icons/svg/to-left.svg new file mode 100644 index 0000000..442c1d7 --- /dev/null +++ b/src/assets/icons/svg/to-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/to-right.svg b/src/assets/icons/svg/to-right.svg new file mode 100644 index 0000000..011f5cc --- /dev/null +++ b/src/assets/icons/svg/to-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/to-top.svg b/src/assets/icons/svg/to-top.svg new file mode 100644 index 0000000..6331e0d --- /dev/null +++ b/src/assets/icons/svg/to-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tool.svg b/src/assets/icons/svg/tool.svg new file mode 100644 index 0000000..c7e7236 --- /dev/null +++ b/src/assets/icons/svg/tool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/translate.svg b/src/assets/icons/svg/translate.svg new file mode 100644 index 0000000..454a2ba --- /dev/null +++ b/src/assets/icons/svg/translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/trophy.svg b/src/assets/icons/svg/trophy.svg new file mode 100644 index 0000000..763871f --- /dev/null +++ b/src/assets/icons/svg/trophy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/underline.svg b/src/assets/icons/svg/underline.svg new file mode 100644 index 0000000..83a6a63 --- /dev/null +++ b/src/assets/icons/svg/underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/undo.svg b/src/assets/icons/svg/undo.svg new file mode 100644 index 0000000..952565a --- /dev/null +++ b/src/assets/icons/svg/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/unfold.svg b/src/assets/icons/svg/unfold.svg new file mode 100644 index 0000000..40ac170 --- /dev/null +++ b/src/assets/icons/svg/unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/unlock.svg b/src/assets/icons/svg/unlock.svg new file mode 100644 index 0000000..7fc1269 --- /dev/null +++ b/src/assets/icons/svg/unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/unordered-list.svg b/src/assets/icons/svg/unordered-list.svg new file mode 100644 index 0000000..adf0d0b --- /dev/null +++ b/src/assets/icons/svg/unordered-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/up-circle.svg b/src/assets/icons/svg/up-circle.svg new file mode 100644 index 0000000..a03567c --- /dev/null +++ b/src/assets/icons/svg/up-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/up.svg b/src/assets/icons/svg/up.svg new file mode 100644 index 0000000..c2eac41 --- /dev/null +++ b/src/assets/icons/svg/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/upload.svg b/src/assets/icons/svg/upload.svg new file mode 100644 index 0000000..5e0e78b --- /dev/null +++ b/src/assets/icons/svg/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/user-add.svg b/src/assets/icons/svg/user-add.svg new file mode 100644 index 0000000..b6357d7 --- /dev/null +++ b/src/assets/icons/svg/user-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/user-group.svg b/src/assets/icons/svg/user-group.svg new file mode 100644 index 0000000..ca2907d --- /dev/null +++ b/src/assets/icons/svg/user-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/user.svg b/src/assets/icons/svg/user.svg new file mode 100644 index 0000000..74def9d --- /dev/null +++ b/src/assets/icons/svg/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/video-camera.svg b/src/assets/icons/svg/video-camera.svg new file mode 100644 index 0000000..0d0d0c9 --- /dev/null +++ b/src/assets/icons/svg/video-camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/voice.svg b/src/assets/icons/svg/voice.svg new file mode 100644 index 0000000..b4c7586 --- /dev/null +++ b/src/assets/icons/svg/voice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/wifi.svg b/src/assets/icons/svg/wifi.svg new file mode 100644 index 0000000..76eb58b --- /dev/null +++ b/src/assets/icons/svg/wifi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/woman.svg b/src/assets/icons/svg/woman.svg new file mode 100644 index 0000000..11917a9 --- /dev/null +++ b/src/assets/icons/svg/woman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/zoom-in.svg b/src/assets/icons/svg/zoom-in.svg new file mode 100644 index 0000000..6d850b5 --- /dev/null +++ b/src/assets/icons/svg/zoom-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/zoom-out.svg b/src/assets/icons/svg/zoom-out.svg new file mode 100644 index 0000000..8456d59 --- /dev/null +++ b/src/assets/icons/svg/zoom-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/avatar/female.png b/src/assets/images/avatar/female.png new file mode 100644 index 0000000..80a7d56 Binary files /dev/null and b/src/assets/images/avatar/female.png differ diff --git a/src/assets/images/avatar/male.png b/src/assets/images/avatar/male.png new file mode 100644 index 0000000..40839c1 Binary files /dev/null and b/src/assets/images/avatar/male.png differ diff --git a/src/assets/images/avatar/unknown.png b/src/assets/images/avatar/unknown.png new file mode 100644 index 0000000..997732a Binary files /dev/null and b/src/assets/images/avatar/unknown.png differ diff --git a/src/assets/images/login/login-bg.png b/src/assets/images/login/login-bg.png new file mode 100644 index 0000000..6bbd1c7 Binary files /dev/null and b/src/assets/images/login/login-bg.png differ diff --git a/src/assets/style/breakpoint.less b/src/assets/style/breakpoint.less new file mode 100644 index 0000000..584f21e --- /dev/null +++ b/src/assets/style/breakpoint.less @@ -0,0 +1,19 @@ +// ==============breakpoint============ + +// Extra small screen / phone +@screen-xs: 480px; + +// Small screen / tablet +@screen-sm: 576px; + +// Medium screen / desktop +@screen-md: 768px; + +// Large screen / wide desktop +@screen-lg: 992px; + +// Extra large screen / full hd +@screen-xl: 1200px; + +// Extra extra large screen / large desktop +@screen-xxl: 1600px; diff --git a/src/assets/style/global.less b/src/assets/style/global.less new file mode 100644 index 0000000..e332be0 --- /dev/null +++ b/src/assets/style/global.less @@ -0,0 +1,140 @@ +* { + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + font-size: 14px; + background-color: var(--color-bg-1); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +.echarts-tooltip-diy { + background: linear-gradient( + 304.17deg, + rgba(253, 254, 255, 0.6) -6.04%, + rgba(244, 247, 252, 0.6) 85.2% + ) !important; + border: none !important; + backdrop-filter: blur(10px) !important; + /* Note: backdrop-filter has minimal browser support */ + + border-radius: 6px !important; + .content-panel { + display: flex; + justify-content: space-between; + padding: 0 9px; + background: rgba(255, 255, 255, 0.8); + width: 164px; + height: 32px; + line-height: 32px; + box-shadow: 6px 0 20px rgba(34, 87, 188, 0.1); + border-radius: 4px; + margin-bottom: 4px; + } + .tooltip-title { + margin: 0 0 10px 0; + } + p { + margin: 0; + } + .tooltip-title, + .tooltip-value { + font-size: 13px; + line-height: 15px; + display: flex; + align-items: center; + text-align: right; + color: #1d2129; + font-weight: bold; + } + .tooltip-item-icon { + display: inline-block; + margin-right: 8px; + width: 10px; + height: 10px; + border-radius: 50%; + } +} + +.app-container { + padding: 0 20px 20px 20px; + .header { + margin-bottom: 16px; + &-query { + margin-bottom: 10px; + .arco-form-item-layout-inline { + margin-right: 15px; + } + } + &-operation { + &-right { + display: flex; + align-items: center; + justify-content: end; + } + } + } +} + +.general-card { + border-radius: 4px; + border: none; + & > .arco-card-header { + height: auto; + padding: 20px; + border: none; + } + & > .arco-card-body { + padding: 0 20px 20px 20px; + } +} + +.split-line { + border-color: rgb(var(--gray-2)); +} + +:deep(.arco-table-th) { + &:last-child { + .arco-table-th-item-title { + margin-left: 16px; + } + } +} + +.arco-table-cell { + .circle { + display: inline-block; + margin-right: 4px; + width: 6px; + height: 6px; + border-radius: 50%; + background-color: rgb(var(--blue-6)); + &.pass { + background-color: rgb(var(--green-6)); + } + &.fail { + background-color: rgb(var(--red-6)); + } + } +} + +fieldset { + padding: 15px 15px 0 15px; + margin-bottom: 15px; + border: 1px solid #e4e7ed; + border-radius: 3px; + background: #fff; +} +fieldset legend { + color: #5e6d82; + padding: 2px 5px 2px 5px; + border: 1px solid #e4e7ed; + border-radius: 3px; + background: #fff; +} \ No newline at end of file diff --git a/src/assets/world.json b/src/assets/world.json new file mode 100644 index 0000000..2d59731 --- /dev/null +++ b/src/assets/world.json @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[62.230651,35.270664],[62.984662,35.404041],[63.193538,35.857166],[63.982896,36.007957],[64.546479,36.312073],[64.746105,37.111818],[65.588948,37.305217],[65.745631,37.661164],[66.217385,37.39379],[66.518607,37.362784],[67.075782,37.356144],[67.83,37.144994],[68.135562,37.023115],[68.859446,37.344336],[69.196273,37.151144],[69.518785,37.608997],[70.116578,37.588223],[70.270574,37.735165],[70.376304,38.138396],[70.806821,38.486282],[71.348131,38.258905],[71.239404,37.953265],[71.541918,37.905774],[71.448693,37.065645],[71.844638,36.738171],[72.193041,36.948288],[72.63689,37.047558],[73.260056,37.495257],[73.948696,37.421566],[74.980002,37.41999],[75.158028,37.133031],[74.575893,37.020841],[74.067552,36.836176],[72.920025,36.720007],[71.846292,36.509942],[71.262348,36.074388],[71.498768,35.650563],[71.613076,35.153203],[71.115019,34.733126],[71.156773,34.348911],[70.881803,33.988856],[69.930543,34.02012],[70.323594,33.358533],[69.687147,33.105499],[69.262522,32.501944],[69.317764,31.901412],[68.926677,31.620189],[68.556932,31.71331],[67.792689,31.58293],[67.683394,31.303154],[66.938891,31.304911],[66.381458,30.738899],[66.346473,29.887943],[65.046862,29.472181],[64.350419,29.560031],[64.148002,29.340819],[63.550261,29.468331],[62.549857,29.318572],[60.874248,29.829239],[61.781222,30.73585],[61.699314,31.379506],[60.941945,31.548075],[60.863655,32.18292],[60.536078,32.981269],[60.9637,33.528832],[60.52843,33.676446],[60.803193,34.404102],[61.210817,35.650072]]]},"type":"Feature","id":"AFG","properties":{"name":"Afghanistan","id":"AFG","centroid":[69.11,34.28]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.326528,-5.87747],[16.57318,-6.622645],[16.860191,-7.222298],[17.089996,-7.545689],[17.47297,-8.068551],[18.134222,-7.987678],[18.464176,-7.847014],[19.016752,-7.988246],[19.166613,-7.738184],[19.417502,-7.155429],[20.037723,-7.116361],[20.091622,-6.94309],[20.601823,-6.939318],[20.514748,-7.299606],[21.728111,-7.290872],[21.746456,-7.920085],[21.949131,-8.305901],[21.801801,-8.908707],[21.875182,-9.523708],[22.208753,-9.894796],[22.155268,-11.084801],[22.402798,-10.993075],[22.837345,-11.017622],[23.456791,-10.867863],[23.912215,-10.926826],[24.017894,-11.237298],[23.904154,-11.722282],[24.079905,-12.191297],[23.930922,-12.565848],[24.016137,-12.911046],[21.933886,-12.898437],[21.887843,-16.08031],[22.562478,-16.898451],[23.215048,-17.523116],[21.377176,-17.930636],[18.956187,-17.789095],[18.263309,-17.309951],[14.209707,-17.353101],[14.058501,-17.423381],[13.462362,-16.971212],[12.814081,-16.941343],[12.215461,-17.111668],[11.734199,-17.301889],[11.640096,-16.673142],[11.778537,-15.793816],[12.123581,-14.878316],[12.175619,-14.449144],[12.500095,-13.5477],[12.738479,-13.137906],[13.312914,-12.48363],[13.633721,-12.038645],[13.738728,-11.297863],[13.686379,-10.731076],[13.387328,-10.373578],[13.120988,-9.766897],[12.87537,-9.166934],[12.929061,-8.959091],[13.236433,-8.562629],[12.93304,-7.596539],[12.728298,-6.927122],[12.227347,-6.294448],[12.322432,-6.100092],[12.735171,-5.965682],[13.024869,-5.984389],[13.375597,-5.864241],[16.326528,-5.87747]]],[[[12.436688,-5.684304],[12.182337,-5.789931],[11.914963,-5.037987],[12.318608,-4.60623],[12.62076,-4.438023],[12.995517,-4.781103],[12.631612,-4.991271],[12.468004,-5.248362],[12.436688,-5.684304]]]]},"type":"Feature","id":"AGO","properties":{"name":"Angola","id":"AGO","centroid":[13.15,-8.5]}},{"geometry":{"type":"Polygon","coordinates":[[[20.590247,41.855404],[20.463175,41.515089],[20.605182,41.086226],[21.02004,40.842727],[20.99999,40.580004],[20.674997,40.435],[20.615,40.110007],[20.150016,39.624998],[19.98,39.694993],[19.960002,39.915006],[19.406082,40.250773],[19.319059,40.72723],[19.40355,41.409566],[19.540027,41.719986],[19.371769,41.877548],[19.304486,42.195745],[19.738051,42.688247],[19.801613,42.500093],[20.0707,42.58863],[20.283755,42.32026],[20.52295,42.21787],[20.590247,41.855404]]]},"type":"Feature","id":"ALB","properties":{"name":"Albania","id":"ALB","centroid":[19.49,41.18]}},{"geometry":{"type":"Polygon","coordinates":[[[51.579519,24.245497],[51.757441,24.294073],[51.794389,24.019826],[52.577081,24.177439],[53.404007,24.151317],[54.008001,24.121758],[54.693024,24.797892],[55.439025,25.439145],[56.070821,26.055464],[56.261042,25.714606],[56.396847,24.924732],[55.886233,24.920831],[55.804119,24.269604],[55.981214,24.130543],[55.528632,23.933604],[55.525841,23.524869],[55.234489,23.110993],[55.208341,22.70833],[55.006803,22.496948],[52.000733,23.001154],[51.617708,24.014219],[51.579519,24.245497]]]},"type":"Feature","id":"ARE","properties":{"name":"United Arab Emirates","id":"ARE","centroid":[55.18,25.15]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.5,-55.2],[-66.45,-55.25],[-66.95992,-54.89681],[-67.56244,-54.87001],[-68.63335,-54.8695],[-68.63401,-52.63637],[-68.25,-53.1],[-67.75,-53.85],[-66.45,-54.45],[-65.05,-54.7],[-65.5,-55.2]]],[[[-64.964892,-22.075862],[-64.377021,-22.798091],[-63.986838,-21.993644],[-62.846468,-22.034985],[-62.685057,-22.249029],[-60.846565,-23.880713],[-60.028966,-24.032796],[-58.807128,-24.771459],[-57.777217,-25.16234],[-57.63366,-25.603657],[-58.618174,-27.123719],[-57.60976,-27.395899],[-56.486702,-27.548499],[-55.695846,-27.387837],[-54.788795,-26.621786],[-54.625291,-25.739255],[-54.13005,-25.547639],[-53.628349,-26.124865],[-53.648735,-26.923473],[-54.490725,-27.474757],[-55.162286,-27.881915],[-56.2909,-28.852761],[-57.625133,-30.216295],[-57.874937,-31.016556],[-58.14244,-32.044504],[-58.132648,-33.040567],[-58.349611,-33.263189],[-58.427074,-33.909454],[-58.495442,-34.43149],[-57.22583,-35.288027],[-57.362359,-35.97739],[-56.737487,-36.413126],[-56.788285,-36.901572],[-57.749157,-38.183871],[-59.231857,-38.72022],[-61.237445,-38.928425],[-62.335957,-38.827707],[-62.125763,-39.424105],[-62.330531,-40.172586],[-62.145994,-40.676897],[-62.745803,-41.028761],[-63.770495,-41.166789],[-64.73209,-40.802677],[-65.118035,-41.064315],[-64.978561,-42.058001],[-64.303408,-42.359016],[-63.755948,-42.043687],[-63.458059,-42.563138],[-64.378804,-42.873558],[-65.181804,-43.495381],[-65.328823,-44.501366],[-65.565269,-45.036786],[-66.509966,-45.039628],[-67.293794,-45.551896],[-67.580546,-46.301773],[-66.597066,-47.033925],[-65.641027,-47.236135],[-65.985088,-48.133289],[-67.166179,-48.697337],[-67.816088,-49.869669],[-68.728745,-50.264218],[-69.138539,-50.73251],[-68.815561,-51.771104],[-68.149995,-52.349983],[-68.571545,-52.299444],[-69.498362,-52.142761],[-71.914804,-52.009022],[-72.329404,-51.425956],[-72.309974,-50.67701],[-72.975747,-50.74145],[-73.328051,-50.378785],[-73.415436,-49.318436],[-72.648247,-48.878618],[-72.331161,-48.244238],[-72.447355,-47.738533],[-71.917258,-46.884838],[-71.552009,-45.560733],[-71.659316,-44.973689],[-71.222779,-44.784243],[-71.329801,-44.407522],[-71.793623,-44.207172],[-71.464056,-43.787611],[-71.915424,-43.408565],[-72.148898,-42.254888],[-71.746804,-42.051386],[-71.915734,-40.832339],[-71.680761,-39.808164],[-71.413517,-38.916022],[-70.814664,-38.552995],[-71.118625,-37.576827],[-71.121881,-36.658124],[-70.364769,-36.005089],[-70.388049,-35.169688],[-69.817309,-34.193571],[-69.814777,-33.273886],[-70.074399,-33.09121],[-70.535069,-31.36501],[-69.919008,-30.336339],[-70.01355,-29.367923],[-69.65613,-28.459141],[-69.001235,-27.521214],[-68.295542,-26.89934],[-68.5948,-26.506909],[-68.386001,-26.185016],[-68.417653,-24.518555],[-67.328443,-24.025303],[-66.985234,-22.986349],[-67.106674,-22.735925],[-66.273339,-21.83231],[-64.964892,-22.075862]]]]},"type":"Feature","id":"ARG","properties":{"name":"Argentina","id":"ARG","centroid":[-60,-36.3]}},{"geometry":{"type":"Polygon","coordinates":[[[43.582746,41.092143],[44.97248,41.248129],[45.179496,40.985354],[45.560351,40.81229],[45.359175,40.561504],[45.891907,40.218476],[45.610012,39.899994],[46.034534,39.628021],[46.483499,39.464155],[46.50572,38.770605],[46.143623,38.741201],[45.735379,39.319719],[45.739978,39.473999],[45.298145,39.471751],[45.001987,39.740004],[44.79399,39.713003],[44.400009,40.005],[43.656436,40.253564],[43.752658,40.740201],[43.582746,41.092143]]]},"type":"Feature","id":"ARM","properties":{"name":"Armenia","id":"ARM","centroid":[44.31,40.1]}},{"geometry":{"type":"Polygon","coordinates":[[[68.935,-48.625],[69.58,-48.94],[70.525,-49.065],[70.56,-49.255],[70.28,-49.71],[68.745,-49.775],[68.72,-49.2425],[68.8675,-48.83],[68.935,-48.625]]]},"type":"Feature","id":"ATF","properties":{"name":"French Southern and Antarctic Lands","id":"ATF","centroid":null}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[145.397978,-40.792549],[146.364121,-41.137695],[146.908584,-41.000546],[147.689259,-40.808258],[148.289068,-40.875438],[148.359865,-42.062445],[148.017301,-42.407024],[147.914052,-43.211522],[147.564564,-42.937689],[146.870343,-43.634597],[146.663327,-43.580854],[146.048378,-43.549745],[145.43193,-42.693776],[145.29509,-42.03361],[144.718071,-41.162552],[144.743755,-40.703975],[145.397978,-40.792549]]],[[[143.561811,-13.763656],[143.922099,-14.548311],[144.563714,-14.171176],[144.894908,-14.594458],[145.374724,-14.984976],[145.271991,-15.428205],[145.48526,-16.285672],[145.637033,-16.784918],[145.888904,-16.906926],[146.160309,-17.761655],[146.063674,-18.280073],[146.387478,-18.958274],[147.471082,-19.480723],[148.177602,-19.955939],[148.848414,-20.39121],[148.717465,-20.633469],[149.28942,-21.260511],[149.678337,-22.342512],[150.077382,-22.122784],[150.482939,-22.556142],[150.727265,-22.402405],[150.899554,-23.462237],[151.609175,-24.076256],[152.07354,-24.457887],[152.855197,-25.267501],[153.136162,-26.071173],[153.161949,-26.641319],[153.092909,-27.2603],[153.569469,-28.110067],[153.512108,-28.995077],[153.339095,-29.458202],[153.069241,-30.35024],[153.089602,-30.923642],[152.891578,-31.640446],[152.450002,-32.550003],[151.709117,-33.041342],[151.343972,-33.816023],[151.010555,-34.31036],[150.714139,-35.17346],[150.32822,-35.671879],[150.075212,-36.420206],[149.946124,-37.109052],[149.997284,-37.425261],[149.423882,-37.772681],[148.304622,-37.809061],[147.381733,-38.219217],[146.922123,-38.606532],[146.317922,-39.035757],[145.489652,-38.593768],[144.876976,-38.417448],[145.032212,-37.896188],[144.485682,-38.085324],[143.609974,-38.809465],[142.745427,-38.538268],[142.17833,-38.380034],[141.606582,-38.308514],[140.638579,-38.019333],[139.992158,-37.402936],[139.806588,-36.643603],[139.574148,-36.138362],[139.082808,-35.732754],[138.120748,-35.612296],[138.449462,-35.127261],[138.207564,-34.384723],[137.71917,-35.076825],[136.829406,-35.260535],[137.352371,-34.707339],[137.503886,-34.130268],[137.890116,-33.640479],[137.810328,-32.900007],[136.996837,-33.752771],[136.372069,-34.094766],[135.989043,-34.890118],[135.208213,-34.47867],[135.239218,-33.947953],[134.613417,-33.222778],[134.085904,-32.848072],[134.273903,-32.617234],[132.990777,-32.011224],[132.288081,-31.982647],[131.326331,-31.495803],[129.535794,-31.590423],[128.240938,-31.948489],[127.102867,-32.282267],[126.148714,-32.215966],[125.088623,-32.728751],[124.221648,-32.959487],[124.028947,-33.483847],[123.659667,-33.890179],[122.811036,-33.914467],[122.183064,-34.003402],[121.299191,-33.821036],[120.580268,-33.930177],[119.893695,-33.976065],[119.298899,-34.509366],[119.007341,-34.464149],[118.505718,-34.746819],[118.024972,-35.064733],[117.295507,-35.025459],[116.625109,-35.025097],[115.564347,-34.386428],[115.026809,-34.196517],[115.048616,-33.623425],[115.545123,-33.487258],[115.714674,-33.259572],[115.679379,-32.900369],[115.801645,-32.205062],[115.689611,-31.612437],[115.160909,-30.601594],[114.997043,-30.030725],[115.040038,-29.461095],[114.641974,-28.810231],[114.616498,-28.516399],[114.173579,-28.118077],[114.048884,-27.334765],[113.477498,-26.543134],[113.338953,-26.116545],[113.778358,-26.549025],[113.440962,-25.621278],[113.936901,-25.911235],[114.232852,-26.298446],[114.216161,-25.786281],[113.721255,-24.998939],[113.625344,-24.683971],[113.393523,-24.384764],[113.502044,-23.80635],[113.706993,-23.560215],[113.843418,-23.059987],[113.736552,-22.475475],[114.149756,-21.755881],[114.225307,-22.517488],[114.647762,-21.82952],[115.460167,-21.495173],[115.947373,-21.068688],[116.711615,-20.701682],[117.166316,-20.623599],[117.441545,-20.746899],[118.229559,-20.374208],[118.836085,-20.263311],[118.987807,-20.044203],[119.252494,-19.952942],[119.805225,-19.976506],[120.85622,-19.683708],[121.399856,-19.239756],[121.655138,-18.705318],[122.241665,-18.197649],[122.286624,-17.798603],[122.312772,-17.254967],[123.012574,-16.4052],[123.433789,-17.268558],[123.859345,-17.069035],[123.503242,-16.596506],[123.817073,-16.111316],[124.258287,-16.327944],[124.379726,-15.56706],[124.926153,-15.0751],[125.167275,-14.680396],[125.670087,-14.51007],[125.685796,-14.230656],[126.125149,-14.347341],[126.142823,-14.095987],[126.582589,-13.952791],[127.065867,-13.817968],[127.804633,-14.276906],[128.35969,-14.86917],[128.985543,-14.875991],[129.621473,-14.969784],[129.4096,-14.42067],[129.888641,-13.618703],[130.339466,-13.357376],[130.183506,-13.10752],[130.617795,-12.536392],[131.223495,-12.183649],[131.735091,-12.302453],[132.575298,-12.114041],[132.557212,-11.603012],[131.824698,-11.273782],[132.357224,-11.128519],[133.019561,-11.376411],[133.550846,-11.786515],[134.393068,-12.042365],[134.678632,-11.941183],[135.298491,-12.248606],[135.882693,-11.962267],[136.258381,-12.049342],[136.492475,-11.857209],[136.95162,-12.351959],[136.685125,-12.887223],[136.305407,-13.29123],[135.961758,-13.324509],[136.077617,-13.724278],[135.783836,-14.223989],[135.428664,-14.715432],[135.500184,-14.997741],[136.295175,-15.550265],[137.06536,-15.870762],[137.580471,-16.215082],[138.303217,-16.807604],[138.585164,-16.806622],[139.108543,-17.062679],[139.260575,-17.371601],[140.215245,-17.710805],[140.875463,-17.369069],[141.07111,-16.832047],[141.274095,-16.38887],[141.398222,-15.840532],[141.702183,-15.044921],[141.56338,-14.561333],[141.63552,-14.270395],[141.519869,-13.698078],[141.65092,-12.944688],[141.842691,-12.741548],[141.68699,-12.407614],[141.928629,-11.877466],[142.118488,-11.328042],[142.143706,-11.042737],[142.51526,-10.668186],[142.79731,-11.157355],[142.866763,-11.784707],[143.115947,-11.90563],[143.158632,-12.325656],[143.522124,-12.834358],[143.597158,-13.400422],[143.561811,-13.763656]]]]},"type":"Feature","id":"AUS","properties":{"name":"Australia","id":"AUS","centroid":[149.08,-35.15]}},{"geometry":{"type":"Polygon","coordinates":[[[16.979667,48.123497],[16.903754,47.714866],[16.340584,47.712902],[16.534268,47.496171],[16.202298,46.852386],[16.011664,46.683611],[15.137092,46.658703],[14.632472,46.431817],[13.806475,46.509306],[12.376485,46.767559],[12.153088,47.115393],[11.164828,46.941579],[11.048556,46.751359],[10.442701,46.893546],[9.932448,46.920728],[9.47997,47.10281],[9.632932,47.347601],[9.594226,47.525058],[9.896068,47.580197],[10.402084,47.302488],[10.544504,47.566399],[11.426414,47.523766],[12.141357,47.703083],[12.62076,47.672388],[12.932627,47.467646],[13.025851,47.637584],[12.884103,48.289146],[13.243357,48.416115],[13.595946,48.877172],[14.338898,48.555305],[14.901447,48.964402],[15.253416,49.039074],[16.029647,48.733899],[16.499283,48.785808],[16.960288,48.596982],[16.879983,48.470013],[16.979667,48.123497]]]},"type":"Feature","id":"AUT","properties":{"name":"Austria","id":"AUT","centroid":[16.22,48.12]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[45.001987,39.740004],[45.298145,39.471751],[45.739978,39.473999],[45.735379,39.319719],[46.143623,38.741201],[45.457722,38.874139],[44.952688,39.335765],[44.79399,39.713003],[45.001987,39.740004]]],[[[47.373315,41.219732],[47.815666,41.151416],[47.987283,41.405819],[48.584353,41.80887],[49.110264,41.282287],[49.618915,40.572924],[50.08483,40.526157],[50.392821,40.256561],[49.569202,40.176101],[49.395259,39.399482],[49.223228,39.049219],[48.856532,38.815486],[48.883249,38.320245],[48.634375,38.270378],[48.010744,38.794015],[48.355529,39.288765],[48.060095,39.582235],[47.685079,39.508364],[46.50572,38.770605],[46.483499,39.464155],[46.034534,39.628021],[45.610012,39.899994],[45.891907,40.218476],[45.359175,40.561504],[45.560351,40.81229],[45.179496,40.985354],[44.97248,41.248129],[45.217426,41.411452],[45.962601,41.123873],[46.501637,41.064445],[46.637908,41.181673],[46.145432,41.722802],[46.404951,41.860675],[46.686071,41.827137],[47.373315,41.219732]]]]},"type":"Feature","id":"AZE","properties":{"name":"Azerbaijan","id":"AZE","centroid":[49.56,40.29]}},{"geometry":{"type":"Polygon","coordinates":[[[29.339998,-4.499983],[29.276384,-3.293907],[29.024926,-2.839258],[29.632176,-2.917858],[29.938359,-2.348487],[30.469696,-2.413858],[30.527677,-2.807632],[30.743013,-3.034285],[30.752263,-3.35933],[30.50556,-3.568567],[30.116333,-4.090138],[29.753512,-4.452389],[29.339998,-4.499983]]]},"type":"Feature","id":"BDI","properties":{"name":"Burundi","id":"BDI","centroid":[29.18,-3.16]}},{"geometry":{"type":"Polygon","coordinates":[[[3.314971,51.345781],[4.047071,51.267259],[4.973991,51.475024],[5.606976,51.037298],[6.156658,50.803721],[6.043073,50.128052],[5.782417,50.090328],[5.674052,49.529484],[4.799222,49.985373],[4.286023,49.907497],[3.588184,50.378992],[3.123252,50.780363],[2.658422,50.796848],[2.513573,51.148506],[3.314971,51.345781]]]},"type":"Feature","id":"BEL","properties":{"name":"Belgium","id":"BEL","centroid":[4.21,50.51]}},{"geometry":{"type":"Polygon","coordinates":[[[2.691702,6.258817],[1.865241,6.142158],[1.618951,6.832038],[1.664478,9.12859],[1.463043,9.334624],[1.425061,9.825395],[1.077795,10.175607],[0.772336,10.470808],[0.899563,10.997339],[1.24347,11.110511],[1.447178,11.547719],[1.935986,11.64115],[2.154474,11.94015],[2.490164,12.233052],[2.848643,12.235636],[3.61118,11.660167],[3.572216,11.327939],[3.797112,10.734746],[3.60007,10.332186],[3.705438,10.06321],[3.220352,9.444153],[2.912308,9.137608],[2.723793,8.506845],[2.749063,7.870734],[2.691702,6.258817]]]},"type":"Feature","id":"BEN","properties":{"name":"Benin","id":"BEN","centroid":[2.42,6.23]}},{"geometry":{"type":"Polygon","coordinates":[[[-2.827496,9.642461],[-3.511899,9.900326],[-3.980449,9.862344],[-4.330247,9.610835],[-4.779884,9.821985],[-4.954653,10.152714],[-5.404342,10.370737],[-5.470565,10.95127],[-5.197843,11.375146],[-5.220942,11.713859],[-4.427166,12.542646],[-4.280405,13.228444],[-4.006391,13.472485],[-3.522803,13.337662],[-3.103707,13.541267],[-2.967694,13.79815],[-2.191825,14.246418],[-2.001035,14.559008],[-1.066363,14.973815],[-0.515854,15.116158],[-0.266257,14.924309],[0.374892,14.928908],[0.295646,14.444235],[0.429928,13.988733],[0.993046,13.33575],[1.024103,12.851826],[2.177108,12.625018],[2.154474,11.94015],[1.935986,11.64115],[1.447178,11.547719],[1.24347,11.110511],[0.899563,10.997339],[0.023803,11.018682],[-0.438702,11.098341],[-0.761576,10.93693],[-1.203358,11.009819],[-2.940409,10.96269],[-2.963896,10.395335],[-2.827496,9.642461]]]},"type":"Feature","id":"BFA","properties":{"name":"Burkina Faso","id":"BFA","centroid":[-1.3,12.15]}},{"geometry":{"type":"Polygon","coordinates":[[[92.672721,22.041239],[92.652257,21.324048],[92.303234,21.475485],[92.368554,20.670883],[92.082886,21.192195],[92.025215,21.70157],[91.834891,22.182936],[91.417087,22.765019],[90.496006,22.805017],[90.586957,22.392794],[90.272971,21.836368],[89.847467,22.039146],[89.70205,21.857116],[89.418863,21.966179],[89.031961,22.055708],[88.876312,22.879146],[88.52977,23.631142],[88.69994,24.233715],[88.084422,24.501657],[88.306373,24.866079],[88.931554,25.238692],[88.209789,25.768066],[88.563049,26.446526],[89.355094,26.014407],[89.832481,25.965082],[89.920693,25.26975],[90.872211,25.132601],[91.799596,25.147432],[92.376202,24.976693],[91.915093,24.130414],[91.46773,24.072639],[91.158963,23.503527],[91.706475,22.985264],[91.869928,23.624346],[92.146035,23.627499],[92.672721,22.041239]]]},"type":"Feature","id":"BGD","properties":{"name":"Bangladesh","id":"BGD","centroid":[90.23,23.42]}},{"geometry":{"type":"Polygon","coordinates":[[[22.65715,44.234923],[22.944832,43.823785],[23.332302,43.897011],[24.100679,43.741051],[25.569272,43.688445],[26.065159,43.943494],[27.2424,44.175986],[27.970107,43.812468],[28.558081,43.707462],[28.039095,43.293172],[27.673898,42.577892],[27.99672,42.007359],[27.135739,42.141485],[26.117042,41.826905],[26.106138,41.328899],[25.197201,41.234486],[24.492645,41.583896],[23.692074,41.309081],[22.952377,41.337994],[22.881374,41.999297],[22.380526,42.32026],[22.545012,42.461362],[22.436595,42.580321],[22.604801,42.898519],[22.986019,43.211161],[22.500157,43.642814],[22.410446,44.008063],[22.65715,44.234923]]]},"type":"Feature","id":"BGR","properties":{"name":"Bulgaria","id":"BGR","centroid":[23.2,42.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.53466,23.75975],[-77.78,23.71],[-78.03405,24.28615],[-78.40848,24.57564],[-78.19087,25.2103],[-77.89,25.17],[-77.54,24.34],[-77.53466,23.75975]]],[[[-77.82,26.58],[-78.91,26.42],[-78.98,26.79],[-78.51,26.87],[-77.85,26.84],[-77.82,26.58]]],[[[-77,26.59],[-77.17255,25.87918],[-77.35641,26.00735],[-77.34,26.53],[-77.78802,26.92516],[-77.79,27.04],[-77,26.59]]]]},"type":"Feature","id":"BHS","properties":{"name":"The Bahamas","id":"BHS","centroid":[-77.2,25.05]}},{"geometry":{"type":"Polygon","coordinates":[[[19.005486,44.860234],[19.36803,44.863],[19.11761,44.42307],[19.59976,44.03847],[19.454,43.5681],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674922,43.028563],[17.297373,43.446341],[16.916156,43.667722],[16.456443,44.04124],[16.23966,44.351143],[15.750026,44.818712],[15.959367,45.233777],[16.318157,45.004127],[16.534939,45.211608],[17.002146,45.233777],[17.861783,45.06774],[18.553214,45.08159],[19.005486,44.860234]]]},"type":"Feature","id":"BIH","properties":{"name":"Bosnia and Herzegovina","id":"BIH","centroid":[18.25,43.52]}},{"geometry":{"type":"Polygon","coordinates":[[[23.484128,53.912498],[24.450684,53.905702],[25.536354,54.282423],[25.768433,54.846963],[26.588279,55.167176],[26.494331,55.615107],[27.10246,55.783314],[28.176709,56.16913],[29.229513,55.918344],[29.371572,55.670091],[29.896294,55.789463],[30.873909,55.550976],[30.971836,55.081548],[30.757534,54.811771],[31.384472,54.157056],[31.791424,53.974639],[31.731273,53.794029],[32.405599,53.618045],[32.693643,53.351421],[32.304519,53.132726],[31.497644,53.167427],[31.305201,53.073996],[31.540018,52.742052],[31.785998,52.101678],[30.927549,52.042353],[30.619454,51.822806],[30.555117,51.319503],[30.157364,51.416138],[29.254938,51.368234],[28.992835,51.602044],[28.617613,51.427714],[28.241615,51.572227],[27.454066,51.592303],[26.337959,51.832289],[25.327788,51.910656],[24.553106,51.888461],[24.005078,51.617444],[23.527071,51.578454],[23.508002,52.023647],[23.199494,52.486977],[23.799199,52.691099],[23.804935,53.089731],[23.527536,53.470122],[23.484128,53.912498]]]},"type":"Feature","id":"BLR","properties":{"name":"Belarus","id":"BLR","centroid":[27.3,53.52]}},{"geometry":{"type":"Polygon","coordinates":[[[-89.14308,17.808319],[-89.150909,17.955468],[-89.029857,18.001511],[-88.848344,17.883198],[-88.490123,18.486831],[-88.300031,18.499982],[-88.296336,18.353273],[-88.106813,18.348674],[-88.123479,18.076675],[-88.285355,17.644143],[-88.197867,17.489475],[-88.302641,17.131694],[-88.239518,17.036066],[-88.355428,16.530774],[-88.551825,16.265467],[-88.732434,16.233635],[-88.930613,15.887273],[-89.229122,15.886938],[-89.150806,17.015577],[-89.14308,17.808319]]]},"type":"Feature","id":"BLZ","properties":{"name":"Belize","id":"BLZ","centroid":[-88.3,17.18]}},{"geometry":{"type":"Polygon","coordinates":[[[-64.7799734332998,32.3072000581802],[-64.7873319183061,32.3039237143428],[-64.7946942710173,32.3032682700388],[-64.8094297981283,32.3098175728414],[-64.8167896352437,32.3058845718466],[-64.8101968029642,32.3022833180511],[-64.7962291465484,32.2934409732427],[-64.7815086336978,32.2868973114514],[-64.7997025513437,32.2796896417328],[-64.8066707691087,32.2747767569465],[-64.8225587873683,32.2669111289395],[-64.8287548840306,32.2669075473817],[-64.8306732143498,32.2583944840235],[-64.8399924854972,32.254782282336],[-64.8566090462354,32.2547740387514],[-64.8682296789446,32.2616393614322],[-64.8628241459563,32.2724481933959],[-64.8748651338951,32.2757120264753],[-64.8717752856644,32.2819371582026],[-64.8671422127295,32.2930760547989],[-64.8559068764437,32.2960321186471],[-64.8597429072279,32.3015842021933],[-64.8439233486717,32.3140553852543],[-64.8350242329311,32.3242161760006],[-64.8338690593672,32.3294587561557],[-64.8520298651164,32.3110911879954],[-64.8635922932573,32.3048469433363],[-64.8686668994079,32.30910745083],[-64.8721354593415,32.3041908606301],[-64.8779667328485,32.3038632800462],[-64.8780046844321,32.2907757831692],[-64.8849776658292,32.2819261366004],[-64.8783230004629,32.2613001418681],[-64.863194968877,32.2465799485801],[-64.8519819555722,32.2485519134663],[-64.842311980074,32.2492123317296],[-64.8388242605209,32.2475773472534],[-64.8334002575532,32.2462714714698],[-64.8256389530584,32.2472637398594],[-64.8205697556026,32.2531698880328],[-64.8105087275579,32.2561208974156],[-64.7900177727338,32.2659446936992],[-64.7745415970416,32.2718413023427],[-64.7644742436426,32.2855931353214],[-64.7551803442276,32.2908326702531],[-64.7423982971436,32.2996734994024],[-64.7206991797682,32.3137542201258],[-64.7117851247134,32.3176823360806],[-64.6962778813133,32.3275029115532],[-64.6768921127452,32.3324095397555],[-64.6567136927777,32.3451776458469],[-64.6532168823499,32.3494356627941],[-64.6605720384429,32.3589423487763],[-64.65125819471,32.3615600906466],[-64.6462011670816,32.36975169749],[-64.6613227512832,32.3763135008721],[-64.6690666074397,32.388444543924],[-64.6834270548595,32.3854968316788],[-64.6954617672714,32.3763221285869],[-64.70438689565,32.3704254760469],[-64.7117569982798,32.368132600249],[-64.7061764744404,32.3600110593559],[-64.700531552697,32.3590601356818],[-64.6940348033967,32.3640708659835],[-64.6895164826082,32.3633598579866],[-64.6864150099255,32.3547797587266],[-64.6824635995504,32.3540628176846],[-64.6835876652835,32.3626447677968],[-64.6801998697415,32.3631199096979],[-64.6672170444687,32.3597751617473],[-64.6598811264978,32.3497625771755],[-64.6737331235384,32.3390281851635],[-64.6887090648183,32.3342439408053],[-64.706732854446,32.3429010723036],[-64.7149301576112,32.3552188753513],[-64.7185967666669,32.3552239212394],[-64.7214189847314,32.3518830231342],[-64.7270616067222,32.3466461715475],[-64.734962460882,32.3442819830499],[-64.7383521549094,32.3407216514918],[-64.7411729976333,32.3311790864627],[-64.7423019216485,32.323311561213],[-64.7462482354281,32.318538611581],[-64.7566773739613,32.3130509130175],[-64.768738200563,32.3088369816572],[-64.7799734332998,32.3072000581802]]]},"type":"Feature","id":"BMU","properties":{"name":"Bermuda","id":"BMU","centroid":[-64.47,32.18]}},{"geometry":{"type":"Polygon","coordinates":[[[-62.846468,-22.034985],[-63.986838,-21.993644],[-64.377021,-22.798091],[-64.964892,-22.075862],[-66.273339,-21.83231],[-67.106674,-22.735925],[-67.82818,-22.872919],[-68.219913,-21.494347],[-68.757167,-20.372658],[-68.442225,-19.405068],[-68.966818,-18.981683],[-69.100247,-18.260125],[-69.590424,-17.580012],[-68.959635,-16.500698],[-69.389764,-15.660129],[-69.160347,-15.323974],[-69.339535,-14.953195],[-68.948887,-14.453639],[-68.929224,-13.602684],[-68.88008,-12.899729],[-68.66508,-12.5613],[-69.529678,-10.951734],[-68.786158,-11.03638],[-68.271254,-11.014521],[-68.048192,-10.712059],[-67.173801,-10.306812],[-66.646908,-9.931331],[-65.338435,-9.761988],[-65.444837,-10.511451],[-65.321899,-10.895872],[-65.402281,-11.56627],[-64.316353,-12.461978],[-63.196499,-12.627033],[-62.80306,-13.000653],[-62.127081,-13.198781],[-61.713204,-13.489202],[-61.084121,-13.479384],[-60.503304,-13.775955],[-60.459198,-14.354007],[-60.264326,-14.645979],[-60.251149,-15.077219],[-60.542966,-15.09391],[-60.15839,-16.258284],[-58.24122,-16.299573],[-58.388058,-16.877109],[-58.280804,-17.27171],[-57.734558,-17.552468],[-57.498371,-18.174188],[-57.676009,-18.96184],[-57.949997,-19.400004],[-57.853802,-19.969995],[-58.166392,-20.176701],[-58.183471,-19.868399],[-59.115042,-19.356906],[-60.043565,-19.342747],[-61.786326,-19.633737],[-62.265961,-20.513735],[-62.291179,-21.051635],[-62.685057,-22.249029],[-62.846468,-22.034985]]]},"type":"Feature","id":"BOL","properties":{"name":"Bolivia","id":"BOL","centroid":[-68.1,-16.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.2909,-28.852761],[-55.162286,-27.881915],[-54.490725,-27.474757],[-53.648735,-26.923473],[-53.628349,-26.124865],[-54.13005,-25.547639],[-54.625291,-25.739255],[-54.428946,-25.162185],[-54.293476,-24.5708],[-54.29296,-24.021014],[-54.652834,-23.839578],[-55.027902,-24.001274],[-55.400747,-23.956935],[-55.517639,-23.571998],[-55.610683,-22.655619],[-55.797958,-22.35693],[-56.473317,-22.0863],[-56.88151,-22.282154],[-57.937156,-22.090176],[-57.870674,-20.732688],[-58.166392,-20.176701],[-57.853802,-19.969995],[-57.949997,-19.400004],[-57.676009,-18.96184],[-57.498371,-18.174188],[-57.734558,-17.552468],[-58.280804,-17.27171],[-58.388058,-16.877109],[-58.24122,-16.299573],[-60.15839,-16.258284],[-60.542966,-15.09391],[-60.251149,-15.077219],[-60.264326,-14.645979],[-60.459198,-14.354007],[-60.503304,-13.775955],[-61.084121,-13.479384],[-61.713204,-13.489202],[-62.127081,-13.198781],[-62.80306,-13.000653],[-63.196499,-12.627033],[-64.316353,-12.461978],[-65.402281,-11.56627],[-65.321899,-10.895872],[-65.444837,-10.511451],[-65.338435,-9.761988],[-66.646908,-9.931331],[-67.173801,-10.306812],[-68.048192,-10.712059],[-68.271254,-11.014521],[-68.786158,-11.03638],[-69.529678,-10.951734],[-70.093752,-11.123972],[-70.548686,-11.009147],[-70.481894,-9.490118],[-71.302412,-10.079436],[-72.184891,-10.053598],[-72.563033,-9.520194],[-73.226713,-9.462213],[-73.015383,-9.032833],[-73.571059,-8.424447],[-73.987235,-7.52383],[-73.723401,-7.340999],[-73.724487,-6.918595],[-73.120027,-6.629931],[-73.219711,-6.089189],[-72.964507,-5.741251],[-72.891928,-5.274561],[-71.748406,-4.593983],[-70.928843,-4.401591],[-70.794769,-4.251265],[-69.893635,-4.298187],[-69.444102,-1.556287],[-69.420486,-1.122619],[-69.577065,-0.549992],[-70.020656,-0.185156],[-70.015566,0.541414],[-69.452396,0.706159],[-69.252434,0.602651],[-69.218638,0.985677],[-69.804597,1.089081],[-69.816973,1.714805],[-67.868565,1.692455],[-67.53781,2.037163],[-67.259998,1.719999],[-67.065048,1.130112],[-66.876326,1.253361],[-66.325765,0.724452],[-65.548267,0.789254],[-65.354713,1.095282],[-64.611012,1.328731],[-64.199306,1.492855],[-64.083085,1.916369],[-63.368788,2.2009],[-63.422867,2.411068],[-64.269999,2.497006],[-64.408828,3.126786],[-64.368494,3.79721],[-64.816064,4.056445],[-64.628659,4.148481],[-63.888343,4.02053],[-63.093198,3.770571],[-62.804533,4.006965],[-62.08543,4.162124],[-60.966893,4.536468],[-60.601179,4.918098],[-60.733574,5.200277],[-60.213683,5.244486],[-59.980959,5.014061],[-60.111002,4.574967],[-59.767406,4.423503],[-59.53804,3.958803],[-59.815413,3.606499],[-59.974525,2.755233],[-59.718546,2.24963],[-59.646044,1.786894],[-59.030862,1.317698],[-58.540013,1.268088],[-58.429477,1.463942],[-58.11345,1.507195],[-57.660971,1.682585],[-57.335823,1.948538],[-56.782704,1.863711],[-56.539386,1.899523],[-55.995698,1.817667],[-55.9056,2.021996],[-56.073342,2.220795],[-55.973322,2.510364],[-55.569755,2.421506],[-55.097587,2.523748],[-54.524754,2.311849],[-54.088063,2.105557],[-53.778521,2.376703],[-53.554839,2.334897],[-53.418465,2.053389],[-52.939657,2.124858],[-52.556425,2.504705],[-52.249338,3.241094],[-51.657797,4.156232],[-51.317146,4.203491],[-51.069771,3.650398],[-50.508875,1.901564],[-49.974076,1.736483],[-49.947101,1.04619],[-50.699251,0.222984],[-50.388211,-0.078445],[-48.620567,-0.235489],[-48.584497,-1.237805],[-47.824956,-0.581618],[-46.566584,-0.941028],[-44.905703,-1.55174],[-44.417619,-2.13775],[-44.581589,-2.691308],[-43.418791,-2.38311],[-41.472657,-2.912018],[-39.978665,-2.873054],[-38.500383,-3.700652],[-37.223252,-4.820946],[-36.452937,-5.109404],[-35.597796,-5.149504],[-35.235389,-5.464937],[-34.89603,-6.738193],[-34.729993,-7.343221],[-35.128212,-8.996401],[-35.636967,-9.649282],[-37.046519,-11.040721],[-37.683612,-12.171195],[-38.423877,-13.038119],[-38.673887,-13.057652],[-38.953276,-13.79337],[-38.882298,-15.667054],[-39.161092,-17.208407],[-39.267339,-17.867746],[-39.583521,-18.262296],[-39.760823,-19.599113],[-40.774741,-20.904512],[-40.944756,-21.937317],[-41.754164,-22.370676],[-41.988284,-22.97007],[-43.074704,-22.967693],[-44.647812,-23.351959],[-45.352136,-23.796842],[-46.472093,-24.088969],[-47.648972,-24.885199],[-48.495458,-25.877025],[-48.641005,-26.623698],[-48.474736,-27.175912],[-48.66152,-28.186135],[-48.888457,-28.674115],[-49.587329,-29.224469],[-50.696874,-30.984465],[-51.576226,-31.777698],[-52.256081,-32.24537],[-52.7121,-33.196578],[-53.373662,-33.768378],[-53.650544,-33.202004],[-53.209589,-32.727666],[-53.787952,-32.047243],[-54.572452,-31.494511],[-55.60151,-30.853879],[-55.973245,-30.883076],[-56.976026,-30.109686],[-57.625133,-30.216295]]]},"type":"Feature","id":"BRA","properties":{"name":"Brazil","id":"BRA","centroid":[-47.55,-15.47]}},{"geometry":{"type":"Polygon","coordinates":[[[114.204017,4.525874],[114.599961,4.900011],[115.45071,5.44773],[115.4057,4.955228],[115.347461,4.316636],[114.869557,4.348314],[114.659596,4.007637],[114.204017,4.525874]]]},"type":"Feature","id":"BRN","properties":{"name":"Brunei","id":"BRN","centroid":[115,4.52]}},{"geometry":{"type":"Polygon","coordinates":[[[91.696657,27.771742],[92.103712,27.452614],[92.033484,26.83831],[91.217513,26.808648],[90.373275,26.875724],[89.744528,26.719403],[88.835643,27.098966],[88.814248,27.299316],[89.47581,28.042759],[90.015829,28.296439],[90.730514,28.064954],[91.258854,28.040614],[91.696657,27.771742]]]},"type":"Feature","id":"BTN","properties":{"name":"Bhutan","id":"BTN","centroid":[89.45,27.31]}},{"geometry":{"type":"Polygon","coordinates":[[[25.649163,-18.536026],[25.850391,-18.714413],[26.164791,-19.293086],[27.296505,-20.39152],[27.724747,-20.499059],[27.727228,-20.851802],[28.02137,-21.485975],[28.794656,-21.639454],[29.432188,-22.091313],[28.017236,-22.827754],[27.11941,-23.574323],[26.786407,-24.240691],[26.485753,-24.616327],[25.941652,-24.696373],[25.765849,-25.174845],[25.664666,-25.486816],[25.025171,-25.71967],[24.211267,-25.670216],[23.73357,-25.390129],[23.312097,-25.26869],[22.824271,-25.500459],[22.579532,-25.979448],[22.105969,-26.280256],[21.605896,-26.726534],[20.889609,-26.828543],[20.66647,-26.477453],[20.758609,-25.868136],[20.165726,-24.917962],[19.895768,-24.76779],[19.895458,-21.849157],[20.881134,-21.814327],[20.910641,-18.252219],[21.65504,-18.219146],[23.196858,-17.869038],[23.579006,-18.281261],[24.217365,-17.889347],[24.520705,-17.887125],[25.084443,-17.661816],[25.264226,-17.73654],[25.649163,-18.536026]]]},"type":"Feature","id":"BWA","properties":{"name":"Botswana","id":"BWA","centroid":[25.57,-24.45]}},{"geometry":{"type":"Polygon","coordinates":[[[15.27946,7.421925],[16.106232,7.497088],[16.290562,7.754307],[16.456185,7.734774],[16.705988,7.508328],[17.96493,7.890914],[18.389555,8.281304],[18.911022,8.630895],[18.81201,8.982915],[19.094008,9.074847],[20.059685,9.012706],[21.000868,9.475985],[21.723822,10.567056],[22.231129,10.971889],[22.864165,11.142395],[22.977544,10.714463],[23.554304,10.089255],[23.55725,9.681218],[23.394779,9.265068],[23.459013,8.954286],[23.805813,8.666319],[24.567369,8.229188],[25.114932,7.825104],[25.124131,7.500085],[25.796648,6.979316],[26.213418,6.546603],[26.465909,5.946717],[27.213409,5.550953],[27.374226,5.233944],[27.044065,5.127853],[26.402761,5.150875],[25.650455,5.256088],[25.278798,5.170408],[25.128833,4.927245],[24.805029,4.897247],[24.410531,5.108784],[23.297214,4.609693],[22.84148,4.710126],[22.704124,4.633051],[22.405124,4.02916],[21.659123,4.224342],[20.927591,4.322786],[20.290679,4.691678],[19.467784,5.031528],[18.932312,4.709506],[18.542982,4.201785],[18.453065,3.504386],[17.8099,3.560196],[17.133042,3.728197],[16.537058,3.198255],[16.012852,2.26764],[15.907381,2.557389],[15.862732,3.013537],[15.405396,3.335301],[15.03622,3.851367],[14.950953,4.210389],[14.478372,4.732605],[14.558936,5.030598],[14.459407,5.451761],[14.53656,6.226959],[14.776545,6.408498],[15.27946,7.421925]]]},"type":"Feature","id":"CAF","properties":{"name":"Central African Republic","id":"CAF","centroid":[18.33,4.22]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-63.6645,46.55001],[-62.9393,46.41587],[-62.01208,46.44314],[-62.50391,46.03339],[-62.87433,45.96818],[-64.1428,46.39265],[-64.39261,46.72747],[-64.01486,47.03601],[-63.6645,46.55001]]],[[[-61.806305,49.10506],[-62.29318,49.08717],[-63.58926,49.40069],[-64.51912,49.87304],[-64.17322,49.95718],[-62.85829,49.70641],[-61.835585,49.28855],[-61.806305,49.10506]]],[[[-123.510002,48.510011],[-124.012891,48.370846],[-125.655013,48.825005],[-125.954994,49.179996],[-126.850004,49.53],[-127.029993,49.814996],[-128.059336,49.994959],[-128.444584,50.539138],[-128.358414,50.770648],[-127.308581,50.552574],[-126.695001,50.400903],[-125.755007,50.295018],[-125.415002,49.950001],[-124.920768,49.475275],[-123.922509,49.062484],[-123.510002,48.510011]]],[[[-56.134036,50.68701],[-56.795882,49.812309],[-56.143105,50.150117],[-55.471492,49.935815],[-55.822401,49.587129],[-54.935143,49.313011],[-54.473775,49.556691],[-53.476549,49.249139],[-53.786014,48.516781],[-53.086134,48.687804],[-52.958648,48.157164],[-52.648099,47.535548],[-53.069158,46.655499],[-53.521456,46.618292],[-54.178936,46.807066],[-53.961869,47.625207],[-54.240482,47.752279],[-55.400773,46.884994],[-55.997481,46.91972],[-55.291219,47.389562],[-56.250799,47.632545],[-57.325229,47.572807],[-59.266015,47.603348],[-59.419494,47.899454],[-58.796586,48.251525],[-59.231625,48.523188],[-58.391805,49.125581],[-57.35869,50.718274],[-56.73865,51.287438],[-55.870977,51.632094],[-55.406974,51.588273],[-55.600218,51.317075],[-56.134036,50.68701]]],[[[-132.710008,54.040009],[-132.710009,54.040009],[-132.710008,54.040009],[-132.710008,54.040009],[-131.74999,54.120004],[-132.04948,52.984621],[-131.179043,52.180433],[-131.57783,52.182371],[-132.180428,52.639707],[-132.549992,53.100015],[-133.054611,53.411469],[-133.239664,53.85108],[-133.180004,54.169975],[-132.710008,54.040009]]],[[[-79.26582,62.158675],[-79.65752,61.63308],[-80.09956,61.7181],[-80.36215,62.01649],[-80.315395,62.085565],[-79.92939,62.3856],[-79.52002,62.36371],[-79.26582,62.158675]]],[[[-81.89825,62.7108],[-83.06857,62.15922],[-83.77462,62.18231],[-83.99367,62.4528],[-83.25048,62.91409],[-81.87699,62.90458],[-81.89825,62.7108]]],[[[-85.161308,65.657285],[-84.975764,65.217518],[-84.464012,65.371772],[-83.882626,65.109618],[-82.787577,64.766693],[-81.642014,64.455136],[-81.55344,63.979609],[-80.817361,64.057486],[-80.103451,63.725981],[-80.99102,63.411246],[-82.547178,63.651722],[-83.108798,64.101876],[-84.100417,63.569712],[-85.523405,63.052379],[-85.866769,63.637253],[-87.221983,63.541238],[-86.35276,64.035833],[-86.224886,64.822917],[-85.883848,65.738778],[-85.161308,65.657285]]],[[[-75.86588,67.14886],[-76.98687,67.09873],[-77.2364,67.58809],[-76.81166,68.14856],[-75.89521,68.28721],[-75.1145,68.01036],[-75.10333,67.58202],[-75.21597,67.44425],[-75.86588,67.14886]]],[[[-95.647681,69.10769],[-96.269521,68.75704],[-97.617401,69.06003],[-98.431801,68.9507],[-99.797401,69.40003],[-98.917401,69.71003],[-98.218261,70.14354],[-97.157401,69.86003],[-96.557401,69.68003],[-96.257401,69.49003],[-95.647681,69.10769]]],[[[-90.5471,69.49766],[-90.55151,68.47499],[-89.21515,69.25873],[-88.01966,68.61508],[-88.31749,67.87338],[-87.35017,67.19872],[-86.30607,67.92146],[-85.57664,68.78456],[-85.52197,69.88211],[-84.10081,69.80539],[-82.62258,69.65826],[-81.28043,69.16202],[-81.2202,68.66567],[-81.96436,68.13253],[-81.25928,67.59716],[-81.38653,67.11078],[-83.34456,66.41154],[-84.73542,66.2573],[-85.76943,66.55833],[-86.0676,66.05625],[-87.03143,65.21297],[-87.32324,64.77563],[-88.48296,64.09897],[-89.91444,64.03273],[-90.70398,63.61017],[-90.77004,62.96021],[-91.93342,62.83508],[-93.15698,62.02469],[-94.24153,60.89865],[-94.62931,60.11021],[-94.6846,58.94882],[-93.21502,58.78212],[-92.76462,57.84571],[-92.29703,57.08709],[-90.89769,57.28468],[-89.03953,56.85172],[-88.03978,56.47162],[-87.32421,55.99914],[-86.07121,55.72383],[-85.01181,55.3026],[-83.36055,55.24489],[-82.27285,55.14832],[-82.4362,54.28227],[-82.12502,53.27703],[-81.40075,52.15788],[-79.91289,51.20842],[-79.14301,51.53393],[-78.60191,52.56208],[-79.12421,54.14145],[-79.82958,54.66772],[-78.22874,55.13645],[-77.0956,55.83741],[-76.54137,56.53423],[-76.62319,57.20263],[-77.30226,58.05209],[-78.51688,58.80458],[-77.33676,59.85261],[-77.77272,60.75788],[-78.10687,62.31964],[-77.41067,62.55053],[-75.69621,62.2784],[-74.6682,62.18111],[-73.83988,62.4438],[-72.90853,62.10507],[-71.67708,61.52535],[-71.37369,61.13717],[-69.59042,61.06141],[-69.62033,60.22125],[-69.2879,58.95736],[-68.37455,58.80106],[-67.64976,58.21206],[-66.20178,58.76731],[-65.24517,59.87071],[-64.58352,60.33558],[-63.80475,59.4426],[-62.50236,58.16708],[-61.39655,56.96745],[-61.79866,56.33945],[-60.46853,55.77548],[-59.56962,55.20407],[-57.97508,54.94549],[-57.3332,54.6265],[-56.93689,53.78032],[-56.15811,53.64749],[-55.75632,53.27036],[-55.68338,52.14664],[-56.40916,51.7707],[-57.12691,51.41972],[-58.77482,51.0643],[-60.03309,50.24277],[-61.72366,50.08046],[-63.86251,50.29099],[-65.36331,50.2982],[-66.39905,50.22897],[-67.23631,49.51156],[-68.51114,49.06836],[-69.95362,47.74488],[-71.10458,46.82171],[-70.25522,46.98606],[-68.65,48.3],[-66.55243,49.1331],[-65.05626,49.23278],[-64.17099,48.74248],[-65.11545,48.07085],[-64.79854,46.99297],[-64.47219,46.23849],[-63.17329,45.73902],[-61.52072,45.88377],[-60.51815,47.00793],[-60.4486,46.28264],[-59.80287,45.9204],[-61.03988,45.26525],[-63.25471,44.67014],[-64.24656,44.26553],[-65.36406,43.54523],[-66.1234,43.61867],[-66.16173,44.46512],[-64.42549,45.29204],[-66.02605,45.25931],[-67.13741,45.13753],[-67.79134,45.70281],[-67.79046,47.06636],[-68.23444,47.35486],[-68.905,47.185],[-69.237216,47.447781],[-69.99997,46.69307],[-70.305,45.915],[-70.66,45.46],[-71.08482,45.30524],[-71.405,45.255],[-71.50506,45.0082],[-73.34783,45.00738],[-74.867,45.00048],[-75.31821,44.81645],[-76.375,44.09631],[-76.5,44.018459],[-76.820034,43.628784],[-77.737885,43.629056],[-78.72028,43.625089],[-79.171674,43.466339],[-79.01,43.27],[-78.92,42.965],[-78.939362,42.863611],[-80.247448,42.3662],[-81.277747,42.209026],[-82.439278,41.675105],[-82.690089,41.675105],[-83.02981,41.832796],[-83.142,41.975681],[-83.12,42.08],[-82.9,42.43],[-82.43,42.98],[-82.137642,43.571088],[-82.337763,44.44],[-82.550925,45.347517],[-83.592851,45.816894],[-83.469551,45.994686],[-83.616131,46.116927],[-83.890765,46.116927],[-84.091851,46.275419],[-84.14212,46.512226],[-84.3367,46.40877],[-84.6049,46.4396],[-84.543749,46.538684],[-84.779238,46.637102],[-84.87608,46.900083],[-85.652363,47.220219],[-86.461991,47.553338],[-87.439793,47.94],[-88.378114,48.302918],[-89.272917,48.019808],[-89.6,48.01],[-90.83,48.27],[-91.64,48.14],[-92.61,48.45],[-93.63087,48.60926],[-94.32914,48.67074],[-94.64,48.84],[-94.81758,49.38905],[-95.15609,49.38425],[-95.15907,49],[-97.22872,49.0007],[-100.65,49],[-104.04826,48.99986],[-107.05,49],[-110.05,49],[-113,49],[-116.04818,49],[-117.03121,49],[-120,49],[-122.84,49],[-122.97421,49.002538],[-124.91024,49.98456],[-125.62461,50.41656],[-127.43561,50.83061],[-127.99276,51.71583],[-127.85032,52.32961],[-129.12979,52.75538],[-129.30523,53.56159],[-130.51497,54.28757],[-130.53611,54.80278],[-129.98,55.285],[-130.00778,55.91583],[-131.70781,56.55212],[-132.73042,57.69289],[-133.35556,58.41028],[-134.27111,58.86111],[-134.945,59.27056],[-135.47583,59.78778],[-136.47972,59.46389],[-137.4525,58.905],[-138.34089,59.56211],[-139.039,60],[-140.013,60.27682],[-140.99778,60.30639],[-140.9925,66.00003],[-140.986,69.712],[-139.12052,69.47102],[-137.54636,68.99002],[-136.50358,68.89804],[-135.62576,69.31512],[-134.41464,69.62743],[-132.92925,69.50534],[-131.43136,69.94451],[-129.79471,70.19369],[-129.10773,69.77927],[-128.36156,70.01286],[-128.13817,70.48384],[-127.44712,70.37721],[-125.75632,69.48058],[-124.42483,70.1584],[-124.28968,69.39969],[-123.06108,69.56372],[-122.6835,69.85553],[-121.47226,69.79778],[-119.94288,69.37786],[-117.60268,69.01128],[-116.22643,68.84151],[-115.2469,68.90591],[-113.89794,68.3989],[-115.30489,67.90261],[-113.49727,67.68815],[-110.798,67.80612],[-109.94619,67.98104],[-108.8802,67.38144],[-107.79239,67.88736],[-108.81299,68.31164],[-108.16721,68.65392],[-106.95,68.7],[-106.15,68.8],[-105.34282,68.56122],[-104.33791,68.018],[-103.22115,68.09775],[-101.45433,67.64689],[-99.90195,67.80566],[-98.4432,67.78165],[-98.5586,68.40394],[-97.66948,68.57864],[-96.11991,68.23939],[-96.12588,67.29338],[-95.48943,68.0907],[-94.685,68.06383],[-94.23282,69.06903],[-95.30408,69.68571],[-96.47131,70.08976],[-96.39115,71.19482],[-95.2088,71.92053],[-93.88997,71.76015],[-92.87818,71.31869],[-91.51964,70.19129],[-92.40692,69.69997],[-90.5471,69.49766]]],[[[-114.16717,73.12145],[-114.66634,72.65277],[-112.44102,72.9554],[-111.05039,72.4504],[-109.92035,72.96113],[-109.00654,72.63335],[-108.18835,71.65089],[-107.68599,72.06548],[-108.39639,73.08953],[-107.51645,73.23598],[-106.52259,73.07601],[-105.40246,72.67259],[-104.77484,71.6984],[-104.46476,70.99297],[-102.78537,70.49776],[-100.98078,70.02432],[-101.08929,69.58447],[-102.73116,69.50402],[-102.09329,69.11962],[-102.43024,68.75282],[-104.24,68.91],[-105.96,69.18],[-107.12254,69.11922],[-109,68.78],[-111.534149,68.630059],[-113.3132,68.53554],[-113.85496,69.00744],[-115.22,69.28],[-116.10794,69.16821],[-117.34,69.96],[-116.67473,70.06655],[-115.13112,70.2373],[-113.72141,70.19237],[-112.4161,70.36638],[-114.35,70.6],[-116.48684,70.52045],[-117.9048,70.54056],[-118.43238,70.9092],[-116.11311,71.30918],[-117.65568,71.2952],[-119.40199,71.55859],[-118.56267,72.30785],[-117.86642,72.70594],[-115.18909,73.31459],[-114.16717,73.12145]]],[[[-104.5,73.42],[-105.38,72.76],[-106.94,73.46],[-106.6,73.6],[-105.26,73.64],[-104.5,73.42]]],[[[-76.34,73.102685],[-76.251404,72.826385],[-77.314438,72.855545],[-78.39167,72.876656],[-79.486252,72.742203],[-79.775833,72.802902],[-80.876099,73.333183],[-80.833885,73.693184],[-80.353058,73.75972],[-78.064438,73.651932],[-76.34,73.102685]]],[[[-86.562179,73.157447],[-85.774371,72.534126],[-84.850112,73.340278],[-82.31559,73.750951],[-80.600088,72.716544],[-80.748942,72.061907],[-78.770639,72.352173],[-77.824624,72.749617],[-75.605845,72.243678],[-74.228616,71.767144],[-74.099141,71.33084],[-72.242226,71.556925],[-71.200015,70.920013],[-68.786054,70.525024],[-67.91497,70.121948],[-66.969033,69.186087],[-68.805123,68.720198],[-66.449866,68.067163],[-64.862314,67.847539],[-63.424934,66.928473],[-61.851981,66.862121],[-62.163177,66.160251],[-63.918444,64.998669],[-65.14886,65.426033],[-66.721219,66.388041],[-68.015016,66.262726],[-68.141287,65.689789],[-67.089646,65.108455],[-65.73208,64.648406],[-65.320168,64.382737],[-64.669406,63.392927],[-65.013804,62.674185],[-66.275045,62.945099],[-68.783186,63.74567],[-67.369681,62.883966],[-66.328297,62.280075],[-66.165568,61.930897],[-68.877367,62.330149],[-71.023437,62.910708],[-72.235379,63.397836],[-71.886278,63.679989],[-73.378306,64.193963],[-74.834419,64.679076],[-74.818503,64.389093],[-77.70998,64.229542],[-78.555949,64.572906],[-77.897281,65.309192],[-76.018274,65.326969],[-73.959795,65.454765],[-74.293883,65.811771],[-73.944912,66.310578],[-72.651167,67.284576],[-72.92606,67.726926],[-73.311618,68.069437],[-74.843307,68.554627],[-76.869101,68.894736],[-76.228649,69.147769],[-77.28737,69.76954],[-78.168634,69.826488],[-78.957242,70.16688],[-79.492455,69.871808],[-81.305471,69.743185],[-84.944706,69.966634],[-87.060003,70.260001],[-88.681713,70.410741],[-89.51342,70.762038],[-88.467721,71.218186],[-89.888151,71.222552],[-90.20516,72.235074],[-89.436577,73.129464],[-88.408242,73.537889],[-85.826151,73.803816],[-86.562179,73.157447]]],[[[-100.35642,73.84389],[-99.16387,73.63339],[-97.38,73.76],[-97.12,73.47],[-98.05359,72.99052],[-96.54,72.56],[-96.72,71.66],[-98.35966,71.27285],[-99.32286,71.35639],[-100.01482,71.73827],[-102.5,72.51],[-102.48,72.83],[-100.43836,72.70588],[-101.54,73.36],[-100.35642,73.84389]]],[[[-93.196296,72.771992],[-94.269047,72.024596],[-95.409856,72.061881],[-96.033745,72.940277],[-96.018268,73.43743],[-95.495793,73.862417],[-94.503658,74.134907],[-92.420012,74.100025],[-90.509793,73.856732],[-92.003965,72.966244],[-93.196296,72.771992]]],[[[-120.46,71.383602],[-123.09219,70.90164],[-123.62,71.34],[-125.928949,71.868688],[-125.5,72.292261],[-124.80729,73.02256],[-123.94,73.68],[-124.91775,74.29275],[-121.53788,74.44893],[-120.10978,74.24135],[-117.55564,74.18577],[-116.58442,73.89607],[-115.51081,73.47519],[-116.76794,73.22292],[-119.22,72.52],[-120.46,71.82],[-120.46,71.383602]]],[[[-93.612756,74.979997],[-94.156909,74.592347],[-95.608681,74.666864],[-96.820932,74.927623],[-96.288587,75.377828],[-94.85082,75.647218],[-93.977747,75.29649],[-93.612756,74.979997]]],[[[-98.5,76.72],[-97.735585,76.25656],[-97.704415,75.74344],[-98.16,75],[-99.80874,74.89744],[-100.88366,75.05736],[-100.86292,75.64075],[-102.50209,75.5638],[-102.56552,76.3366],[-101.48973,76.30537],[-99.98349,76.64634],[-98.57699,76.58859],[-98.5,76.72]]],[[[-108.21141,76.20168],[-107.81943,75.84552],[-106.92893,76.01282],[-105.881,75.9694],[-105.70498,75.47951],[-106.31347,75.00527],[-109.7,74.85],[-112.22307,74.41696],[-113.74381,74.39427],[-113.87135,74.72029],[-111.79421,75.1625],[-116.31221,75.04343],[-117.7104,75.2222],[-116.34602,76.19903],[-115.40487,76.47887],[-112.59056,76.14134],[-110.81422,75.54919],[-109.0671,75.47321],[-110.49726,76.42982],[-109.5811,76.79417],[-108.54859,76.67832],[-108.21141,76.20168]]],[[[-94.684086,77.097878],[-93.573921,76.776296],[-91.605023,76.778518],[-90.741846,76.449597],[-90.969661,76.074013],[-89.822238,75.847774],[-89.187083,75.610166],[-87.838276,75.566189],[-86.379192,75.482421],[-84.789625,75.699204],[-82.753445,75.784315],[-81.128531,75.713983],[-80.057511,75.336849],[-79.833933,74.923127],[-80.457771,74.657304],[-81.948843,74.442459],[-83.228894,74.564028],[-86.097452,74.410032],[-88.15035,74.392307],[-89.764722,74.515555],[-92.422441,74.837758],[-92.768285,75.38682],[-92.889906,75.882655],[-93.893824,76.319244],[-95.962457,76.441381],[-97.121379,76.751078],[-96.745123,77.161389],[-94.684086,77.097878]]],[[[-116.198587,77.645287],[-116.335813,76.876962],[-117.106051,76.530032],[-118.040412,76.481172],[-119.899318,76.053213],[-121.499995,75.900019],[-122.854924,76.116543],[-122.854925,76.116543],[-121.157535,76.864508],[-119.103939,77.51222],[-117.570131,77.498319],[-116.198587,77.645287]]],[[[-93.840003,77.519997],[-94.295608,77.491343],[-96.169654,77.555111],[-96.436304,77.834629],[-94.422577,77.820005],[-93.720656,77.634331],[-93.840003,77.519997]]],[[[-110.186938,77.697015],[-112.051191,77.409229],[-113.534279,77.732207],[-112.724587,78.05105],[-111.264443,78.152956],[-109.854452,77.996325],[-110.186938,77.697015]]],[[[-109.663146,78.601973],[-110.881314,78.40692],[-112.542091,78.407902],[-112.525891,78.550555],[-111.50001,78.849994],[-110.963661,78.804441],[-109.663146,78.601973]]],[[[-95.830295,78.056941],[-97.309843,77.850597],[-98.124289,78.082857],[-98.552868,78.458105],[-98.631984,78.87193],[-97.337231,78.831984],[-96.754399,78.765813],[-95.559278,78.418315],[-95.830295,78.056941]]],[[[-100.060192,78.324754],[-99.670939,77.907545],[-101.30394,78.018985],[-102.949809,78.343229],[-105.176133,78.380332],[-104.210429,78.67742],[-105.41958,78.918336],[-105.492289,79.301594],[-103.529282,79.165349],[-100.825158,78.800462],[-100.060192,78.324754]]],[[[-87.02,79.66],[-85.81435,79.3369],[-87.18756,79.0393],[-89.03535,78.28723],[-90.80436,78.21533],[-92.87669,78.34333],[-93.95116,78.75099],[-93.93574,79.11373],[-93.14524,79.3801],[-94.974,79.37248],[-96.07614,79.70502],[-96.70972,80.15777],[-96.01644,80.60233],[-95.32345,80.90729],[-94.29843,80.97727],[-94.73542,81.20646],[-92.40984,81.25739],[-91.13289,80.72345],[-89.45,80.509322],[-87.81,80.32],[-87.02,79.66]]],[[[-68.5,83.106322],[-65.82735,83.02801],[-63.68,82.9],[-61.85,82.6286],[-61.89388,82.36165],[-64.334,81.92775],[-66.75342,81.72527],[-67.65755,81.50141],[-65.48031,81.50657],[-67.84,80.9],[-69.4697,80.61683],[-71.18,79.8],[-73.2428,79.63415],[-73.88,79.430162],[-76.90773,79.32309],[-75.52924,79.19766],[-76.22046,79.01907],[-75.39345,78.52581],[-76.34354,78.18296],[-77.88851,77.89991],[-78.36269,77.50859],[-79.75951,77.20968],[-79.61965,76.98336],[-77.91089,77.022045],[-77.88911,76.777955],[-80.56125,76.17812],[-83.17439,76.45403],[-86.11184,76.29901],[-87.6,76.42],[-89.49068,76.47239],[-89.6161,76.95213],[-87.76739,77.17833],[-88.26,77.9],[-87.65,77.970222],[-84.97634,77.53873],[-86.34,78.18],[-87.96192,78.37181],[-87.15198,78.75867],[-85.37868,78.9969],[-85.09495,79.34543],[-86.50734,79.73624],[-86.93179,80.25145],[-84.19844,80.20836],[-83.408696,80.1],[-81.84823,80.46442],[-84.1,80.58],[-87.59895,80.51627],[-89.36663,80.85569],[-90.2,81.26],[-91.36786,81.5531],[-91.58702,81.89429],[-90.1,82.085],[-88.93227,82.11751],[-86.97024,82.27961],[-85.5,82.652273],[-84.260005,82.6],[-83.18,82.32],[-82.42,82.86],[-81.1,83.02],[-79.30664,83.13056],[-76.25,83.172059],[-75.71878,83.06404],[-72.83153,83.23324],[-70.665765,83.169781],[-68.5,83.106322]]]]},"type":"Feature","id":"CAN","properties":{"name":"Canada","id":"CAN","centroid":[-75.42,45.27]}},{"geometry":{"type":"Polygon","coordinates":[[[9.594226,47.525058],[9.632932,47.347601],[9.47997,47.10281],[9.932448,46.920728],[10.442701,46.893546],[10.363378,46.483571],[9.922837,46.314899],[9.182882,46.440215],[8.966306,46.036932],[8.489952,46.005151],[8.31663,46.163642],[7.755992,45.82449],[7.273851,45.776948],[6.843593,45.991147],[6.5001,46.429673],[6.022609,46.27299],[6.037389,46.725779],[6.768714,47.287708],[6.736571,47.541801],[7.192202,47.449766],[7.466759,47.620582],[8.317301,47.61358],[8.522612,47.830828],[9.594226,47.525058]]]},"type":"Feature","id":"CHE","properties":{"name":"Switzerland","id":"CHE","centroid":[7.28,46.57]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.63401,-52.63637],[-68.63335,-54.8695],[-67.56244,-54.87001],[-66.95992,-54.89681],[-67.29103,-55.30124],[-68.14863,-55.61183],[-68.639991,-55.580018],[-69.2321,-55.49906],[-69.95809,-55.19843],[-71.00568,-55.05383],[-72.2639,-54.49514],[-73.2852,-53.95752],[-74.66253,-52.83749],[-73.8381,-53.04743],[-72.43418,-53.7154],[-71.10773,-54.07433],[-70.59178,-53.61583],[-70.26748,-52.93123],[-69.34565,-52.5183],[-68.63401,-52.63637]]],[[[-68.219913,-21.494347],[-67.82818,-22.872919],[-67.106674,-22.735925],[-66.985234,-22.986349],[-67.328443,-24.025303],[-68.417653,-24.518555],[-68.386001,-26.185016],[-68.5948,-26.506909],[-68.295542,-26.89934],[-69.001235,-27.521214],[-69.65613,-28.459141],[-70.01355,-29.367923],[-69.919008,-30.336339],[-70.535069,-31.36501],[-70.074399,-33.09121],[-69.814777,-33.273886],[-69.817309,-34.193571],[-70.388049,-35.169688],[-70.364769,-36.005089],[-71.121881,-36.658124],[-71.118625,-37.576827],[-70.814664,-38.552995],[-71.413517,-38.916022],[-71.680761,-39.808164],[-71.915734,-40.832339],[-71.746804,-42.051386],[-72.148898,-42.254888],[-71.915424,-43.408565],[-71.464056,-43.787611],[-71.793623,-44.207172],[-71.329801,-44.407522],[-71.222779,-44.784243],[-71.659316,-44.973689],[-71.552009,-45.560733],[-71.917258,-46.884838],[-72.447355,-47.738533],[-72.331161,-48.244238],[-72.648247,-48.878618],[-73.415436,-49.318436],[-73.328051,-50.378785],[-72.975747,-50.74145],[-72.309974,-50.67701],[-72.329404,-51.425956],[-71.914804,-52.009022],[-69.498362,-52.142761],[-68.571545,-52.299444],[-69.461284,-52.291951],[-69.94278,-52.537931],[-70.845102,-52.899201],[-71.006332,-53.833252],[-71.429795,-53.856455],[-72.557943,-53.53141],[-73.702757,-52.835069],[-73.702757,-52.83507],[-74.946763,-52.262754],[-75.260026,-51.629355],[-74.976632,-51.043396],[-75.479754,-50.378372],[-75.608015,-48.673773],[-75.18277,-47.711919],[-74.126581,-46.939253],[-75.644395,-46.647643],[-74.692154,-45.763976],[-74.351709,-44.103044],[-73.240356,-44.454961],[-72.717804,-42.383356],[-73.3889,-42.117532],[-73.701336,-43.365776],[-74.331943,-43.224958],[-74.017957,-41.794813],[-73.677099,-39.942213],[-73.217593,-39.258689],[-73.505559,-38.282883],[-73.588061,-37.156285],[-73.166717,-37.12378],[-72.553137,-35.50884],[-71.861732,-33.909093],[-71.43845,-32.418899],[-71.668721,-30.920645],[-71.370083,-30.095682],[-71.489894,-28.861442],[-70.905124,-27.64038],[-70.724954,-25.705924],[-70.403966,-23.628997],[-70.091246,-21.393319],[-70.16442,-19.756468],[-70.372572,-18.347975],[-69.858444,-18.092694],[-69.590424,-17.580012],[-69.100247,-18.260125],[-68.966818,-18.981683],[-68.442225,-19.405068],[-68.757167,-20.372658],[-68.219913,-21.494347]]]]},"type":"Feature","id":"CHL","properties":{"name":"Chile","id":"CHL","centroid":[-70.4,-33.24]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[121.777818,24.394274],[121.175632,22.790857],[120.74708,21.970571],[120.220083,22.814861],[120.106189,23.556263],[120.69468,24.538451],[121.495044,25.295459],[121.951244,24.997596],[121.777818,24.394274]],[[110.339188,18.678395],[109.47521,18.197701],[108.655208,18.507682],[108.626217,19.367888],[109.119056,19.821039],[110.211599,20.101254],[110.786551,20.077534],[111.010051,19.69593],[110.570647,19.255879],[110.339188,18.678395]]],[[[127.657407,49.76027],[129.397818,49.4406],[130.582293,48.729687],[130.987282,47.790132],[132.506672,47.78897],[133.373596,48.183442],[135.026311,48.47823],[134.500814,47.57844],[134.112362,47.212467],[133.769644,46.116927],[133.097127,45.144066],[131.883454,45.321162],[131.025212,44.967953],[131.288555,44.11152],[131.144688,42.92999],[130.633866,42.903015],[130.640016,42.395009],[129.994267,42.985387],[129.596669,42.424982],[128.052215,41.994285],[128.208433,41.466772],[127.343783,41.503152],[126.869083,41.816569],[126.182045,41.107336],[125.079942,40.569824],[124.265625,39.928493],[122.86757,39.637788],[122.131388,39.170452],[121.054554,38.897471],[121.585995,39.360854],[121.376757,39.750261],[122.168595,40.422443],[121.640359,40.94639],[120.768629,40.593388],[119.639602,39.898056],[119.023464,39.252333],[118.042749,39.204274],[117.532702,38.737636],[118.059699,38.061476],[118.87815,37.897325],[118.911636,37.448464],[119.702802,37.156389],[120.823457,37.870428],[121.711259,37.481123],[122.357937,37.454484],[122.519995,36.930614],[121.104164,36.651329],[120.637009,36.11144],[119.664562,35.609791],[119.151208,34.909859],[120.227525,34.360332],[120.620369,33.376723],[121.229014,32.460319],[121.908146,31.692174],[121.891919,30.949352],[121.264257,30.676267],[121.503519,30.142915],[122.092114,29.83252],[121.938428,29.018022],[121.684439,28.225513],[121.125661,28.135673],[120.395473,27.053207],[119.585497,25.740781],[118.656871,24.547391],[117.281606,23.624501],[115.890735,22.782873],[114.763827,22.668074],[114.152547,22.22376],[113.80678,22.54834],[113.241078,22.051367],[111.843592,21.550494],[110.785466,21.397144],[110.444039,20.341033],[109.889861,20.282457],[109.627655,21.008227],[109.864488,21.395051],[108.522813,21.715212],[108.05018,21.55238],[107.04342,21.811899],[106.567273,22.218205],[106.725403,22.794268],[105.811247,22.976892],[105.329209,23.352063],[104.476858,22.81915],[103.504515,22.703757],[102.706992,22.708795],[102.170436,22.464753],[101.652018,22.318199],[101.80312,21.174367],[101.270026,21.201652],[101.180005,21.436573],[101.150033,21.849984],[100.416538,21.558839],[99.983489,21.742937],[99.240899,22.118314],[99.531992,22.949039],[98.898749,23.142722],[98.660262,24.063286],[97.60472,23.897405],[97.724609,25.083637],[98.671838,25.918703],[98.712094,26.743536],[98.68269,27.508812],[98.246231,27.747221],[97.911988,28.335945],[97.327114,28.261583],[97.402561,27.882536],[97.051989,27.699059],[95.767822,28.139816],[94.306641,27.547242],[93.746338,27.108034],[92.033484,26.83831],[92.103712,27.452614],[91.696657,27.771742],[91.258854,28.040614],[90.730514,28.064954],[90.015829,28.296439],[89.47581,28.042759],[88.814248,27.299316],[88.730326,28.086865],[88.120441,27.876542],[86.954517,27.974262],[85.82332,28.203576],[85.011638,28.642774],[84.23458,28.839894],[83.898993,29.320226],[83.337115,29.463732],[82.327513,30.115268],[81.525804,30.422717],[81.111256,30.183481],[79.721367,30.882715],[78.738894,31.515906],[78.458446,32.618164],[79.176129,32.48378],[79.208892,32.994395],[78.811086,33.506198],[78.912269,34.321936],[77.837451,35.49401],[76.192848,35.898403],[75.896897,36.666806],[75.158028,37.133031],[74.980002,37.41999],[74.829986,37.990007],[74.864816,38.378846],[74.257514,38.606507],[73.928852,38.505815],[73.675379,39.431237],[73.960013,39.660008],[73.822244,39.893973],[74.776862,40.366425],[75.467828,40.562072],[76.526368,40.427946],[76.904484,41.066486],[78.187197,41.185316],[78.543661,41.582243],[80.11943,42.123941],[80.25999,42.349999],[80.18015,42.920068],[80.866206,43.180362],[79.966106,44.917517],[81.947071,45.317027],[82.458926,45.53965],[83.180484,47.330031],[85.16429,47.000956],[85.720484,47.452969],[85.768233,48.455751],[86.598776,48.549182],[87.35997,49.214981],[87.751264,49.297198],[88.013832,48.599463],[88.854298,48.069082],[90.280826,47.693549],[90.970809,46.888146],[90.585768,45.719716],[90.94554,45.286073],[92.133891,45.115076],[93.480734,44.975472],[94.688929,44.352332],[95.306875,44.241331],[95.762455,43.319449],[96.349396,42.725635],[97.451757,42.74889],[99.515817,42.524691],[100.845866,42.663804],[101.83304,42.514873],[103.312278,41.907468],[104.522282,41.908347],[104.964994,41.59741],[106.129316,42.134328],[107.744773,42.481516],[109.243596,42.519446],[110.412103,42.871234],[111.129682,43.406834],[111.829588,43.743118],[111.667737,44.073176],[111.348377,44.457442],[111.873306,45.102079],[112.436062,45.011646],[113.463907,44.808893],[114.460332,45.339817],[115.985096,45.727235],[116.717868,46.388202],[117.421701,46.672733],[118.874326,46.805412],[119.66327,46.69268],[119.772824,47.048059],[118.866574,47.74706],[118.064143,48.06673],[117.295507,47.697709],[116.308953,47.85341],[115.742837,47.726545],[115.485282,48.135383],[116.191802,49.134598],[116.678801,49.888531],[117.879244,49.510983],[119.288461,50.142883],[119.279366,50.582908],[120.18205,51.643566],[120.738191,51.964115],[120.725789,52.516226],[120.177089,52.753886],[121.003085,53.251401],[122.245748,53.431726],[123.571507,53.458804],[125.068211,53.161045],[125.946349,52.792799],[126.564399,51.784255],[126.939157,51.353894],[127.287456,50.739797],[127.657407,49.76027]]],[[[122.50662231445312,23.467723846435547],[122.78874206542969,24.572216033935547],[122.50662231445312,23.467723846435547]]],[[[121.17402648925781,20.826547622680664],[121.91168975830078,21.6975154876709],[121.17402648925781,20.826547622680664]]],[[[120.003662109375,19.03096327846469],[119.47631835937499,18.020527657852337],[120.003662109375,19.03096327846469]]],[[[119.06982421874999,16.024695711685315],[119.05883789062501,15.040295996106765],[119.06982421874999,16.024695711685315]]],[[[118.98193359375,11.953349393643416],[118.531494140625,10.908830155722107],[118.98193359375,11.953349393643416]]],[[[116.23535156249999,7.993957436359008],[115.55419921875,7.18810087117902],[116.23535156249999,7.993957436359008]]],[[[112.8515625,3.743671274749731],[111.785888671875,3.4147247646241174],[112.8515625,3.743671274749731]]],[[[108.30322265624999,5.998533174329341],[108.226318359375,7.089990476360545],[108.30322265624999,5.998533174329341]]],[[[110.06103515625,11.26461221250444],[110.31372070312499,12.264863532756566],[110.06103515625,11.26461221250444]]],[[[109.852294921875,15.178180945596376],[109.302978515625,16.214674588248556],[109.852294921875,15.178180945596376]]],[[[124.54185556547829,25.89184586734392],[124.53009788411983,25.91074214095596],[124.51834020276122,25.930898166142125],[124.54101573109565,25.946015185031744],[124.566804,25.941563],[124.584666,25.908731],[124.56873026572663,25.884707275090506],[124.54185556547829,25.89184586734392]]],[[[123.445178,25.726102],[123.43873310372739,25.753273194189074],[123.46896714150662,25.78308731477693],[123.51347836379274,25.768810130270065],[123.51095886064446,25.71464081258226],[123.46854722431526,25.703722965606424],[123.445178,25.726102]]],[[[119.646064,23.550928],[119.609108,23.503738],[119.578927,23.502641],[119.562297,23.530627],[119.566608,23.584937],[119.601717,23.575613],[119.61034,23.604132],[119.678093,23.600294],[119.691028,23.547087],[119.646064,23.550928]]],[[[123.65247095413902,25.910742140955957],[123.67598631685621,25.947274936605876],[123.70580043744403,25.935517255247277],[123.71503861565435,25.912421809721465],[123.69656225923376,25.8788284344112],[123.66968755898553,25.88680686104739],[123.65247095413902,25.910742140955957]]],[[[119.506246,23.625518],[119.52534,23.62497],[119.519181,23.559705],[119.47237,23.556962],[119.506246,23.577259],[119.506246,23.625518]]],[[[119.497623,23.38679],[119.516717,23.349982],[119.495159,23.349982],[119.497623,23.38679]]],[[[119.557369,23.666634],[119.586318,23.675952],[119.615268,23.661153],[119.608492,23.620035],[119.557369,23.666634]]],[[[122.066706,25.6247],[122.092575,25.639268],[122.087032,25.61067],[122.066706,25.6247]]],[[[121.468013,22.67687],[121.514824,22.676318],[121.513592,22.631582],[121.474788,22.643734],[121.468013,22.67687]]],[[[121.510513,22.086972],[121.575802,22.0842],[121.575186,22.037055],[121.604752,22.022631],[121.594281,21.995443],[121.533918,22.022076],[121.507433,22.048704],[121.510513,22.086972]]],[[[122.097503,25.499987],[122.122141,25.495666],[122.110438,25.465952],[122.097503,25.499987]]],[[[119.421247,23.216949],[119.453275,23.216399],[119.436029,23.186146],[119.421247,23.216949]]],[[[120.355011,22.327439],[120.383344,22.355669],[120.395663,22.342385],[120.355011,22.327439]]]]},"type":"Feature","id":"CHN","properties":{"name":"China","id":"CHN","centroid":[116.2,39.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-2.856125,4.994476],[-3.311084,4.984296],[-4.00882,5.179813],[-4.649917,5.168264],[-5.834496,4.993701],[-6.528769,4.705088],[-7.518941,4.338288],[-7.712159,4.364566],[-7.635368,5.188159],[-7.539715,5.313345],[-7.570153,5.707352],[-7.993693,6.12619],[-8.311348,6.193033],[-8.60288,6.467564],[-8.385452,6.911801],[-8.485446,7.395208],[-8.439298,7.686043],[-8.280703,7.68718],[-8.221792,8.123329],[-8.299049,8.316444],[-8.203499,8.455453],[-7.8321,8.575704],[-8.079114,9.376224],[-8.309616,9.789532],[-8.229337,10.12902],[-8.029944,10.206535],[-7.89959,10.297382],[-7.622759,10.147236],[-6.850507,10.138994],[-6.666461,10.430811],[-6.493965,10.411303],[-6.205223,10.524061],[-6.050452,10.096361],[-5.816926,10.222555],[-5.404342,10.370737],[-4.954653,10.152714],[-4.779884,9.821985],[-4.330247,9.610835],[-3.980449,9.862344],[-3.511899,9.900326],[-2.827496,9.642461],[-2.56219,8.219628],[-2.983585,7.379705],[-3.24437,6.250472],[-2.810701,5.389051],[-2.856125,4.994476]]]},"type":"Feature","id":"CIV","properties":{"name":"Ivory Coast","id":"CIV","centroid":[-5.17,6.49]}},{"geometry":{"type":"Polygon","coordinates":[[[13.075822,2.267097],[12.951334,2.321616],[12.35938,2.192812],[11.751665,2.326758],[11.276449,2.261051],[9.649158,2.283866],[9.795196,3.073404],[9.404367,3.734527],[8.948116,3.904129],[8.744924,4.352215],[8.488816,4.495617],[8.500288,4.771983],[8.757533,5.479666],[9.233163,6.444491],[9.522706,6.453482],[10.118277,7.03877],[10.497375,7.055358],[11.058788,6.644427],[11.745774,6.981383],[11.839309,7.397042],[12.063946,7.799808],[12.218872,8.305824],[12.753672,8.717763],[12.955468,9.417772],[13.1676,9.640626],[13.308676,10.160362],[13.57295,10.798566],[14.415379,11.572369],[14.468192,11.904752],[14.577178,12.085361],[14.181336,12.483657],[14.213531,12.802035],[14.495787,12.859396],[14.893386,12.219048],[14.960152,11.555574],[14.923565,10.891325],[15.467873,9.982337],[14.909354,9.992129],[14.627201,9.920919],[14.171466,10.021378],[13.954218,9.549495],[14.544467,8.965861],[14.979996,8.796104],[15.120866,8.38215],[15.436092,7.692812],[15.27946,7.421925],[14.776545,6.408498],[14.53656,6.226959],[14.459407,5.451761],[14.558936,5.030598],[14.478372,4.732605],[14.950953,4.210389],[15.03622,3.851367],[15.405396,3.335301],[15.862732,3.013537],[15.907381,2.557389],[16.012852,2.26764],[15.940919,1.727673],[15.146342,1.964015],[14.337813,2.227875],[13.075822,2.267097]]]},"type":"Feature","id":"CMR","properties":{"name":"Cameroon","id":"CMR","centroid":[11.35,3.5]}},{"geometry":{"type":"Polygon","coordinates":[[[30.83386,3.509166],[30.773347,2.339883],[31.174149,2.204465],[30.85267,1.849396],[30.468508,1.583805],[30.086154,1.062313],[29.875779,0.59738],[29.819503,-0.20531],[29.587838,-0.587406],[29.579466,-1.341313],[29.291887,-1.620056],[29.254835,-2.21511],[29.117479,-2.292211],[29.024926,-2.839258],[29.276384,-3.293907],[29.339998,-4.499983],[29.519987,-5.419979],[29.419993,-5.939999],[29.620032,-6.520015],[30.199997,-7.079981],[30.740015,-8.340007],[30.346086,-8.238257],[29.002912,-8.407032],[28.734867,-8.526559],[28.449871,-9.164918],[28.673682,-9.605925],[28.49607,-10.789884],[28.372253,-11.793647],[28.642417,-11.971569],[29.341548,-12.360744],[29.616001,-12.178895],[29.699614,-13.257227],[28.934286,-13.248958],[28.523562,-12.698604],[28.155109,-12.272481],[27.388799,-12.132747],[27.16442,-11.608748],[26.553088,-11.92444],[25.75231,-11.784965],[25.418118,-11.330936],[24.78317,-11.238694],[24.314516,-11.262826],[24.257155,-10.951993],[23.912215,-10.926826],[23.456791,-10.867863],[22.837345,-11.017622],[22.402798,-10.993075],[22.155268,-11.084801],[22.208753,-9.894796],[21.875182,-9.523708],[21.801801,-8.908707],[21.949131,-8.305901],[21.746456,-7.920085],[21.728111,-7.290872],[20.514748,-7.299606],[20.601823,-6.939318],[20.091622,-6.94309],[20.037723,-7.116361],[19.417502,-7.155429],[19.166613,-7.738184],[19.016752,-7.988246],[18.464176,-7.847014],[18.134222,-7.987678],[17.47297,-8.068551],[17.089996,-7.545689],[16.860191,-7.222298],[16.57318,-6.622645],[16.326528,-5.87747],[13.375597,-5.864241],[13.024869,-5.984389],[12.735171,-5.965682],[12.322432,-6.100092],[12.182337,-5.789931],[12.436688,-5.684304],[12.468004,-5.248362],[12.631612,-4.991271],[12.995517,-4.781103],[13.25824,-4.882957],[13.600235,-4.500138],[14.144956,-4.510009],[14.209035,-4.793092],[14.582604,-4.970239],[15.170992,-4.343507],[15.75354,-3.855165],[16.00629,-3.535133],[15.972803,-2.712392],[16.407092,-1.740927],[16.865307,-1.225816],[17.523716,-0.74383],[17.638645,-0.424832],[17.663553,-0.058084],[17.82654,0.288923],[17.774192,0.855659],[17.898835,1.741832],[18.094276,2.365722],[18.393792,2.900443],[18.453065,3.504386],[18.542982,4.201785],[18.932312,4.709506],[19.467784,5.031528],[20.290679,4.691678],[20.927591,4.322786],[21.659123,4.224342],[22.405124,4.02916],[22.704124,4.633051],[22.84148,4.710126],[23.297214,4.609693],[24.410531,5.108784],[24.805029,4.897247],[25.128833,4.927245],[25.278798,5.170408],[25.650455,5.256088],[26.402761,5.150875],[27.044065,5.127853],[27.374226,5.233944],[27.979977,4.408413],[28.428994,4.287155],[28.696678,4.455077],[29.159078,4.389267],[29.715995,4.600805],[29.9535,4.173699],[30.83386,3.509166]]]},"type":"Feature","id":"COD","properties":{"name":"Democratic Republic of the Congo","id":"COD","centroid":[15.15,-4.2]}},{"geometry":{"type":"Polygon","coordinates":[[[12.995517,-4.781103],[12.62076,-4.438023],[12.318608,-4.60623],[11.914963,-5.037987],[11.093773,-3.978827],[11.855122,-3.426871],[11.478039,-2.765619],[11.820964,-2.514161],[12.495703,-2.391688],[12.575284,-1.948511],[13.109619,-2.42874],[13.992407,-2.470805],[14.29921,-1.998276],[14.425456,-1.333407],[14.316418,-0.552627],[13.843321,0.038758],[14.276266,1.19693],[14.026669,1.395677],[13.282631,1.314184],[13.003114,1.830896],[13.075822,2.267097],[14.337813,2.227875],[15.146342,1.964015],[15.940919,1.727673],[16.012852,2.26764],[16.537058,3.198255],[17.133042,3.728197],[17.8099,3.560196],[18.453065,3.504386],[18.393792,2.900443],[18.094276,2.365722],[17.898835,1.741832],[17.774192,0.855659],[17.82654,0.288923],[17.663553,-0.058084],[17.638645,-0.424832],[17.523716,-0.74383],[16.865307,-1.225816],[16.407092,-1.740927],[15.972803,-2.712392],[16.00629,-3.535133],[15.75354,-3.855165],[15.170992,-4.343507],[14.582604,-4.970239],[14.209035,-4.793092],[14.144956,-4.510009],[13.600235,-4.500138],[13.25824,-4.882957],[12.995517,-4.781103]]]},"type":"Feature","id":"COG","properties":{"name":"Republic of the Congo","id":"COG","centroid":[15.12,-4.09]}},{"geometry":{"type":"Polygon","coordinates":[[[-75.373223,-0.152032],[-75.801466,0.084801],[-76.292314,0.416047],[-76.57638,0.256936],[-77.424984,0.395687],[-77.668613,0.825893],[-77.855061,0.809925],[-78.855259,1.380924],[-78.990935,1.69137],[-78.617831,1.766404],[-78.662118,2.267355],[-78.42761,2.629556],[-77.931543,2.696606],[-77.510431,3.325017],[-77.12769,3.849636],[-77.496272,4.087606],[-77.307601,4.667984],[-77.533221,5.582812],[-77.318815,5.845354],[-77.476661,6.691116],[-77.881571,7.223771],[-77.753414,7.70984],[-77.431108,7.638061],[-77.242566,7.935278],[-77.474723,8.524286],[-77.353361,8.670505],[-76.836674,8.638749],[-76.086384,9.336821],[-75.6746,9.443248],[-75.664704,9.774003],[-75.480426,10.61899],[-74.906895,11.083045],[-74.276753,11.102036],[-74.197223,11.310473],[-73.414764,11.227015],[-72.627835,11.731972],[-72.238195,11.95555],[-71.75409,12.437303],[-71.399822,12.376041],[-71.137461,12.112982],[-71.331584,11.776284],[-71.973922,11.608672],[-72.227575,11.108702],[-72.614658,10.821975],[-72.905286,10.450344],[-73.027604,9.73677],[-73.304952,9.152],[-72.78873,9.085027],[-72.660495,8.625288],[-72.439862,8.405275],[-72.360901,8.002638],[-72.479679,7.632506],[-72.444487,7.423785],[-72.198352,7.340431],[-71.960176,6.991615],[-70.674234,7.087785],[-70.093313,6.960376],[-69.38948,6.099861],[-68.985319,6.206805],[-68.265052,6.153268],[-67.695087,6.267318],[-67.34144,6.095468],[-67.521532,5.55687],[-67.744697,5.221129],[-67.823012,4.503937],[-67.621836,3.839482],[-67.337564,3.542342],[-67.303173,3.318454],[-67.809938,2.820655],[-67.447092,2.600281],[-67.181294,2.250638],[-66.876326,1.253361],[-67.065048,1.130112],[-67.259998,1.719999],[-67.53781,2.037163],[-67.868565,1.692455],[-69.816973,1.714805],[-69.804597,1.089081],[-69.218638,0.985677],[-69.252434,0.602651],[-69.452396,0.706159],[-70.015566,0.541414],[-70.020656,-0.185156],[-69.577065,-0.549992],[-69.420486,-1.122619],[-69.444102,-1.556287],[-69.893635,-4.298187],[-70.394044,-3.766591],[-70.692682,-3.742872],[-70.047709,-2.725156],[-70.813476,-2.256865],[-71.413646,-2.342802],[-71.774761,-2.16979],[-72.325787,-2.434218],[-73.070392,-2.308954],[-73.659504,-1.260491],[-74.122395,-1.002833],[-74.441601,-0.53082],[-75.106625,-0.057205],[-75.373223,-0.152032]]]},"type":"Feature","id":"COL","properties":{"name":"Colombia","id":"COL","centroid":[-74,4.34]}},{"geometry":{"type":"Polygon","coordinates":[[[-82.965783,8.225028],[-83.508437,8.446927],[-83.711474,8.656836],[-83.596313,8.830443],[-83.632642,9.051386],[-83.909886,9.290803],[-84.303402,9.487354],[-84.647644,9.615537],[-84.713351,9.908052],[-84.97566,10.086723],[-84.911375,9.795992],[-85.110923,9.55704],[-85.339488,9.834542],[-85.660787,9.933347],[-85.797445,10.134886],[-85.791709,10.439337],[-85.659314,10.754331],[-85.941725,10.895278],[-85.71254,11.088445],[-85.561852,11.217119],[-84.903003,10.952303],[-84.673069,11.082657],[-84.355931,10.999226],[-84.190179,10.79345],[-83.895054,10.726839],[-83.655612,10.938764],[-83.40232,10.395438],[-83.015677,9.992982],[-82.546196,9.566135],[-82.932891,9.476812],[-82.927155,9.07433],[-82.719183,8.925709],[-82.868657,8.807266],[-82.829771,8.626295],[-82.913176,8.423517],[-82.965783,8.225028]]]},"type":"Feature","id":"CRI","properties":{"name":"Costa Rica","id":"CRI","centroid":[-84.02,9.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-82.268151,23.188611],[-81.404457,23.117271],[-80.618769,23.10598],[-79.679524,22.765303],[-79.281486,22.399202],[-78.347434,22.512166],[-77.993296,22.277194],[-77.146422,21.657851],[-76.523825,21.20682],[-76.19462,21.220565],[-75.598222,21.016624],[-75.67106,20.735091],[-74.933896,20.693905],[-74.178025,20.284628],[-74.296648,20.050379],[-74.961595,19.923435],[-75.63468,19.873774],[-76.323656,19.952891],[-77.755481,19.855481],[-77.085108,20.413354],[-77.492655,20.673105],[-78.137292,20.739949],[-78.482827,21.028613],[-78.719867,21.598114],[-79.285,21.559175],[-80.217475,21.827324],[-80.517535,22.037079],[-81.820943,22.192057],[-82.169992,22.387109],[-81.795002,22.636965],[-82.775898,22.68815],[-83.494459,22.168518],[-83.9088,22.154565],[-84.052151,21.910575],[-84.54703,21.801228],[-84.974911,21.896028],[-84.447062,22.20495],[-84.230357,22.565755],[-83.77824,22.788118],[-83.267548,22.983042],[-82.510436,23.078747],[-82.268151,23.188611]]]},"type":"Feature","id":"CUB","properties":{"name":"Cuba","id":"CUB","centroid":[-82.21,23.08]}},{"geometry":{"type":"Polygon","coordinates":[[[32.73178,35.140026],[32.802474,35.145504],[32.946961,35.386703],[33.667227,35.373216],[34.576474,35.671596],[33.900804,35.245756],[34.004881,34.978098],[32.979827,34.571869],[32.490296,34.701655],[32.256667,35.103232],[32.73178,35.140026]]]},"type":"Feature","id":"CYP","properties":{"name":"Cyprus","id":"CYP","centroid":[33.25,35.1]}},{"geometry":{"type":"Polygon","coordinates":[[[16.960288,48.596982],[16.499283,48.785808],[16.029647,48.733899],[15.253416,49.039074],[14.901447,48.964402],[14.338898,48.555305],[13.595946,48.877172],[13.031329,49.307068],[12.521024,49.547415],[12.415191,49.969121],[12.240111,50.266338],[12.966837,50.484076],[13.338132,50.733234],[14.056228,50.926918],[14.307013,51.117268],[14.570718,51.002339],[15.016996,51.106674],[15.490972,50.78473],[16.238627,50.697733],[16.176253,50.422607],[16.719476,50.215747],[16.868769,50.473974],[17.554567,50.362146],[17.649445,50.049038],[18.392914,49.988629],[18.853144,49.49623],[18.554971,49.495015],[18.399994,49.315001],[18.170498,49.271515],[18.104973,49.043983],[17.913512,48.996493],[17.886485,48.903475],[17.545007,48.800019],[17.101985,48.816969],[16.960288,48.596982]]]},"type":"Feature","id":"CZE","properties":{"name":"Czech Republic","id":"CZE","centroid":[14.26,50.05]}},{"geometry":{"type":"Polygon","coordinates":[[[9.921906,54.983104],[9.93958,54.596642],[10.950112,54.363607],[10.939467,54.008693],[11.956252,54.196486],[12.51844,54.470371],[13.647467,54.075511],[14.119686,53.757029],[14.353315,53.248171],[14.074521,52.981263],[14.4376,52.62485],[14.685026,52.089947],[14.607098,51.745188],[15.016996,51.106674],[14.570718,51.002339],[14.307013,51.117268],[14.056228,50.926918],[13.338132,50.733234],[12.966837,50.484076],[12.240111,50.266338],[12.415191,49.969121],[12.521024,49.547415],[13.031329,49.307068],[13.595946,48.877172],[13.243357,48.416115],[12.884103,48.289146],[13.025851,47.637584],[12.932627,47.467646],[12.62076,47.672388],[12.141357,47.703083],[11.426414,47.523766],[10.544504,47.566399],[10.402084,47.302488],[9.896068,47.580197],[9.594226,47.525058],[8.522612,47.830828],[8.317301,47.61358],[7.466759,47.620582],[7.593676,48.333019],[8.099279,49.017784],[6.65823,49.201958],[6.18632,49.463803],[6.242751,49.902226],[6.043073,50.128052],[6.156658,50.803721],[5.988658,51.851616],[6.589397,51.852029],[6.84287,52.22844],[7.092053,53.144043],[6.90514,53.482162],[7.100425,53.693932],[7.936239,53.748296],[8.121706,53.527792],[8.800734,54.020786],[8.572118,54.395646],[8.526229,54.962744],[9.282049,54.830865],[9.921906,54.983104]]]},"type":"Feature","id":"DEU","properties":{"name":"Germany","id":"DEU","centroid":[13.25,52.3]}},{"geometry":{"type":"Polygon","coordinates":[[[43.081226,12.699639],[43.317852,12.390148],[43.286381,11.974928],[42.715874,11.735641],[43.145305,11.46204],[42.776852,10.926879],[42.55493,11.10511],[42.31414,11.0342],[41.75557,11.05091],[41.73959,11.35511],[41.66176,11.6312],[42,12.1],[42.35156,12.54223],[42.779642,12.455416],[43.081226,12.699639]]]},"type":"Feature","id":"DJI","properties":{"name":"Djibouti","id":"DJI","centroid":[42.2,11.08]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[12.690006,55.609991],[12.089991,54.800015],[11.043543,55.364864],[10.903914,55.779955],[12.370904,56.111407],[12.690006,55.609991]]],[[[10.912182,56.458621],[10.667804,56.081383],[10.369993,56.190007],[9.649985,55.469999],[9.921906,54.983104],[9.282049,54.830865],[8.526229,54.962744],[8.120311,55.517723],[8.089977,56.540012],[8.256582,56.809969],[8.543438,57.110003],[9.424469,57.172066],[9.775559,57.447941],[10.580006,57.730017],[10.546106,57.215733],[10.25,56.890016],[10.369993,56.609982],[10.912182,56.458621]]]]},"type":"Feature","id":"DNK","properties":{"name":"Denmark","id":"DNK","centroid":[12.34,55.41]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.712361,19.714456],[-71.587304,19.884911],[-70.806706,19.880286],[-70.214365,19.622885],[-69.950815,19.648],[-69.76925,19.293267],[-69.222126,19.313214],[-69.254346,19.015196],[-68.809412,18.979074],[-68.317943,18.612198],[-68.689316,18.205142],[-69.164946,18.422648],[-69.623988,18.380713],[-69.952934,18.428307],[-70.133233,18.245915],[-70.517137,18.184291],[-70.669298,18.426886],[-70.99995,18.283329],[-71.40021,17.598564],[-71.657662,17.757573],[-71.708305,18.044997],[-71.687738,18.31666],[-71.945112,18.6169],[-71.701303,18.785417],[-71.624873,19.169838],[-71.712361,19.714456]]]},"type":"Feature","id":"DOM","properties":{"name":"Dominican Republic","id":"DOM","centroid":[-61.24,15.2]}},{"geometry":{"type":"Polygon","coordinates":[[[11.999506,23.471668],[8.572893,21.565661],[5.677566,19.601207],[4.267419,19.155265],[3.158133,19.057364],[3.146661,19.693579],[2.683588,19.85623],[2.060991,20.142233],[1.823228,20.610809],[-1.550055,22.792666],[-4.923337,24.974574],[-8.6844,27.395744],[-8.665124,27.589479],[-8.66559,27.656426],[-8.674116,28.841289],[-7.059228,29.579228],[-6.060632,29.7317],[-5.242129,30.000443],[-4.859646,30.501188],[-3.690441,30.896952],[-3.647498,31.637294],[-3.06898,31.724498],[-2.616605,32.094346],[-1.307899,32.262889],[-1.124551,32.651522],[-1.388049,32.864015],[-1.733455,33.919713],[-1.792986,34.527919],[-2.169914,35.168396],[-1.208603,35.714849],[-0.127454,35.888662],[0.503877,36.301273],[1.466919,36.605647],[3.161699,36.783905],[4.815758,36.865037],[5.32012,36.716519],[6.26182,37.110655],[7.330385,37.118381],[7.737078,36.885708],[8.420964,36.946427],[8.217824,36.433177],[8.376368,35.479876],[8.140981,34.655146],[7.524482,34.097376],[7.612642,33.344115],[8.430473,32.748337],[8.439103,32.506285],[9.055603,32.102692],[9.48214,30.307556],[9.805634,29.424638],[9.859998,28.95999],[9.683885,28.144174],[9.756128,27.688259],[9.629056,27.140953],[9.716286,26.512206],[9.319411,26.094325],[9.910693,25.365455],[9.948261,24.936954],[10.303847,24.379313],[10.771364,24.562532],[11.560669,24.097909],[11.999506,23.471668]]]},"type":"Feature","id":"DZA","properties":{"name":"Algeria","id":"DZA","centroid":[3.08,36.42]}},{"geometry":{"type":"Polygon","coordinates":[[[-80.302561,-3.404856],[-79.770293,-2.657512],[-79.986559,-2.220794],[-80.368784,-2.685159],[-80.967765,-2.246943],[-80.764806,-1.965048],[-80.933659,-1.057455],[-80.58337,-0.906663],[-80.399325,-0.283703],[-80.020898,0.36034],[-80.09061,0.768429],[-79.542762,0.982938],[-78.855259,1.380924],[-77.855061,0.809925],[-77.668613,0.825893],[-77.424984,0.395687],[-76.57638,0.256936],[-76.292314,0.416047],[-75.801466,0.084801],[-75.373223,-0.152032],[-75.233723,-0.911417],[-75.544996,-1.56161],[-76.635394,-2.608678],[-77.837905,-3.003021],[-78.450684,-3.873097],[-78.639897,-4.547784],[-79.205289,-4.959129],[-79.624979,-4.454198],[-80.028908,-4.346091],[-80.442242,-4.425724],[-80.469295,-4.059287],[-80.184015,-3.821162],[-80.302561,-3.404856]]]},"type":"Feature","id":"ECU","properties":{"name":"Ecuador","id":"ECU","centroid":[-78.35,-0.15]}},{"geometry":{"type":"Polygon","coordinates":[[[34.9226,29.50133],[34.64174,29.09942],[34.42655,28.34399],[34.15451,27.8233],[33.92136,27.6487],[33.58811,27.97136],[33.13676,28.41765],[32.42323,29.85108],[32.32046,29.76043],[32.73482,28.70523],[33.34876,27.69989],[34.10455,26.14227],[34.47387,25.59856],[34.79507,25.03375],[35.69241,23.92671],[35.49372,23.75237],[35.52598,23.10244],[36.69069,22.20485],[36.86623,22],[32.9,22],[29.02,22],[25,22],[25,25.6825],[25,29.238655],[24.70007,30.04419],[24.95762,30.6616],[24.80287,31.08929],[25.16482,31.56915],[26.49533,31.58568],[27.45762,31.32126],[28.45048,31.02577],[28.91353,30.87005],[29.68342,31.18686],[30.09503,31.4734],[30.97693,31.55586],[31.68796,31.4296],[31.96041,30.9336],[32.19247,31.26034],[32.99392,31.02407],[33.7734,30.96746],[34.26544,31.21936],[34.9226,29.50133]]]},"type":"Feature","id":"EGY","properties":{"name":"Egypt","id":"EGY","centroid":[31.14,30.01]}},{"geometry":{"type":"Polygon","coordinates":[[[42.35156,12.54223],[42.00975,12.86582],[41.59856,13.45209],[41.155194,13.77332],[40.8966,14.11864],[40.026219,14.519579],[39.34061,14.53155],[39.0994,14.74064],[38.51295,14.50547],[37.90607,14.95943],[37.59377,14.2131],[36.42951,14.42211],[36.323189,14.822481],[36.75386,16.291874],[36.85253,16.95655],[37.16747,17.26314],[37.904,17.42754],[38.41009,17.998307],[38.990623,16.840626],[39.26611,15.922723],[39.814294,15.435647],[41.179275,14.49108],[41.734952,13.921037],[42.276831,13.343992],[42.589576,13.000421],[43.081226,12.699639],[42.779642,12.455416],[42.35156,12.54223]]]},"type":"Feature","id":"ERI","properties":{"name":"Eritrea","id":"ERI","centroid":[38.55,15.19]}},{"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.984433,42.592775],[-9.392884,43.026625],[-7.97819,43.748338],[-6.754492,43.567909],[-5.411886,43.57424],[-4.347843,43.403449],[-3.517532,43.455901],[-1.901351,43.422802],[-1.502771,43.034014],[0.338047,42.579546],[0.701591,42.795734],[1.826793,42.343385],[2.985999,42.473015],[3.039484,41.89212],[2.091842,41.226089],[0.810525,41.014732],[0.721331,40.678318],[0.106692,40.123934],[-0.278711,39.309978],[0.111291,38.738514],[-0.467124,38.292366],[-0.683389,37.642354],[-1.438382,37.443064],[-2.146453,36.674144],[-3.415781,36.6589],[-4.368901,36.677839],[-4.995219,36.324708],[-5.37716,35.94685],[-5.866432,36.029817],[-6.236694,36.367677],[-6.520191,36.942913],[-7.453726,37.097788],[-7.537105,37.428904],[-7.166508,37.803894],[-7.029281,38.075764],[-7.374092,38.373059],[-7.098037,39.030073],[-7.498632,39.629571],[-7.066592,39.711892],[-7.026413,40.184524],[-6.86402,40.330872],[-6.851127,41.111083],[-6.389088,41.381815],[-6.668606,41.883387],[-7.251309,41.918346],[-7.422513,41.792075],[-8.013175,41.790886],[-8.263857,42.280469],[-8.671946,42.134689],[-9.034818,41.880571]]]},"type":"Feature","id":"ESP","properties":{"name":"Spain","id":"ESP","centroid":[-3.45,40.25]}},{"geometry":{"type":"Polygon","coordinates":[[[24.312863,57.793424],[24.428928,58.383413],[24.061198,58.257375],[23.42656,58.612753],[23.339795,59.18724],[24.604214,59.465854],[25.864189,59.61109],[26.949136,59.445803],[27.981114,59.475388],[28.131699,59.300825],[27.420166,58.724581],[27.716686,57.791899],[27.288185,57.474528],[26.463532,57.476389],[25.60281,57.847529],[25.164594,57.970157],[24.312863,57.793424]]]},"type":"Feature","id":"EST","properties":{"name":"Estonia","id":"EST","centroid":[24.48,59.22]}},{"geometry":{"type":"Polygon","coordinates":[[[37.90607,14.95943],[38.51295,14.50547],[39.0994,14.74064],[39.34061,14.53155],[40.02625,14.51959],[40.8966,14.11864],[41.1552,13.77333],[41.59856,13.45209],[42.00975,12.86582],[42.35156,12.54223],[42,12.1],[41.66176,11.6312],[41.73959,11.35511],[41.75557,11.05091],[42.31414,11.0342],[42.55493,11.10511],[42.776852,10.926879],[42.55876,10.57258],[42.92812,10.02194],[43.29699,9.54048],[43.67875,9.18358],[46.94834,7.99688],[47.78942,8.003],[44.9636,5.00162],[43.66087,4.95755],[42.76967,4.25259],[42.12861,4.23413],[41.855083,3.918912],[41.1718,3.91909],[40.76848,4.25702],[39.85494,3.83879],[39.559384,3.42206],[38.89251,3.50074],[38.67114,3.61607],[38.43697,3.58851],[38.120915,3.598605],[36.855093,4.447864],[36.159079,4.447864],[35.817448,4.776966],[35.817448,5.338232],[35.298007,5.506],[34.70702,6.59422],[34.25032,6.82607],[34.0751,7.22595],[33.56829,7.71334],[32.95418,7.78497],[33.2948,8.35458],[33.8255,8.37916],[33.97498,8.68456],[33.96162,9.58358],[34.25745,10.63009],[34.73115,10.91017],[34.83163,11.31896],[35.26049,12.08286],[35.86363,12.57828],[36.27022,13.56333],[36.42951,14.42211],[37.59377,14.2131],[37.90607,14.95943]]]},"type":"Feature","id":"ETH","properties":{"name":"Ethiopia","id":"ETH","centroid":[38.42,9.02]}},{"geometry":{"type":"Polygon","coordinates":[[[28.59193,69.064777],[28.445944,68.364613],[29.977426,67.698297],[29.054589,66.944286],[30.21765,65.80598],[29.54443,64.948672],[30.444685,64.204453],[30.035872,63.552814],[31.516092,62.867687],[31.139991,62.357693],[30.211107,61.780028],[28.069998,60.503517],[26.255173,60.423961],[24.496624,60.057316],[22.869695,59.846373],[22.290764,60.391921],[21.322244,60.72017],[21.544866,61.705329],[21.059211,62.607393],[21.536029,63.189735],[22.442744,63.81781],[24.730512,64.902344],[25.398068,65.111427],[25.294043,65.534346],[23.903379,66.006927],[23.56588,66.396051],[23.539473,67.936009],[21.978535,68.616846],[20.645593,69.106247],[21.244936,69.370443],[22.356238,68.841741],[23.66205,68.891247],[24.735679,68.649557],[25.689213,69.092114],[26.179622,69.825299],[27.732292,70.164193],[29.015573,69.766491],[28.59193,69.064777]]]},"type":"Feature","id":"FIN","properties":{"name":"Finland","id":"FIN","centroid":[25.03,60.15]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.3736,-17.33992],[178.71806,-17.62846],[178.55271,-18.15059],[177.93266,-18.28799],[177.38146,-18.16432],[177.28504,-17.72465],[177.67087,-17.38114],[178.12557,-17.50481],[178.3736,-17.33992]]],[[[179.364143,-16.801354],[178.725059,-17.012042],[178.596839,-16.63915],[179.096609,-16.433984],[179.413509,-16.379054],[180,-16.067133],[180,-16.555217],[179.364143,-16.801354]]],[[[-179.917369,-16.501783],[-180,-16.555217],[-180,-16.067133],[-179.79332,-16.020882],[-179.917369,-16.501783]]]]},"type":"Feature","id":"FJI","properties":{"name":"Fiji","id":"FJI","centroid":[178.3,-18.06]}},{"geometry":{"type":"Polygon","coordinates":[[[-61.2,-51.85],[-60,-51.25],[-59.15,-51.5],[-58.55,-51.1],[-57.75,-51.55],[-58.05,-51.9],[-59.4,-52.2],[-59.85,-51.85],[-60.7,-52.3],[-61.2,-51.85]]]},"type":"Feature","id":"FLK","properties":{"name":"Falkland Islands","id":"FLK","centroid":null}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[9.560016,42.152492],[9.229752,41.380007],[8.775723,41.583612],[8.544213,42.256517],[8.746009,42.628122],[9.390001,43.009985],[9.560016,42.152492]]],[[[3.588184,50.378992],[4.286023,49.907497],[4.799222,49.985373],[5.674052,49.529484],[5.897759,49.442667],[6.18632,49.463803],[6.65823,49.201958],[8.099279,49.017784],[7.593676,48.333019],[7.466759,47.620582],[7.192202,47.449766],[6.736571,47.541801],[6.768714,47.287708],[6.037389,46.725779],[6.022609,46.27299],[6.5001,46.429673],[6.843593,45.991147],[6.802355,45.70858],[7.096652,45.333099],[6.749955,45.028518],[7.007562,44.254767],[7.549596,44.127901],[7.435185,43.693845],[6.529245,43.128892],[4.556963,43.399651],[3.100411,43.075201],[2.985999,42.473015],[1.826793,42.343385],[0.701591,42.795734],[0.338047,42.579546],[-1.502771,43.034014],[-1.901351,43.422802],[-1.384225,44.02261],[-1.193798,46.014918],[-2.225724,47.064363],[-2.963276,47.570327],[-4.491555,47.954954],[-4.59235,48.68416],[-3.295814,48.901692],[-1.616511,48.644421],[-1.933494,49.776342],[-0.989469,49.347376],[1.338761,50.127173],[1.639001,50.946606],[2.513573,51.148506],[2.658422,50.796848],[3.123252,50.780363],[3.588184,50.378992]]]]},"type":"Feature","id":"FRA","properties":{"name":"France","id":"FRA","centroid":[2.2,48.5]}},{"geometry":{"type":"Polygon","coordinates":[[[11.093773,-3.978827],[10.066135,-2.969483],[9.405245,-2.144313],[8.797996,-1.111301],[8.830087,-0.779074],[9.04842,-0.459351],[9.291351,0.268666],[9.492889,1.01012],[9.830284,1.067894],[11.285079,1.057662],[11.276449,2.261051],[11.751665,2.326758],[12.35938,2.192812],[12.951334,2.321616],[13.075822,2.267097],[13.003114,1.830896],[13.282631,1.314184],[14.026669,1.395677],[14.276266,1.19693],[13.843321,0.038758],[14.316418,-0.552627],[14.425456,-1.333407],[14.29921,-1.998276],[13.992407,-2.470805],[13.109619,-2.42874],[12.575284,-1.948511],[12.495703,-2.391688],[11.820964,-2.514161],[11.478039,-2.765619],[11.855122,-3.426871],[11.093773,-3.978827]]]},"type":"Feature","id":"GAB","properties":{"name":"Gabon","id":"GAB","centroid":[9.26,0.25]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661949,54.554603],[-6.197885,53.867565],[-6.95373,54.073702],[-7.572168,54.059956],[-7.366031,54.595841],[-7.572168,55.131622],[-6.733847,55.17286],[-5.661949,54.554603]]],[[[-3.005005,58.635],[-4.073828,57.553025],[-3.055002,57.690019],[-1.959281,57.6848],[-2.219988,56.870017],[-3.119003,55.973793],[-2.085009,55.909998],[-2.005676,55.804903],[-1.114991,54.624986],[-0.430485,54.464376],[0.184981,53.325014],[0.469977,52.929999],[1.681531,52.73952],[1.559988,52.099998],[1.050562,51.806761],[1.449865,51.289428],[0.550334,50.765739],[-0.787517,50.774989],[-2.489998,50.500019],[-2.956274,50.69688],[-3.617448,50.228356],[-4.542508,50.341837],[-5.245023,49.96],[-5.776567,50.159678],[-4.30999,51.210001],[-3.414851,51.426009],[-3.422719,51.426848],[-4.984367,51.593466],[-5.267296,51.9914],[-4.222347,52.301356],[-4.770013,52.840005],[-4.579999,53.495004],[-3.093831,53.404547],[-3.09208,53.404441],[-2.945009,53.985],[-3.614701,54.600937],[-3.630005,54.615013],[-4.844169,54.790971],[-5.082527,55.061601],[-4.719112,55.508473],[-5.047981,55.783986],[-5.586398,55.311146],[-5.644999,56.275015],[-6.149981,56.78501],[-5.786825,57.818848],[-5.009999,58.630013],[-4.211495,58.550845],[-3.005005,58.635]]]]},"type":"Feature","id":"GBR","properties":{"name":"United Kingdom","id":"GBR","centroid":[-0.05,51.36]}},{"geometry":{"type":"Polygon","coordinates":[[[41.554084,41.535656],[41.703171,41.962943],[41.45347,42.645123],[40.875469,43.013628],[40.321394,43.128634],[39.955009,43.434998],[40.076965,43.553104],[40.922185,43.382159],[42.394395,43.220308],[43.756017,42.740828],[43.9312,42.554974],[44.537623,42.711993],[45.470279,42.502781],[45.77641,42.092444],[46.404951,41.860675],[46.145432,41.722802],[46.637908,41.181673],[46.501637,41.064445],[45.962601,41.123873],[45.217426,41.411452],[44.97248,41.248129],[43.582746,41.092143],[42.619549,41.583173],[41.554084,41.535656]]]},"type":"Feature","id":"GEO","properties":{"name":"Georgia","id":"GEO","centroid":[44.5,41.43]}},{"geometry":{"type":"Polygon","coordinates":[[[1.060122,5.928837],[-0.507638,5.343473],[-1.063625,5.000548],[-1.964707,4.710462],[-2.856125,4.994476],[-2.810701,5.389051],[-3.24437,6.250472],[-2.983585,7.379705],[-2.56219,8.219628],[-2.827496,9.642461],[-2.963896,10.395335],[-2.940409,10.96269],[-1.203358,11.009819],[-0.761576,10.93693],[-0.438702,11.098341],[0.023803,11.018682],[-0.049785,10.706918],[0.36758,10.191213],[0.365901,9.465004],[0.461192,8.677223],[0.712029,8.312465],[0.490957,7.411744],[0.570384,6.914359],[0.836931,6.279979],[1.060122,5.928837]]]},"type":"Feature","id":"GHA","properties":{"name":"Ghana","id":"GHA","centroid":[-0.06,5.35]}},{"geometry":{"type":"Polygon","coordinates":[[[-8.439298,7.686043],[-8.722124,7.711674],[-8.926065,7.309037],[-9.208786,7.313921],[-9.403348,7.526905],[-9.33728,7.928534],[-9.755342,8.541055],[-10.016567,8.428504],[-10.230094,8.406206],[-10.505477,8.348896],[-10.494315,8.715541],[-10.65477,8.977178],[-10.622395,9.26791],[-10.839152,9.688246],[-11.117481,10.045873],[-11.917277,10.046984],[-12.150338,9.858572],[-12.425929,9.835834],[-12.596719,9.620188],[-12.711958,9.342712],[-13.24655,8.903049],[-13.685154,9.494744],[-14.074045,9.886167],[-14.330076,10.01572],[-14.579699,10.214467],[-14.693232,10.656301],[-14.839554,10.876572],[-15.130311,11.040412],[-14.685687,11.527824],[-14.382192,11.509272],[-14.121406,11.677117],[-13.9008,11.678719],[-13.743161,11.811269],[-13.828272,12.142644],[-13.718744,12.247186],[-13.700476,12.586183],[-13.217818,12.575874],[-12.499051,12.33209],[-12.278599,12.35444],[-12.203565,12.465648],[-11.658301,12.386583],[-11.513943,12.442988],[-11.456169,12.076834],[-11.297574,12.077971],[-11.036556,12.211245],[-10.87083,12.177887],[-10.593224,11.923975],[-10.165214,11.844084],[-9.890993,12.060479],[-9.567912,12.194243],[-9.327616,12.334286],[-9.127474,12.30806],[-8.905265,12.088358],[-8.786099,11.812561],[-8.376305,11.393646],[-8.581305,11.136246],[-8.620321,10.810891],[-8.407311,10.909257],[-8.282357,10.792597],[-8.335377,10.494812],[-8.029944,10.206535],[-8.229337,10.12902],[-8.309616,9.789532],[-8.079114,9.376224],[-7.8321,8.575704],[-8.203499,8.455453],[-8.299049,8.316444],[-8.221792,8.123329],[-8.280703,7.68718],[-8.439298,7.686043]]]},"type":"Feature","id":"GIN","properties":{"name":"Guinea","id":"GIN","centroid":[-13.49,9.29]}},{"geometry":{"type":"Polygon","coordinates":[[[-16.841525,13.151394],[-16.713729,13.594959],[-15.624596,13.623587],[-15.39877,13.860369],[-15.081735,13.876492],[-14.687031,13.630357],[-14.376714,13.62568],[-14.046992,13.794068],[-13.844963,13.505042],[-14.277702,13.280585],[-14.712197,13.298207],[-15.141163,13.509512],[-15.511813,13.27857],[-15.691001,13.270353],[-15.931296,13.130284],[-16.841525,13.151394]]]},"type":"Feature","id":"GMB","properties":{"name":"Gambia","id":"GMB","centroid":[-16.4,13.28]}},{"geometry":{"type":"Polygon","coordinates":[[[-15.130311,11.040412],[-15.66418,11.458474],[-16.085214,11.524594],[-16.314787,11.806515],[-16.308947,11.958702],[-16.613838,12.170911],[-16.677452,12.384852],[-16.147717,12.547762],[-15.816574,12.515567],[-15.548477,12.62817],[-13.700476,12.586183],[-13.718744,12.247186],[-13.828272,12.142644],[-13.743161,11.811269],[-13.9008,11.678719],[-14.121406,11.677117],[-14.382192,11.509272],[-14.685687,11.527824],[-15.130311,11.040412]]]},"type":"Feature","id":"GNB","properties":{"name":"Guinea Bissau","id":"GNB","centroid":[-15.45,11.45]}},{"geometry":{"type":"Polygon","coordinates":[[[9.492889,1.01012],[9.305613,1.160911],[9.649158,2.283866],[11.276449,2.261051],[11.285079,1.057662],[9.830284,1.067894],[9.492889,1.01012]]]},"type":"Feature","id":"GNQ","properties":{"name":"Equatorial Guinea","id":"GNQ","centroid":[8.5,3.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.69998,35.705004],[24.246665,35.368022],[25.025015,35.424996],[25.769208,35.354018],[25.745023,35.179998],[26.290003,35.29999],[26.164998,35.004995],[24.724982,34.919988],[24.735007,35.084991],[23.514978,35.279992],[23.69998,35.705004]]],[[[26.604196,41.562115],[26.294602,40.936261],[26.056942,40.824123],[25.447677,40.852545],[24.925848,40.947062],[23.714811,40.687129],[24.407999,40.124993],[23.899968,39.962006],[23.342999,39.960998],[22.813988,40.476005],[22.626299,40.256561],[22.849748,39.659311],[23.350027,39.190011],[22.973099,38.970903],[23.530016,38.510001],[24.025025,38.219993],[24.040011,37.655015],[23.115003,37.920011],[23.409972,37.409991],[22.774972,37.30501],[23.154225,36.422506],[22.490028,36.41],[21.670026,36.844986],[21.295011,37.644989],[21.120034,38.310323],[20.730032,38.769985],[20.217712,39.340235],[20.150016,39.624998],[20.615,40.110007],[20.674997,40.435],[20.99999,40.580004],[21.02004,40.842727],[21.674161,40.931275],[22.055378,41.149866],[22.597308,41.130487],[22.76177,41.3048],[22.952377,41.337994],[23.692074,41.309081],[24.492645,41.583896],[25.197201,41.234486],[26.106138,41.328899],[26.117042,41.826905],[26.604196,41.562115]]]]},"type":"Feature","id":"GRC","properties":{"name":"Greece","id":"GRC","centroid":[23.46,37.58]}},{"geometry":{"type":"Polygon","coordinates":[[[-46.76379,82.62796],[-43.40644,83.22516],[-39.89753,83.18018],[-38.62214,83.54905],[-35.08787,83.64513],[-27.10046,83.51966],[-20.84539,82.72669],[-22.69182,82.34165],[-26.51753,82.29765],[-31.9,82.2],[-31.39646,82.02154],[-27.85666,82.13178],[-24.84448,81.78697],[-22.90328,82.09317],[-22.07175,81.73449],[-23.16961,81.15271],[-20.62363,81.52462],[-15.76818,81.91245],[-12.77018,81.71885],[-12.20855,81.29154],[-16.28533,80.58004],[-16.85,80.35],[-20.04624,80.17708],[-17.73035,80.12912],[-18.9,79.4],[-19.70499,78.75128],[-19.67353,77.63859],[-18.47285,76.98565],[-20.03503,76.94434],[-21.67944,76.62795],[-19.83407,76.09808],[-19.59896,75.24838],[-20.66818,75.15585],[-19.37281,74.29561],[-21.59422,74.22382],[-20.43454,73.81713],[-20.76234,73.46436],[-22.17221,73.30955],[-23.56593,73.30663],[-22.31311,72.62928],[-22.29954,72.18409],[-24.27834,72.59788],[-24.79296,72.3302],[-23.44296,72.08016],[-22.13281,71.46898],[-21.75356,70.66369],[-23.53603,70.471],[-24.30702,70.85649],[-25.54341,71.43094],[-25.20135,70.75226],[-26.36276,70.22646],[-23.72742,70.18401],[-22.34902,70.12946],[-25.02927,69.2588],[-27.74737,68.47046],[-30.67371,68.12503],[-31.77665,68.12078],[-32.81105,67.73547],[-34.20196,66.67974],[-36.35284,65.9789],[-37.04378,65.93768],[-38.37505,65.69213],[-39.81222,65.45848],[-40.66899,64.83997],[-40.68281,64.13902],[-41.1887,63.48246],[-42.81938,62.68233],[-42.41666,61.90093],[-42.86619,61.07404],[-43.3784,60.09772],[-44.7875,60.03676],[-46.26364,60.85328],[-48.26294,60.85843],[-49.23308,61.40681],[-49.90039,62.38336],[-51.63325,63.62691],[-52.14014,64.27842],[-52.27659,65.1767],[-53.66166,66.09957],[-53.30161,66.8365],[-53.96911,67.18899],[-52.9804,68.35759],[-51.47536,68.72958],[-51.08041,69.14781],[-50.87122,69.9291],[-52.013585,69.574925],[-52.55792,69.42616],[-53.45629,69.283625],[-54.68336,69.61003],[-54.75001,70.28932],[-54.35884,70.821315],[-53.431315,70.835755],[-51.39014,70.56978],[-53.10937,71.20485],[-54.00422,71.54719],[-55,71.406537],[-55.83468,71.65444],[-54.71819,72.58625],[-55.32634,72.95861],[-56.12003,73.64977],[-57.32363,74.71026],[-58.59679,75.09861],[-58.58516,75.51727],[-61.26861,76.10238],[-63.39165,76.1752],[-66.06427,76.13486],[-68.50438,76.06141],[-69.66485,76.37975],[-71.40257,77.00857],[-68.77671,77.32312],[-66.76397,77.37595],[-71.04293,77.63595],[-73.297,78.04419],[-73.15938,78.43271],[-69.37345,78.91388],[-65.7107,79.39436],[-65.3239,79.75814],[-68.02298,80.11721],[-67.15129,80.51582],[-63.68925,81.21396],[-62.23444,81.3211],[-62.65116,81.77042],[-60.28249,82.03363],[-57.20744,82.19074],[-54.13442,82.19962],[-53.04328,81.88833],[-50.39061,82.43883],[-48.00386,82.06481],[-46.59984,81.985945],[-44.523,81.6607],[-46.9007,82.19979],[-46.76379,82.62796]]]},"type":"Feature","id":"GRL","properties":{"name":"Greenland","id":"GRL","centroid":null}},{"geometry":{"type":"Polygon","coordinates":[[[-90.095555,13.735338],[-90.608624,13.909771],[-91.23241,13.927832],[-91.689747,14.126218],[-92.22775,14.538829],[-92.20323,14.830103],[-92.087216,15.064585],[-92.229249,15.251447],[-91.74796,16.066565],[-90.464473,16.069562],[-90.438867,16.41011],[-90.600847,16.470778],[-90.711822,16.687483],[-91.08167,16.918477],[-91.453921,17.252177],[-91.002269,17.254658],[-91.00152,17.817595],[-90.067934,17.819326],[-89.14308,17.808319],[-89.150806,17.015577],[-89.229122,15.886938],[-88.930613,15.887273],[-88.604586,15.70638],[-88.518364,15.855389],[-88.225023,15.727722],[-88.68068,15.346247],[-89.154811,15.066419],[-89.22522,14.874286],[-89.145535,14.678019],[-89.353326,14.424133],[-89.587343,14.362586],[-89.534219,14.244816],[-89.721934,14.134228],[-90.064678,13.88197],[-90.095555,13.735338]]]},"type":"Feature","id":"GTM","properties":{"name":"Guatemala","id":"GTM","centroid":[-90.22,14.4]}},{"geometry":{"type":"Polygon","coordinates":[[[-52.556425,2.504705],[-52.939657,2.124858],[-53.418465,2.053389],[-53.554839,2.334897],[-53.778521,2.376703],[-54.088063,2.105557],[-54.524754,2.311849],[-54.27123,2.738748],[-54.184284,3.194172],[-54.011504,3.62257],[-54.399542,4.212611],[-54.478633,4.896756],[-53.958045,5.756548],[-53.618453,5.646529],[-52.882141,5.409851],[-51.823343,4.565768],[-51.657797,4.156232],[-52.249338,3.241094],[-52.556425,2.504705]]]},"type":"Feature","id":"GUF","properties":{"name":"French Guiana","id":"GUF","centroid":[-52.18,5.05]}},{"geometry":{"type":"Polygon","coordinates":[[[-59.758285,8.367035],[-59.101684,7.999202],[-58.482962,7.347691],[-58.454876,6.832787],[-58.078103,6.809094],[-57.542219,6.321268],[-57.147436,5.97315],[-57.307246,5.073567],[-57.914289,4.812626],[-57.86021,4.576801],[-58.044694,4.060864],[-57.601569,3.334655],[-57.281433,3.333492],[-57.150098,2.768927],[-56.539386,1.899523],[-56.782704,1.863711],[-57.335823,1.948538],[-57.660971,1.682585],[-58.11345,1.507195],[-58.429477,1.463942],[-58.540013,1.268088],[-59.030862,1.317698],[-59.646044,1.786894],[-59.718546,2.24963],[-59.974525,2.755233],[-59.815413,3.606499],[-59.53804,3.958803],[-59.767406,4.423503],[-60.111002,4.574967],[-59.980959,5.014061],[-60.213683,5.244486],[-60.733574,5.200277],[-61.410303,5.959068],[-61.139415,6.234297],[-61.159336,6.696077],[-60.543999,6.856584],[-60.295668,7.043911],[-60.637973,7.415],[-60.550588,7.779603],[-59.758285,8.367035]]]},"type":"Feature","id":"GUY","properties":{"name":"Guyana","id":"GUY","centroid":[-58.12,6.5]}},{"geometry":{"type":"Polygon","coordinates":[[[-87.316654,12.984686],[-87.489409,13.297535],[-87.793111,13.38448],[-87.723503,13.78505],[-87.859515,13.893312],[-88.065343,13.964626],[-88.503998,13.845486],[-88.541231,13.980155],[-88.843073,14.140507],[-89.058512,14.340029],[-89.353326,14.424133],[-89.145535,14.678019],[-89.22522,14.874286],[-89.154811,15.066419],[-88.68068,15.346247],[-88.225023,15.727722],[-88.121153,15.688655],[-87.901813,15.864458],[-87.61568,15.878799],[-87.522921,15.797279],[-87.367762,15.84694],[-86.903191,15.756713],[-86.440946,15.782835],[-86.119234,15.893449],[-86.001954,16.005406],[-85.683317,15.953652],[-85.444004,15.885749],[-85.182444,15.909158],[-84.983722,15.995923],[-84.52698,15.857224],[-84.368256,15.835158],[-84.063055,15.648244],[-83.773977,15.424072],[-83.410381,15.270903],[-83.147219,14.995829],[-83.489989,15.016267],[-83.628585,14.880074],[-83.975721,14.749436],[-84.228342,14.748764],[-84.449336,14.621614],[-84.649582,14.666805],[-84.820037,14.819587],[-84.924501,14.790493],[-85.052787,14.551541],[-85.148751,14.560197],[-85.165365,14.35437],[-85.514413,14.079012],[-85.698665,13.960078],[-85.801295,13.836055],[-86.096264,14.038187],[-86.312142,13.771356],[-86.520708,13.778487],[-86.755087,13.754845],[-86.733822,13.263093],[-86.880557,13.254204],[-87.005769,13.025794],[-87.316654,12.984686]]]},"type":"Feature","id":"HND","properties":{"name":"Honduras","id":"HND","centroid":[-87.14,14.05]}},{"geometry":{"type":"Polygon","coordinates":[[[18.829838,45.908878],[19.072769,45.521511],[19.390476,45.236516],[19.005486,44.860234],[18.553214,45.08159],[17.861783,45.06774],[17.002146,45.233777],[16.534939,45.211608],[16.318157,45.004127],[15.959367,45.233777],[15.750026,44.818712],[16.23966,44.351143],[16.456443,44.04124],[16.916156,43.667722],[17.297373,43.446341],[17.674922,43.028563],[18.56,42.65],[18.450016,42.479991],[17.50997,42.849995],[16.930006,43.209998],[16.015385,43.507215],[15.174454,44.243191],[15.37625,44.317915],[14.920309,44.738484],[14.901602,45.07606],[14.258748,45.233777],[13.952255,44.802124],[13.656976,45.136935],[13.679403,45.484149],[13.71506,45.500324],[14.411968,45.466166],[14.595109,45.634941],[14.935244,45.471695],[15.327675,45.452316],[15.323954,45.731783],[15.67153,45.834154],[15.768733,46.238108],[16.564808,46.503751],[16.882515,46.380632],[17.630066,45.951769],[18.456062,45.759481],[18.829838,45.908878]]]},"type":"Feature","id":"HRV","properties":{"name":"Croatia","id":"HRV","centroid":[15.58,45.5]}},{"geometry":{"type":"Polygon","coordinates":[[[-73.189791,19.915684],[-72.579673,19.871501],[-71.712361,19.714456],[-71.624873,19.169838],[-71.701303,18.785417],[-71.945112,18.6169],[-71.687738,18.31666],[-71.708305,18.044997],[-72.372476,18.214961],[-72.844411,18.145611],[-73.454555,18.217906],[-73.922433,18.030993],[-74.458034,18.34255],[-74.369925,18.664908],[-73.449542,18.526053],[-72.694937,18.445799],[-72.334882,18.668422],[-72.79165,19.101625],[-72.784105,19.483591],[-73.415022,19.639551],[-73.189791,19.915684]]]},"type":"Feature","id":"HTI","properties":{"name":"Haiti","id":"HTI","centroid":[-72.2,18.4]}},{"geometry":{"type":"Polygon","coordinates":[[[16.202298,46.852386],[16.534268,47.496171],[16.340584,47.712902],[16.903754,47.714866],[16.979667,48.123497],[17.488473,47.867466],[17.857133,47.758429],[18.696513,47.880954],[18.777025,48.081768],[19.174365,48.111379],[19.661364,48.266615],[19.769471,48.202691],[20.239054,48.327567],[20.473562,48.56285],[20.801294,48.623854],[21.872236,48.319971],[22.085608,48.422264],[22.64082,48.15024],[22.710531,47.882194],[22.099768,47.672439],[21.626515,46.994238],[21.021952,46.316088],[20.220192,46.127469],[19.596045,46.17173],[18.829838,45.908878],[18.456062,45.759481],[17.630066,45.951769],[16.882515,46.380632],[16.564808,46.503751],[16.370505,46.841327],[16.202298,46.852386]]]},"type":"Feature","id":"HUN","properties":{"name":"Hungary","id":"HUN","centroid":[19.05,47.29]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.715609,-10.239581],[120.295014,-10.25865],[118.967808,-9.557969],[119.90031,-9.36134],[120.425756,-9.665921],[120.775502,-9.969675],[120.715609,-10.239581]]],[[[124.43595,-10.140001],[123.579982,-10.359987],[123.459989,-10.239995],[123.550009,-9.900016],[123.980009,-9.290027],[124.968682,-8.89279],[125.07002,-9.089987],[125.08852,-9.393173],[124.43595,-10.140001]]],[[[117.900018,-8.095681],[118.260616,-8.362383],[118.87846,-8.280683],[119.126507,-8.705825],[117.970402,-8.906639],[117.277731,-9.040895],[116.740141,-9.032937],[117.083737,-8.457158],[117.632024,-8.449303],[117.900018,-8.095681]]],[[[122.903537,-8.094234],[122.756983,-8.649808],[121.254491,-8.933666],[119.924391,-8.810418],[119.920929,-8.444859],[120.715092,-8.236965],[121.341669,-8.53674],[122.007365,-8.46062],[122.903537,-8.094234]]],[[[108.623479,-6.777674],[110.539227,-6.877358],[110.759576,-6.465186],[112.614811,-6.946036],[112.978768,-7.594213],[114.478935,-7.776528],[115.705527,-8.370807],[114.564511,-8.751817],[113.464734,-8.348947],[112.559672,-8.376181],[111.522061,-8.302129],[110.58615,-8.122605],[109.427667,-7.740664],[108.693655,-7.6416],[108.277763,-7.766657],[106.454102,-7.3549],[106.280624,-6.9249],[105.365486,-6.851416],[106.051646,-5.895919],[107.265009,-5.954985],[108.072091,-6.345762],[108.486846,-6.421985],[108.623479,-6.777674]]],[[[134.724624,-6.214401],[134.210134,-6.895238],[134.112776,-6.142467],[134.290336,-5.783058],[134.499625,-5.445042],[134.727002,-5.737582],[134.724624,-6.214401]]],[[[127.249215,-3.459065],[126.874923,-3.790983],[126.183802,-3.607376],[125.989034,-3.177273],[127.000651,-3.129318],[127.249215,-3.459065]]],[[[130.471344,-3.093764],[130.834836,-3.858472],[129.990547,-3.446301],[129.155249,-3.362637],[128.590684,-3.428679],[127.898891,-3.393436],[128.135879,-2.84365],[129.370998,-2.802154],[130.471344,-3.093764]]],[[[134.143368,-1.151867],[134.422627,-2.769185],[135.457603,-3.367753],[136.293314,-2.307042],[137.440738,-1.703513],[138.329727,-1.702686],[139.184921,-2.051296],[139.926684,-2.409052],[141.00021,-2.600151],[141.017057,-5.859022],[141.033852,-9.117893],[140.143415,-8.297168],[139.127767,-8.096043],[138.881477,-8.380935],[137.614474,-8.411683],[138.039099,-7.597882],[138.668621,-7.320225],[138.407914,-6.232849],[137.92784,-5.393366],[135.98925,-4.546544],[135.164598,-4.462931],[133.66288,-3.538853],[133.367705,-4.024819],[132.983956,-4.112979],[132.756941,-3.746283],[132.753789,-3.311787],[131.989804,-2.820551],[133.066845,-2.460418],[133.780031,-2.479848],[133.696212,-2.214542],[132.232373,-2.212526],[131.836222,-1.617162],[130.94284,-1.432522],[130.519558,-0.93772],[131.867538,-0.695461],[132.380116,-0.369538],[133.985548,-0.78021],[134.143368,-1.151867]]],[[[125.240501,1.419836],[124.437035,0.427881],[123.685505,0.235593],[122.723083,0.431137],[121.056725,0.381217],[120.183083,0.237247],[120.04087,-0.519658],[120.935905,-1.408906],[121.475821,-0.955962],[123.340565,-0.615673],[123.258399,-1.076213],[122.822715,-0.930951],[122.38853,-1.516858],[121.508274,-1.904483],[122.454572,-3.186058],[122.271896,-3.5295],[123.170963,-4.683693],[123.162333,-5.340604],[122.628515,-5.634591],[122.236394,-5.282933],[122.719569,-4.464172],[121.738234,-4.851331],[121.489463,-4.574553],[121.619171,-4.188478],[120.898182,-3.602105],[120.972389,-2.627643],[120.305453,-2.931604],[120.390047,-4.097579],[120.430717,-5.528241],[119.796543,-5.6734],[119.366906,-5.379878],[119.653606,-4.459417],[119.498835,-3.494412],[119.078344,-3.487022],[118.767769,-2.801999],[119.180974,-2.147104],[119.323394,-1.353147],[119.825999,0.154254],[120.035702,0.566477],[120.885779,1.309223],[121.666817,1.013944],[122.927567,0.875192],[124.077522,0.917102],[125.065989,1.643259],[125.240501,1.419836]]],[[[128.688249,1.132386],[128.635952,0.258486],[128.12017,0.356413],[127.968034,-0.252077],[128.379999,-0.780004],[128.100016,-0.899996],[127.696475,-0.266598],[127.39949,1.011722],[127.600512,1.810691],[127.932378,2.174596],[128.004156,1.628531],[128.594559,1.540811],[128.688249,1.132386]]],[[[117.875627,1.827641],[118.996747,0.902219],[117.811858,0.784242],[117.478339,0.102475],[117.521644,-0.803723],[116.560048,-1.487661],[116.533797,-2.483517],[116.148084,-4.012726],[116.000858,-3.657037],[114.864803,-4.106984],[114.468652,-3.495704],[113.755672,-3.43917],[113.256994,-3.118776],[112.068126,-3.478392],[111.703291,-2.994442],[111.04824,-3.049426],[110.223846,-2.934032],[110.070936,-1.592874],[109.571948,-1.314907],[109.091874,-0.459507],[108.952658,0.415375],[109.069136,1.341934],[109.66326,2.006467],[109.830227,1.338136],[110.514061,0.773131],[111.159138,0.976478],[111.797548,0.904441],[112.380252,1.410121],[112.859809,1.49779],[113.80585,1.217549],[114.621355,1.430688],[115.134037,2.821482],[115.519078,3.169238],[115.865517,4.306559],[117.015214,4.306094],[117.882035,4.137551],[117.313232,3.234428],[118.04833,2.28769],[117.875627,1.827641]]],[[[105.817655,-5.852356],[104.710384,-5.873285],[103.868213,-5.037315],[102.584261,-4.220259],[102.156173,-3.614146],[101.399113,-2.799777],[100.902503,-2.050262],[100.141981,-0.650348],[99.26374,0.183142],[98.970011,1.042882],[98.601351,1.823507],[97.699598,2.453184],[97.176942,3.308791],[96.424017,3.86886],[95.380876,4.970782],[95.293026,5.479821],[95.936863,5.439513],[97.484882,5.246321],[98.369169,4.26837],[99.142559,3.59035],[99.693998,3.174329],[100.641434,2.099381],[101.658012,2.083697],[102.498271,1.3987],[103.07684,0.561361],[103.838396,0.104542],[103.437645,-0.711946],[104.010789,-1.059212],[104.369991,-1.084843],[104.53949,-1.782372],[104.887893,-2.340425],[105.622111,-2.428844],[106.108593,-3.061777],[105.857446,-4.305525],[105.817655,-5.852356]]]]},"type":"Feature","id":"IDN","properties":{"name":"Indonesia","id":"IDN","centroid":[106.49,-6.09]}},{"geometry":{"type":"Polygon","coordinates":[[[77.837451,35.49401],[78.912269,34.321936],[78.811086,33.506198],[79.208892,32.994395],[79.176129,32.48378],[78.458446,32.618164],[78.738894,31.515906],[79.721367,30.882715],[81.111256,30.183481],[80.476721,29.729865],[80.088425,28.79447],[81.057203,28.416095],[81.999987,27.925479],[83.304249,27.364506],[84.675018,27.234901],[85.251779,26.726198],[86.024393,26.630985],[87.227472,26.397898],[88.060238,26.414615],[88.174804,26.810405],[88.043133,27.445819],[88.120441,27.876542],[88.730326,28.086865],[88.814248,27.299316],[88.835643,27.098966],[89.744528,26.719403],[90.373275,26.875724],[91.217513,26.808648],[92.033484,26.83831],[93.746338,27.108034],[94.306641,27.547242],[95.767822,28.139816],[97.051989,27.699059],[97.133999,27.083774],[96.419366,27.264589],[95.124768,26.573572],[95.155153,26.001307],[94.603249,25.162495],[94.552658,24.675238],[94.106742,23.850741],[93.325188,24.078556],[93.286327,23.043658],[93.060294,22.703111],[93.166128,22.27846],[92.672721,22.041239],[92.146035,23.627499],[91.869928,23.624346],[91.706475,22.985264],[91.158963,23.503527],[91.46773,24.072639],[91.915093,24.130414],[92.376202,24.976693],[91.799596,25.147432],[90.872211,25.132601],[89.920693,25.26975],[89.832481,25.965082],[89.355094,26.014407],[88.563049,26.446526],[88.209789,25.768066],[88.931554,25.238692],[88.306373,24.866079],[88.084422,24.501657],[88.69994,24.233715],[88.52977,23.631142],[88.876312,22.879146],[89.031961,22.055708],[88.888766,21.690588],[88.208497,21.703172],[86.975704,21.495562],[87.033169,20.743308],[86.499351,20.151638],[85.060266,19.478579],[83.941006,18.30201],[83.189217,17.671221],[82.192792,17.016636],[82.191242,16.556664],[81.692719,16.310219],[80.791999,15.951972],[80.324896,15.899185],[80.025069,15.136415],[80.233274,13.835771],[80.286294,13.006261],[79.862547,12.056215],[79.857999,10.357275],[79.340512,10.308854],[78.885345,9.546136],[79.18972,9.216544],[78.277941,8.933047],[77.941165,8.252959],[77.539898,7.965535],[76.592979,8.899276],[76.130061,10.29963],[75.746467,11.308251],[75.396101,11.781245],[74.864816,12.741936],[74.616717,13.992583],[74.443859,14.617222],[73.534199,15.990652],[73.119909,17.92857],[72.820909,19.208234],[72.824475,20.419503],[72.630533,21.356009],[71.175273,20.757441],[70.470459,20.877331],[69.16413,22.089298],[69.644928,22.450775],[69.349597,22.84318],[68.176645,23.691965],[68.842599,24.359134],[71.04324,24.356524],[70.844699,25.215102],[70.282873,25.722229],[70.168927,26.491872],[69.514393,26.940966],[70.616496,27.989196],[71.777666,27.91318],[72.823752,28.961592],[73.450638,29.976413],[74.42138,30.979815],[74.405929,31.692639],[75.258642,32.271105],[74.451559,32.7649],[74.104294,33.441473],[73.749948,34.317699],[74.240203,34.748887],[75.757061,34.504923],[76.871722,34.653544],[77.837451,35.49401]]]},"type":"Feature","id":"IND","properties":{"name":"India","id":"IND","centroid":[77.13,28.37]}},{"geometry":{"type":"Polygon","coordinates":[[[-6.197885,53.867565],[-6.032985,53.153164],[-6.788857,52.260118],[-8.561617,51.669301],[-9.977086,51.820455],[-9.166283,52.864629],[-9.688525,53.881363],[-8.327987,54.664519],[-7.572168,55.131622],[-7.366031,54.595841],[-7.572168,54.059956],[-6.95373,54.073702],[-6.197885,53.867565]]]},"type":"Feature","id":"IRL","properties":{"name":"Ireland","id":"IRL","centroid":[-6.15,53.21]}},{"geometry":{"type":"Polygon","coordinates":[[[53.921598,37.198918],[54.800304,37.392421],[55.511578,37.964117],[56.180375,37.935127],[56.619366,38.121394],[57.330434,38.029229],[58.436154,37.522309],[59.234762,37.412988],[60.377638,36.527383],[61.123071,36.491597],[61.210817,35.650072],[60.803193,34.404102],[60.52843,33.676446],[60.9637,33.528832],[60.536078,32.981269],[60.863655,32.18292],[60.941945,31.548075],[61.699314,31.379506],[61.781222,30.73585],[60.874248,29.829239],[61.369309,29.303276],[61.771868,28.699334],[62.72783,28.259645],[62.755426,27.378923],[63.233898,27.217047],[63.316632,26.756532],[61.874187,26.239975],[61.497363,25.078237],[59.616134,25.380157],[58.525761,25.609962],[57.397251,25.739902],[56.970766,26.966106],[56.492139,27.143305],[55.72371,26.964633],[54.71509,26.480658],[53.493097,26.812369],[52.483598,27.580849],[51.520763,27.86569],[50.852948,28.814521],[50.115009,30.147773],[49.57685,29.985715],[48.941333,30.31709],[48.567971,29.926778],[48.014568,30.452457],[48.004698,30.985137],[47.685286,30.984853],[47.849204,31.709176],[47.334661,32.469155],[46.109362,33.017287],[45.416691,33.967798],[45.64846,34.748138],[46.151788,35.093259],[46.07634,35.677383],[45.420618,35.977546],[44.77267,37.17045],[44.225756,37.971584],[44.421403,38.281281],[44.109225,39.428136],[44.79399,39.713003],[44.952688,39.335765],[45.457722,38.874139],[46.143623,38.741201],[46.50572,38.770605],[47.685079,39.508364],[48.060095,39.582235],[48.355529,39.288765],[48.010744,38.794015],[48.634375,38.270378],[48.883249,38.320245],[49.199612,37.582874],[50.147771,37.374567],[50.842354,36.872814],[52.264025,36.700422],[53.82579,36.965031],[53.921598,37.198918]]]},"type":"Feature","id":"IRN","properties":{"name":"Iran","id":"IRN","centroid":[51.25,35.42]}},{"geometry":{"type":"Polygon","coordinates":[[[45.420618,35.977546],[46.07634,35.677383],[46.151788,35.093259],[45.64846,34.748138],[45.416691,33.967798],[46.109362,33.017287],[47.334661,32.469155],[47.849204,31.709176],[47.685286,30.984853],[48.004698,30.985137],[48.014568,30.452457],[48.567971,29.926778],[47.974519,29.975819],[47.302622,30.05907],[46.568713,29.099025],[44.709499,29.178891],[41.889981,31.190009],[40.399994,31.889992],[39.195468,32.161009],[38.792341,33.378686],[41.006159,34.419372],[41.383965,35.628317],[41.289707,36.358815],[41.837064,36.605854],[42.349591,37.229873],[42.779126,37.385264],[43.942259,37.256228],[44.293452,37.001514],[44.772699,37.170445],[45.420618,35.977546]]]},"type":"Feature","id":"IRQ","properties":{"name":"Iraq","id":"IRQ","centroid":[44.3,33.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-14.508695,66.455892],[-14.739637,65.808748],[-13.609732,65.126671],[-14.909834,64.364082],[-17.794438,63.678749],[-18.656246,63.496383],[-19.972755,63.643635],[-22.762972,63.960179],[-21.778484,64.402116],[-23.955044,64.89113],[-22.184403,65.084968],[-22.227423,65.378594],[-24.326184,65.611189],[-23.650515,66.262519],[-22.134922,66.410469],[-20.576284,65.732112],[-19.056842,66.276601],[-17.798624,65.993853],[-16.167819,66.526792],[-14.508695,66.455892]]]},"type":"Feature","id":"ISL","properties":{"name":"Iceland","id":"ISL","centroid":[-21.57,64.1]}},{"geometry":{"type":"Polygon","coordinates":[[[35.719918,32.709192],[35.545665,32.393992],[35.18393,32.532511],[34.974641,31.866582],[35.225892,31.754341],[34.970507,31.616778],[34.927408,31.353435],[35.397561,31.489086],[35.420918,31.100066],[34.922603,29.501326],[34.265433,31.219361],[34.556372,31.548824],[34.488107,31.605539],[34.752587,32.072926],[34.955417,32.827376],[35.098457,33.080539],[35.126053,33.0909],[35.460709,33.08904],[35.552797,33.264275],[35.821101,33.277426],[35.836397,32.868123],[35.700798,32.716014],[35.719918,32.709192]]]},"type":"Feature","id":"ISR","properties":{"name":"Israel","id":"ISR","centroid":[35.12,31.47]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376,38.231155],[15.160243,37.444046],[15.309898,37.134219],[15.099988,36.619987],[14.335229,36.996631],[13.826733,37.104531],[12.431004,37.61295],[12.570944,38.126381],[13.741156,38.034966],[14.761249,38.143874],[15.520376,38.231155]]],[[[9.210012,41.209991],[9.809975,40.500009],[9.669519,39.177376],[9.214818,39.240473],[8.806936,38.906618],[8.428302,39.171847],[8.388253,40.378311],[8.159998,40.950007],[8.709991,40.899984],[9.210012,41.209991]]],[[[12.376485,46.767559],[13.806475,46.509306],[13.69811,46.016778],[13.93763,45.591016],[13.141606,45.736692],[12.328581,45.381778],[12.383875,44.885374],[12.261453,44.600482],[12.589237,44.091366],[13.526906,43.587727],[14.029821,42.761008],[15.14257,41.95514],[15.926191,41.961315],[16.169897,41.740295],[15.889346,41.541082],[16.785002,41.179606],[17.519169,40.877143],[18.376687,40.355625],[18.480247,40.168866],[18.293385,39.810774],[17.73838,40.277671],[16.869596,40.442235],[16.448743,39.795401],[17.17149,39.4247],[17.052841,38.902871],[16.635088,38.843572],[16.100961,37.985899],[15.684087,37.908849],[15.687963,38.214593],[15.891981,38.750942],[16.109332,38.964547],[15.718814,39.544072],[15.413613,40.048357],[14.998496,40.172949],[14.703268,40.60455],[14.060672,40.786348],[13.627985,41.188287],[12.888082,41.25309],[12.106683,41.704535],[11.191906,42.355425],[10.511948,42.931463],[10.200029,43.920007],[9.702488,44.036279],[8.888946,44.366336],[8.428561,44.231228],[7.850767,43.767148],[7.435185,43.693845],[7.549596,44.127901],[7.007562,44.254767],[6.749955,45.028518],[7.096652,45.333099],[6.802355,45.70858],[6.843593,45.991147],[7.273851,45.776948],[7.755992,45.82449],[8.31663,46.163642],[8.489952,46.005151],[8.966306,46.036932],[9.182882,46.440215],[9.922837,46.314899],[10.363378,46.483571],[10.442701,46.893546],[11.048556,46.751359],[11.164828,46.941579],[12.153088,47.115393],[12.376485,46.767559]]]]},"type":"Feature","id":"ITA","properties":{"name":"Italy","id":"ITA","centroid":[12.29,41.54]}},{"geometry":{"type":"Polygon","coordinates":[[[-77.569601,18.490525],[-76.896619,18.400867],[-76.365359,18.160701],[-76.199659,17.886867],[-76.902561,17.868238],[-77.206341,17.701116],[-77.766023,17.861597],[-78.337719,18.225968],[-78.217727,18.454533],[-77.797365,18.524218],[-77.569601,18.490525]]]},"type":"Feature","id":"JAM","properties":{"name":"Jamaica","id":"JAM","centroid":[-76.5,18]}},{"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.719918,32.709192],[36.834062,32.312938],[38.792341,33.378686],[39.195468,32.161009],[39.004886,32.010217],[37.002166,31.508413],[37.998849,30.5085],[37.66812,30.338665],[37.503582,30.003776],[36.740528,29.865283],[36.501214,29.505254],[36.068941,29.197495],[34.956037,29.356555],[34.922603,29.501326],[35.420918,31.100066],[35.397561,31.489086],[35.545252,31.782505],[35.545665,32.393992]]]},"type":"Feature","id":"JOR","properties":{"name":"Jordan","id":"JOR","centroid":[35.52,31.57]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[134.638428,34.149234],[134.766379,33.806335],[134.203416,33.201178],[133.79295,33.521985],[133.280268,33.28957],[133.014858,32.704567],[132.363115,32.989382],[132.371176,33.463642],[132.924373,34.060299],[133.492968,33.944621],[133.904106,34.364931],[134.638428,34.149234]]],[[[140.976388,37.142074],[140.59977,36.343983],[140.774074,35.842877],[140.253279,35.138114],[138.975528,34.6676],[137.217599,34.606286],[135.792983,33.464805],[135.120983,33.849071],[135.079435,34.596545],[133.340316,34.375938],[132.156771,33.904933],[130.986145,33.885761],[132.000036,33.149992],[131.33279,31.450355],[130.686318,31.029579],[130.20242,31.418238],[130.447676,32.319475],[129.814692,32.61031],[129.408463,33.296056],[130.353935,33.604151],[130.878451,34.232743],[131.884229,34.749714],[132.617673,35.433393],[134.608301,35.731618],[135.677538,35.527134],[136.723831,37.304984],[137.390612,36.827391],[138.857602,37.827485],[139.426405,38.215962],[140.05479,39.438807],[139.883379,40.563312],[140.305783,41.195005],[141.368973,41.37856],[141.914263,39.991616],[141.884601,39.180865],[140.959489,38.174001],[140.976388,37.142074]]],[[[143.910162,44.1741],[144.613427,43.960883],[145.320825,44.384733],[145.543137,43.262088],[144.059662,42.988358],[143.18385,41.995215],[141.611491,42.678791],[141.067286,41.584594],[139.955106,41.569556],[139.817544,42.563759],[140.312087,43.333273],[141.380549,43.388825],[141.671952,44.772125],[141.967645,45.551483],[143.14287,44.510358],[143.910162,44.1741]]]]},"type":"Feature","id":"JPN","properties":{"name":"Japan","id":"JPN","centroid":[139.41,35.41]}},{"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[70.388965,42.081308],[69.070027,41.384244],[68.632483,40.668681],[68.259896,40.662325],[67.985856,41.135991],[66.714047,41.168444],[66.510649,41.987644],[66.023392,41.994646],[66.098012,42.99766],[64.900824,43.728081],[63.185787,43.650075],[62.0133,43.504477],[61.05832,44.405817],[60.239972,44.784037],[58.689989,45.500014],[58.503127,45.586804],[55.928917,44.995858],[55.968191,41.308642],[55.455251,41.259859],[54.755345,42.043971],[54.079418,42.324109],[52.944293,42.116034],[52.50246,41.783316],[52.446339,42.027151],[52.692112,42.443895],[52.501426,42.792298],[51.342427,43.132975],[50.891292,44.031034],[50.339129,44.284016],[50.305643,44.609836],[51.278503,44.514854],[51.316899,45.245998],[52.16739,45.408391],[53.040876,45.259047],[53.220866,46.234646],[53.042737,46.853006],[52.042023,46.804637],[51.191945,47.048705],[50.034083,46.60899],[49.10116,46.39933],[48.593241,46.561034],[48.694734,47.075628],[48.057253,47.743753],[47.315231,47.715847],[46.466446,48.394152],[47.043672,49.152039],[46.751596,49.356006],[47.54948,50.454698],[48.577841,49.87476],[48.702382,50.605128],[50.766648,51.692762],[52.328724,51.718652],[54.532878,51.02624],[55.716941,50.621717],[56.777961,51.043551],[58.363291,51.063653],[59.642282,50.545442],[59.932807,50.842194],[61.337424,50.79907],[61.588003,51.272659],[59.967534,51.96042],[60.927269,52.447548],[60.739993,52.719986],[61.699986,52.979996],[60.978066,53.664993],[61.436591,54.006265],[65.178534,54.354228],[65.666876,54.601267],[68.1691,54.970392],[69.068167,55.38525],[70.865267,55.169734],[71.180131,54.133285],[72.22415,54.376655],[73.508516,54.035617],[73.425679,53.48981],[74.384845,53.546861],[76.8911,54.490524],[76.525179,54.177003],[77.800916,53.404415],[80.03556,50.864751],[80.568447,51.388336],[81.945986,50.812196],[83.383004,51.069183],[83.935115,50.889246],[84.416377,50.3114],[85.11556,50.117303],[85.54127,49.692859],[86.829357,49.826675],[87.35997,49.214981],[86.598776,48.549182],[85.768233,48.455751],[85.720484,47.452969],[85.16429,47.000956],[83.180484,47.330031],[82.458926,45.53965],[81.947071,45.317027],[79.966106,44.917517],[80.866206,43.180362],[80.18015,42.920068],[80.25999,42.349999],[79.643645,42.496683],[79.142177,42.856092],[77.658392,42.960686],[76.000354,42.988022],[75.636965,42.8779],[74.212866,43.298339],[73.645304,43.091272],[73.489758,42.500894],[71.844638,42.845395],[71.186281,42.704293],[70.962315,42.266154]]]},"type":"Feature","id":"KAZ","properties":{"name":"Kazakhstan","id":"KAZ","centroid":[71.3,51.1]}},{"geometry":{"type":"Polygon","coordinates":[[[40.993,-0.85829],[41.58513,-1.68325],[40.88477,-2.08255],[40.63785,-2.49979],[40.26304,-2.57309],[40.12119,-3.27768],[39.80006,-3.68116],[39.60489,-4.34653],[39.20222,-4.67677],[37.7669,-3.67712],[37.69869,-3.09699],[34.07262,-1.05982],[33.903711,-0.95],[33.893569,0.109814],[34.18,0.515],[34.6721,1.17694],[35.03599,1.90584],[34.59607,3.05374],[34.47913,3.5556],[34.005,4.249885],[34.620196,4.847123],[35.298007,5.506],[35.817448,5.338232],[35.817448,4.776966],[36.159079,4.447864],[36.855093,4.447864],[38.120915,3.598605],[38.43697,3.58851],[38.67114,3.61607],[38.89251,3.50074],[39.559384,3.42206],[39.85494,3.83879],[40.76848,4.25702],[41.1718,3.91909],[41.855083,3.918912],[40.98105,2.78452],[40.993,-0.85829]]]},"type":"Feature","id":"KEN","properties":{"name":"Kenya","id":"KEN","centroid":[36.48,-1.17]}},{"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[71.186281,42.704293],[71.844638,42.845395],[73.489758,42.500894],[73.645304,43.091272],[74.212866,43.298339],[75.636965,42.8779],[76.000354,42.988022],[77.658392,42.960686],[79.142177,42.856092],[79.643645,42.496683],[80.25999,42.349999],[80.11943,42.123941],[78.543661,41.582243],[78.187197,41.185316],[76.904484,41.066486],[76.526368,40.427946],[75.467828,40.562072],[74.776862,40.366425],[73.822244,39.893973],[73.960013,39.660008],[73.675379,39.431237],[71.784694,39.279463],[70.549162,39.604198],[69.464887,39.526683],[69.55961,40.103211],[70.648019,39.935754],[71.014198,40.244366],[71.774875,40.145844],[73.055417,40.866033],[71.870115,41.3929],[71.157859,41.143587],[70.420022,41.519998],[71.259248,42.167711],[70.962315,42.266154]]]},"type":"Feature","id":"KGZ","properties":{"name":"Kyrgyzstan","id":"KGZ","centroid":[74.46,42.54]}},{"geometry":{"type":"Polygon","coordinates":[[[103.49728,10.632555],[103.09069,11.153661],[102.584932,12.186595],[102.348099,13.394247],[102.988422,14.225721],[104.281418,14.416743],[105.218777,14.273212],[106.043946,13.881091],[106.496373,14.570584],[107.382727,14.202441],[107.614548,13.535531],[107.491403,12.337206],[105.810524,11.567615],[106.24967,10.961812],[105.199915,10.88931],[104.334335,10.486544],[103.49728,10.632555]]]},"type":"Feature","id":"KHM","properties":{"name":"Cambodia","id":"KHM","centroid":[104.55,11.33]}},{"geometry":{"type":"Polygon","coordinates":[[[128.349716,38.612243],[129.21292,37.432392],[129.46045,36.784189],[129.468304,35.632141],[129.091377,35.082484],[128.18585,34.890377],[127.386519,34.475674],[126.485748,34.390046],[126.37392,34.93456],[126.559231,35.684541],[126.117398,36.725485],[126.860143,36.893924],[126.174759,37.749686],[126.237339,37.840378],[126.68372,37.804773],[127.073309,38.256115],[127.780035,38.304536],[128.205746,38.370397],[128.349716,38.612243]]]},"type":"Feature","id":"KOR","properties":{"name":"South Korea","id":"KOR","centroid":[126.58,37.31]}},{"geometry":{"type":"Polygon","coordinates":[[[47.974519,29.975819],[48.183189,29.534477],[48.093943,29.306299],[48.416094,28.552004],[47.708851,28.526063],[47.459822,29.002519],[46.568713,29.099025],[47.302622,30.05907],[47.974519,29.975819]]]},"type":"Feature","id":"KWT","properties":{"name":"Kuwait","id":"KWT","centroid":[48,29.3]}},{"geometry":{"type":"Polygon","coordinates":[[[105.218777,14.273212],[105.544338,14.723934],[105.589039,15.570316],[104.779321,16.441865],[104.716947,17.428859],[103.956477,18.240954],[103.200192,18.309632],[102.998706,17.961695],[102.413005,17.932782],[102.113592,18.109102],[101.059548,17.512497],[101.035931,18.408928],[101.282015,19.462585],[100.606294,19.508344],[100.548881,20.109238],[100.115988,20.41785],[100.329101,20.786122],[101.180005,21.436573],[101.270026,21.201652],[101.80312,21.174367],[101.652018,22.318199],[102.170436,22.464753],[102.754896,21.675137],[103.203861,20.766562],[104.435,20.758733],[104.822574,19.886642],[104.183388,19.624668],[103.896532,19.265181],[105.094598,18.666975],[105.925762,17.485315],[106.556008,16.604284],[107.312706,15.908538],[107.564525,15.202173],[107.382727,14.202441],[106.496373,14.570584],[106.043946,13.881091],[105.218777,14.273212]]]},"type":"Feature","id":"LAO","properties":{"name":"Laos","id":"LAO","centroid":[102.36,17.58]}},{"geometry":{"type":"Polygon","coordinates":[[[35.821101,33.277426],[35.552797,33.264275],[35.460709,33.08904],[35.126053,33.0909],[35.482207,33.90545],[35.979592,34.610058],[35.998403,34.644914],[36.448194,34.593935],[36.61175,34.201789],[36.06646,33.824912],[35.821101,33.277426]]]},"type":"Feature","id":"LBN","properties":{"name":"Lebanon","id":"LBN","centroid":[35.31,33.53]}},{"geometry":{"type":"Polygon","coordinates":[[[-7.712159,4.364566],[-7.974107,4.355755],[-9.004794,4.832419],[-9.91342,5.593561],[-10.765384,6.140711],[-11.438779,6.785917],[-11.199802,7.105846],[-11.146704,7.396706],[-10.695595,7.939464],[-10.230094,8.406206],[-10.016567,8.428504],[-9.755342,8.541055],[-9.33728,7.928534],[-9.403348,7.526905],[-9.208786,7.313921],[-8.926065,7.309037],[-8.722124,7.711674],[-8.439298,7.686043],[-8.485446,7.395208],[-8.385452,6.911801],[-8.60288,6.467564],[-8.311348,6.193033],[-7.993693,6.12619],[-7.570153,5.707352],[-7.539715,5.313345],[-7.635368,5.188159],[-7.712159,4.364566]]]},"type":"Feature","id":"LBR","properties":{"name":"Liberia","id":"LBR","centroid":[-10.47,6.18]}},{"geometry":{"type":"Polygon","coordinates":[[[14.8513,22.86295],[14.143871,22.491289],[13.581425,23.040506],[11.999506,23.471668],[11.560669,24.097909],[10.771364,24.562532],[10.303847,24.379313],[9.948261,24.936954],[9.910693,25.365455],[9.319411,26.094325],[9.716286,26.512206],[9.629056,27.140953],[9.756128,27.688259],[9.683885,28.144174],[9.859998,28.95999],[9.805634,29.424638],[9.48214,30.307556],[9.970017,30.539325],[10.056575,30.961831],[9.950225,31.37607],[10.636901,31.761421],[10.94479,32.081815],[11.432253,32.368903],[11.488787,33.136996],[12.66331,32.79278],[13.08326,32.87882],[13.91868,32.71196],[15.24563,32.26508],[15.71394,31.37626],[16.61162,31.18218],[18.02109,30.76357],[19.08641,30.26639],[19.57404,30.52582],[20.05335,30.98576],[19.82033,31.75179],[20.13397,32.2382],[20.85452,32.7068],[21.54298,32.8432],[22.89576,32.63858],[23.2368,32.19149],[23.60913,32.18726],[23.9275,32.01667],[24.92114,31.89936],[25.16482,31.56915],[24.80287,31.08929],[24.95762,30.6616],[24.70007,30.04419],[25,29.238655],[25,25.6825],[25,22],[25,20.00304],[23.85,20],[23.83766,19.58047],[19.84926,21.49509],[15.86085,23.40972],[14.8513,22.86295]]]},"type":"Feature","id":"LBY","properties":{"name":"Libya","id":"LBY","centroid":[13.11,32.52]}},{"geometry":{"type":"Polygon","coordinates":[[[81.787959,7.523055],[81.637322,6.481775],[81.21802,6.197141],[80.348357,5.96837],[79.872469,6.763463],[79.695167,8.200843],[80.147801,9.824078],[80.838818,9.268427],[81.304319,8.564206],[81.787959,7.523055]]]},"type":"Feature","id":"LKA","properties":{"name":"Sri Lanka","id":"LKA","centroid":[79.54,6.54]}},{"geometry":{"type":"Polygon","coordinates":[[[28.978263,-28.955597],[29.325166,-29.257387],[29.018415,-29.743766],[28.8484,-30.070051],[28.291069,-30.226217],[28.107205,-30.545732],[27.749397,-30.645106],[26.999262,-29.875954],[27.532511,-29.242711],[28.074338,-28.851469],[28.5417,-28.647502],[28.978263,-28.955597]]]},"type":"Feature","id":"LSO","properties":{"name":"Lesotho","id":"LSO","centroid":[27.3,-29.18]}},{"geometry":{"type":"Polygon","coordinates":[[[22.731099,54.327537],[22.651052,54.582741],[22.757764,54.856574],[22.315724,55.015299],[21.268449,55.190482],[21.0558,56.031076],[22.201157,56.337802],[23.878264,56.273671],[24.860684,56.372528],[25.000934,56.164531],[25.533047,56.100297],[26.494331,55.615107],[26.588279,55.167176],[25.768433,54.846963],[25.536354,54.282423],[24.450684,53.905702],[23.484128,53.912498],[23.243987,54.220567],[22.731099,54.327537]]]},"type":"Feature","id":"LTU","properties":{"name":"Lithuania","id":"LTU","centroid":[25.19,54.38]}},{"geometry":{"type":"Polygon","coordinates":[[[6.043073,50.128052],[6.242751,49.902226],[6.18632,49.463803],[5.897759,49.442667],[5.674052,49.529484],[5.782417,50.090328],[6.043073,50.128052]]]},"type":"Feature","id":"LUX","properties":{"name":"Luxembourg","id":"LUX","centroid":[6.09,49.37]}},{"geometry":{"type":"Polygon","coordinates":[[[21.0558,56.031076],[21.090424,56.783873],[21.581866,57.411871],[22.524341,57.753374],[23.318453,57.006236],[24.12073,57.025693],[24.312863,57.793424],[25.164594,57.970157],[25.60281,57.847529],[26.463532,57.476389],[27.288185,57.474528],[27.770016,57.244258],[27.855282,56.759326],[28.176709,56.16913],[27.10246,55.783314],[26.494331,55.615107],[25.533047,56.100297],[25.000934,56.164531],[24.860684,56.372528],[23.878264,56.273671],[22.201157,56.337802],[21.0558,56.031076]]]},"type":"Feature","id":"LVA","properties":{"name":"Latvia","id":"LVA","centroid":[24.08,56.53]}},{"geometry":{"type":"Polygon","coordinates":[[[-5.193863,35.755182],[-4.591006,35.330712],[-3.640057,35.399855],[-2.604306,35.179093],[-2.169914,35.168396],[-1.792986,34.527919],[-1.733455,33.919713],[-1.388049,32.864015],[-1.124551,32.651522],[-1.307899,32.262889],[-2.616605,32.094346],[-3.06898,31.724498],[-3.647498,31.637294],[-3.690441,30.896952],[-4.859646,30.501188],[-5.242129,30.000443],[-6.060632,29.7317],[-7.059228,29.579228],[-8.674116,28.841289],[-8.66559,27.656426],[-8.817809,27.656426],[-8.817828,27.656426],[-8.794884,27.120696],[-9.413037,27.088476],[-9.735343,26.860945],[-10.189424,26.860945],[-10.551263,26.990808],[-11.392555,26.883424],[-11.71822,26.104092],[-12.030759,26.030866],[-12.500963,24.770116],[-13.89111,23.691009],[-14.221168,22.310163],[-14.630833,21.86094],[-14.750955,21.5006],[-17.002962,21.420734],[-17.020428,21.42231],[-16.973248,21.885745],[-16.589137,22.158234],[-16.261922,22.67934],[-16.326414,23.017768],[-15.982611,23.723358],[-15.426004,24.359134],[-15.089332,24.520261],[-14.824645,25.103533],[-14.800926,25.636265],[-14.43994,26.254418],[-13.773805,26.618892],[-13.139942,27.640148],[-13.121613,27.654148],[-12.618837,28.038186],[-11.688919,28.148644],[-10.900957,28.832142],[-10.399592,29.098586],[-9.564811,29.933574],[-9.814718,31.177736],[-9.434793,32.038096],[-9.300693,32.564679],[-8.657476,33.240245],[-7.654178,33.697065],[-6.912544,34.110476],[-6.244342,35.145865],[-5.929994,35.759988],[-5.193863,35.755182]]]},"type":"Feature","id":"MAR","properties":{"name":"Morocco","id":"MAR","centroid":[-6.5,34.01]}},{"geometry":{"type":"Polygon","coordinates":[[[26.619337,48.220726],[26.857824,48.368211],[27.522537,48.467119],[28.259547,48.155562],[28.670891,48.118149],[29.122698,47.849095],[29.050868,47.510227],[29.415135,47.346645],[29.559674,46.928583],[29.908852,46.674361],[29.83821,46.525326],[30.024659,46.423937],[29.759972,46.349988],[29.170654,46.379262],[29.072107,46.517678],[28.862972,46.437889],[28.933717,46.25883],[28.659987,45.939987],[28.485269,45.596907],[28.233554,45.488283],[28.054443,45.944586],[28.160018,46.371563],[28.12803,46.810476],[27.551166,47.405117],[27.233873,47.826771],[26.924176,48.123264],[26.619337,48.220726]]]},"type":"Feature","id":"MDA","properties":{"name":"Moldova","id":"MDA","centroid":[28.51,47]}},{"geometry":{"type":"Polygon","coordinates":[[[49.543519,-12.469833],[49.808981,-12.895285],[50.056511,-13.555761],[50.217431,-14.758789],[50.476537,-15.226512],[50.377111,-15.706069],[50.200275,-16.000263],[49.860606,-15.414253],[49.672607,-15.710204],[49.863344,-16.451037],[49.774564,-16.875042],[49.498612,-17.106036],[49.435619,-17.953064],[49.041792,-19.118781],[48.548541,-20.496888],[47.930749,-22.391501],[47.547723,-23.781959],[47.095761,-24.94163],[46.282478,-25.178463],[45.409508,-25.601434],[44.833574,-25.346101],[44.03972,-24.988345],[43.763768,-24.460677],[43.697778,-23.574116],[43.345654,-22.776904],[43.254187,-22.057413],[43.433298,-21.336475],[43.893683,-21.163307],[43.89637,-20.830459],[44.374325,-20.072366],[44.464397,-19.435454],[44.232422,-18.961995],[44.042976,-18.331387],[43.963084,-17.409945],[44.312469,-16.850496],[44.446517,-16.216219],[44.944937,-16.179374],[45.502732,-15.974373],[45.872994,-15.793454],[46.312243,-15.780018],[46.882183,-15.210182],[47.70513,-14.594303],[48.005215,-14.091233],[47.869047,-13.663869],[48.293828,-13.784068],[48.84506,-13.089175],[48.863509,-12.487868],[49.194651,-12.040557],[49.543519,-12.469833]]]},"type":"Feature","id":"MDG","properties":{"name":"Madagascar","id":"MDG","centroid":[47.31,-18.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-97.140008,25.869997],[-97.528072,24.992144],[-97.702946,24.272343],[-97.776042,22.93258],[-97.872367,22.444212],[-97.699044,21.898689],[-97.38896,21.411019],[-97.189333,20.635433],[-96.525576,19.890931],[-96.292127,19.320371],[-95.900885,18.828024],[-94.839063,18.562717],[-94.42573,18.144371],[-93.548651,18.423837],[-92.786114,18.524839],[-92.037348,18.704569],[-91.407903,18.876083],[-90.77187,19.28412],[-90.53359,19.867418],[-90.451476,20.707522],[-90.278618,20.999855],[-89.601321,21.261726],[-88.543866,21.493675],[-87.658417,21.458846],[-87.05189,21.543543],[-86.811982,21.331515],[-86.845908,20.849865],[-87.383291,20.255405],[-87.621054,19.646553],[-87.43675,19.472403],[-87.58656,19.04013],[-87.837191,18.259816],[-88.090664,18.516648],[-88.300031,18.499982],[-88.490123,18.486831],[-88.848344,17.883198],[-89.029857,18.001511],[-89.150909,17.955468],[-89.14308,17.808319],[-90.067934,17.819326],[-91.00152,17.817595],[-91.002269,17.254658],[-91.453921,17.252177],[-91.08167,16.918477],[-90.711822,16.687483],[-90.600847,16.470778],[-90.438867,16.41011],[-90.464473,16.069562],[-91.74796,16.066565],[-92.229249,15.251447],[-92.087216,15.064585],[-92.20323,14.830103],[-92.22775,14.538829],[-93.359464,15.61543],[-93.875169,15.940164],[-94.691656,16.200975],[-95.250227,16.128318],[-96.053382,15.752088],[-96.557434,15.653515],[-97.263592,15.917065],[-98.01303,16.107312],[-98.947676,16.566043],[-99.697397,16.706164],[-100.829499,17.171071],[-101.666089,17.649026],[-101.918528,17.91609],[-102.478132,17.975751],[-103.50099,18.292295],[-103.917527,18.748572],[-104.99201,19.316134],[-105.493038,19.946767],[-105.731396,20.434102],[-105.397773,20.531719],[-105.500661,20.816895],[-105.270752,21.076285],[-105.265817,21.422104],[-105.603161,21.871146],[-105.693414,22.26908],[-106.028716,22.773752],[-106.90998,23.767774],[-107.915449,24.548915],[-108.401905,25.172314],[-109.260199,25.580609],[-109.444089,25.824884],[-109.291644,26.442934],[-109.801458,26.676176],[-110.391732,27.162115],[-110.641019,27.859876],[-111.178919,27.941241],[-111.759607,28.467953],[-112.228235,28.954409],[-112.271824,29.266844],[-112.809594,30.021114],[-113.163811,30.786881],[-113.148669,31.170966],[-113.871881,31.567608],[-114.205737,31.524045],[-114.776451,31.799532],[-114.9367,31.393485],[-114.771232,30.913617],[-114.673899,30.162681],[-114.330974,29.750432],[-113.588875,29.061611],[-113.424053,28.826174],[-113.271969,28.754783],[-113.140039,28.411289],[-112.962298,28.42519],[-112.761587,27.780217],[-112.457911,27.525814],[-112.244952,27.171727],[-111.616489,26.662817],[-111.284675,25.73259],[-110.987819,25.294606],[-110.710007,24.826004],[-110.655049,24.298595],[-110.172856,24.265548],[-109.771847,23.811183],[-109.409104,23.364672],[-109.433392,23.185588],[-109.854219,22.818272],[-110.031392,22.823078],[-110.295071,23.430973],[-110.949501,24.000964],[-111.670568,24.484423],[-112.182036,24.738413],[-112.148989,25.470125],[-112.300711,26.012004],[-112.777297,26.32196],[-113.464671,26.768186],[-113.59673,26.63946],[-113.848937,26.900064],[-114.465747,27.14209],[-115.055142,27.722727],[-114.982253,27.7982],[-114.570366,27.741485],[-114.199329,28.115003],[-114.162018,28.566112],[-114.931842,29.279479],[-115.518654,29.556362],[-115.887365,30.180794],[-116.25835,30.836464],[-116.721526,31.635744],[-117.12776,32.53534],[-115.99135,32.61239],[-114.72139,32.72083],[-114.815,32.52528],[-113.30498,32.03914],[-111.02361,31.33472],[-109.035,31.34194],[-108.24194,31.34222],[-108.24,31.754854],[-106.50759,31.75452],[-106.1429,31.39995],[-105.63159,31.08383],[-105.03737,30.64402],[-104.70575,30.12173],[-104.45697,29.57196],[-103.94,29.27],[-103.11,28.97],[-102.48,29.76],[-101.6624,29.7793],[-100.9576,29.38071],[-100.45584,28.69612],[-100.11,28.11],[-99.52,27.54],[-99.3,26.84],[-99.02,26.37],[-98.24,26.06],[-97.53,25.84],[-97.140008,25.869997]]]},"type":"Feature","id":"MEX","properties":{"name":"Mexico","id":"MEX","centroid":[-99.1,19.2]}},{"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731,41.84711],[20.76216,42.05186],[21.3527,42.2068],[21.576636,42.245224],[21.91708,42.30364],[22.380526,42.32026],[22.881374,41.999297],[22.952377,41.337994],[22.76177,41.3048],[22.597308,41.130487],[22.055378,41.149866],[21.674161,40.931275],[21.02004,40.842727],[20.60518,41.08622],[20.46315,41.51509],[20.59023,41.85541]]]},"type":"Feature","id":"MKD","properties":{"name":"Macedonia","id":"MKD","centroid":null}},{"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-11.834208,14.799097],[-11.666078,15.388208],[-11.349095,15.411256],[-10.650791,15.132746],[-10.086846,15.330486],[-9.700255,15.264107],[-9.550238,15.486497],[-5.537744,15.50169],[-5.315277,16.201854],[-5.488523,16.325102],[-5.971129,20.640833],[-6.453787,24.956591],[-4.923337,24.974574],[-1.550055,22.792666],[1.823228,20.610809],[2.060991,20.142233],[2.683588,19.85623],[3.146661,19.693579],[3.158133,19.057364],[4.267419,19.155265],[4.27021,16.852227],[3.723422,16.184284],[3.638259,15.56812],[2.749993,15.409525],[1.385528,15.323561],[1.015783,14.968182],[0.374892,14.928908],[-0.266257,14.924309],[-0.515854,15.116158],[-1.066363,14.973815],[-2.001035,14.559008],[-2.191825,14.246418],[-2.967694,13.79815],[-3.103707,13.541267],[-3.522803,13.337662],[-4.006391,13.472485],[-4.280405,13.228444],[-4.427166,12.542646],[-5.220942,11.713859],[-5.197843,11.375146],[-5.470565,10.95127],[-5.404342,10.370737],[-5.816926,10.222555],[-6.050452,10.096361],[-6.205223,10.524061],[-6.493965,10.411303],[-6.666461,10.430811],[-6.850507,10.138994],[-7.622759,10.147236],[-7.89959,10.297382],[-8.029944,10.206535],[-8.335377,10.494812],[-8.282357,10.792597],[-8.407311,10.909257],[-8.620321,10.810891],[-8.581305,11.136246],[-8.376305,11.393646],[-8.786099,11.812561],[-8.905265,12.088358],[-9.127474,12.30806],[-9.327616,12.334286],[-9.567912,12.194243],[-9.890993,12.060479],[-10.165214,11.844084],[-10.593224,11.923975],[-10.87083,12.177887],[-11.036556,12.211245],[-11.297574,12.077971],[-11.456169,12.076834],[-11.513943,12.442988],[-11.467899,12.754519],[-11.553398,13.141214],[-11.927716,13.422075],[-12.124887,13.994727],[-12.17075,14.616834]]]},"type":"Feature","id":"MLI","properties":{"name":"Mali","id":"MLI","centroid":[-7.55,12.34]}},{"geometry":{"type":"Polygon","coordinates":[[[99.543309,20.186598],[98.959676,19.752981],[98.253724,19.708203],[97.797783,18.62708],[97.375896,18.445438],[97.859123,17.567946],[98.493761,16.837836],[98.903348,16.177824],[98.537376,15.308497],[98.192074,15.123703],[98.430819,14.622028],[99.097755,13.827503],[99.212012,13.269294],[99.196354,12.804748],[99.587286,11.892763],[99.038121,10.960546],[98.553551,9.93296],[98.457174,10.675266],[98.764546,11.441292],[98.428339,12.032987],[98.509574,13.122378],[98.103604,13.64046],[97.777732,14.837286],[97.597072,16.100568],[97.16454,16.928734],[96.505769,16.427241],[95.369352,15.71439],[94.808405,15.803454],[94.188804,16.037936],[94.533486,17.27724],[94.324817,18.213514],[93.540988,19.366493],[93.663255,19.726962],[93.078278,19.855145],[92.368554,20.670883],[92.303234,21.475485],[92.652257,21.324048],[92.672721,22.041239],[93.166128,22.27846],[93.060294,22.703111],[93.286327,23.043658],[93.325188,24.078556],[94.106742,23.850741],[94.552658,24.675238],[94.603249,25.162495],[95.155153,26.001307],[95.124768,26.573572],[96.419366,27.264589],[97.133999,27.083774],[97.051989,27.699059],[97.402561,27.882536],[97.327114,28.261583],[97.911988,28.335945],[98.246231,27.747221],[98.68269,27.508812],[98.712094,26.743536],[98.671838,25.918703],[97.724609,25.083637],[97.60472,23.897405],[98.660262,24.063286],[98.898749,23.142722],[99.531992,22.949039],[99.240899,22.118314],[99.983489,21.742937],[100.416538,21.558839],[101.150033,21.849984],[101.180005,21.436573],[100.329101,20.786122],[100.115988,20.41785],[99.543309,20.186598]]]},"type":"Feature","id":"MMR","properties":{"name":"Myanmar","id":"MMR","centroid":[96.2,16.45]}},{"geometry":{"type":"Polygon","coordinates":[[[19.801613,42.500093],[19.738051,42.688247],[19.30449,42.19574],[19.37177,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.21378],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275],[20.0707,42.58863],[19.801613,42.500093]]]},"type":"Feature","id":"MNE","properties":{"name":"Montenegro","id":"MNE","centroid":[19.28,42.47]}},{"geometry":{"type":"Polygon","coordinates":[[[87.751264,49.297198],[88.805567,49.470521],[90.713667,50.331812],[92.234712,50.802171],[93.104219,50.49529],[94.147566,50.480537],[94.815949,50.013433],[95.814028,49.977467],[97.259728,49.726061],[98.231762,50.422401],[97.82574,51.010995],[98.861491,52.047366],[99.981732,51.634006],[100.88948,51.516856],[102.065223,51.259921],[102.255909,50.510561],[103.676545,50.089966],[104.621552,50.275329],[105.886591,50.406019],[106.888804,50.274296],[107.868176,49.793705],[108.475167,49.282548],[109.402449,49.292961],[110.662011,49.130128],[111.581231,49.377968],[112.89774,49.543565],[114.362456,50.248303],[114.96211,50.140247],[115.485695,49.805177],[116.678801,49.888531],[116.191802,49.134598],[115.485282,48.135383],[115.742837,47.726545],[116.308953,47.85341],[117.295507,47.697709],[118.064143,48.06673],[118.866574,47.74706],[119.772824,47.048059],[119.66327,46.69268],[118.874326,46.805412],[117.421701,46.672733],[116.717868,46.388202],[115.985096,45.727235],[114.460332,45.339817],[113.463907,44.808893],[112.436062,45.011646],[111.873306,45.102079],[111.348377,44.457442],[111.667737,44.073176],[111.829588,43.743118],[111.129682,43.406834],[110.412103,42.871234],[109.243596,42.519446],[107.744773,42.481516],[106.129316,42.134328],[104.964994,41.59741],[104.522282,41.908347],[103.312278,41.907468],[101.83304,42.514873],[100.845866,42.663804],[99.515817,42.524691],[97.451757,42.74889],[96.349396,42.725635],[95.762455,43.319449],[95.306875,44.241331],[94.688929,44.352332],[93.480734,44.975472],[92.133891,45.115076],[90.94554,45.286073],[90.585768,45.719716],[90.970809,46.888146],[90.280826,47.693549],[88.854298,48.069082],[88.013832,48.599463],[87.751264,49.297198]]]},"type":"Feature","id":"MNG","properties":{"name":"Mongolia","id":"MNG","centroid":[106.55,47.55]}},{"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[35.312398,-11.439146],[36.514082,-11.720938],[36.775151,-11.594537],[37.471284,-11.568751],[37.827645,-11.268769],[38.427557,-11.285202],[39.52103,-10.896854],[40.316589,-10.317096],[40.478387,-10.765441],[40.437253,-11.761711],[40.560811,-12.639177],[40.59962,-14.201975],[40.775475,-14.691764],[40.477251,-15.406294],[40.089264,-16.100774],[39.452559,-16.720891],[38.538351,-17.101023],[37.411133,-17.586368],[36.281279,-18.659688],[35.896497,-18.84226],[35.1984,-19.552811],[34.786383,-19.784012],[34.701893,-20.497043],[35.176127,-21.254361],[35.373428,-21.840837],[35.385848,-22.14],[35.562546,-22.09],[35.533935,-23.070788],[35.371774,-23.535359],[35.60747,-23.706563],[35.458746,-24.12261],[35.040735,-24.478351],[34.215824,-24.816314],[33.01321,-25.357573],[32.574632,-25.727318],[32.660363,-26.148584],[32.915955,-26.215867],[32.83012,-26.742192],[32.071665,-26.73382],[31.985779,-26.29178],[31.837778,-25.843332],[31.752408,-25.484284],[31.930589,-24.369417],[31.670398,-23.658969],[31.191409,-22.25151],[32.244988,-21.116489],[32.508693,-20.395292],[32.659743,-20.30429],[32.772708,-19.715592],[32.611994,-19.419383],[32.654886,-18.67209],[32.849861,-17.979057],[32.847639,-16.713398],[32.328239,-16.392074],[31.852041,-16.319417],[31.636498,-16.07199],[31.173064,-15.860944],[30.338955,-15.880839],[30.274256,-15.507787],[30.179481,-14.796099],[33.214025,-13.97186],[33.7897,-14.451831],[34.064825,-14.35995],[34.459633,-14.61301],[34.517666,-15.013709],[34.307291,-15.478641],[34.381292,-16.18356],[35.03381,-16.8013],[35.339063,-16.10744],[35.771905,-15.896859],[35.686845,-14.611046],[35.267956,-13.887834],[34.907151,-13.565425],[34.559989,-13.579998],[34.280006,-12.280025],[34.559989,-11.52002]]]},"type":"Feature","id":"MOZ","properties":{"name":"Mozambique","id":"MOZ","centroid":[32.32,-25.58]}},{"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-12.830658,15.303692],[-13.435738,16.039383],[-14.099521,16.304302],[-14.577348,16.598264],[-15.135737,16.587282],[-15.623666,16.369337],[-16.12069,16.455663],[-16.463098,16.135036],[-16.549708,16.673892],[-16.270552,17.166963],[-16.146347,18.108482],[-16.256883,19.096716],[-16.377651,19.593817],[-16.277838,20.092521],[-16.536324,20.567866],[-17.063423,20.999752],[-16.845194,21.333323],[-12.929102,21.327071],[-13.118754,22.77122],[-12.874222,23.284832],[-11.937224,23.374594],[-11.969419,25.933353],[-8.687294,25.881056],[-8.6844,27.395744],[-4.923337,24.974574],[-6.453787,24.956591],[-5.971129,20.640833],[-5.488523,16.325102],[-5.315277,16.201854],[-5.537744,15.50169],[-9.550238,15.486497],[-9.700255,15.264107],[-10.086846,15.330486],[-10.650791,15.132746],[-11.349095,15.411256],[-11.666078,15.388208],[-11.834208,14.799097],[-12.17075,14.616834]]]},"type":"Feature","id":"MRT","properties":{"name":"Mauritania","id":"MRT","centroid":[-15.58,18.04]}},{"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[34.280006,-12.280025],[34.559989,-13.579998],[34.907151,-13.565425],[35.267956,-13.887834],[35.686845,-14.611046],[35.771905,-15.896859],[35.339063,-16.10744],[35.03381,-16.8013],[34.381292,-16.18356],[34.307291,-15.478641],[34.517666,-15.013709],[34.459633,-14.61301],[34.064825,-14.35995],[33.7897,-14.451831],[33.214025,-13.97186],[32.688165,-13.712858],[32.991764,-12.783871],[33.306422,-12.435778],[33.114289,-11.607198],[33.31531,-10.79655],[33.485688,-10.525559],[33.231388,-9.676722],[32.759375,-9.230599],[33.739729,-9.417151],[33.940838,-9.693674],[34.280006,-10.16],[34.559989,-11.52002]]]},"type":"Feature","id":"MWI","properties":{"name":"Malawi","id":"MWI","centroid":[33.48,-14]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"type":"Feature","id":"MYS","properties":{"name":"Malaysia","id":"MYS","centroid":[101.41,3.09]}},{"geometry":{"type":"Polygon","coordinates":[[[16.344977,-28.576705],[15.601818,-27.821247],[15.210472,-27.090956],[14.989711,-26.117372],[14.743214,-25.39292],[14.408144,-23.853014],[14.385717,-22.656653],[14.257714,-22.111208],[13.868642,-21.699037],[13.352498,-20.872834],[12.826845,-19.673166],[12.608564,-19.045349],[11.794919,-18.069129],[11.734199,-17.301889],[12.215461,-17.111668],[12.814081,-16.941343],[13.462362,-16.971212],[14.058501,-17.423381],[14.209707,-17.353101],[18.263309,-17.309951],[18.956187,-17.789095],[21.377176,-17.930636],[23.215048,-17.523116],[24.033862,-17.295843],[24.682349,-17.353411],[25.07695,-17.578823],[25.084443,-17.661816],[24.520705,-17.887125],[24.217365,-17.889347],[23.579006,-18.281261],[23.196858,-17.869038],[21.65504,-18.219146],[20.910641,-18.252219],[20.881134,-21.814327],[19.895458,-21.849157],[19.895768,-24.76779],[19.894734,-28.461105],[19.002127,-28.972443],[18.464899,-29.045462],[17.836152,-28.856378],[17.387497,-28.783514],[17.218929,-28.355943],[16.824017,-28.082162],[16.344977,-28.576705]]]},"type":"Feature","id":"NAM","properties":{"name":"Namibia","id":"NAM","centroid":[17.04,-22.35]}},{"geometry":{"type":"Polygon","coordinates":[[[165.77999,-21.080005],[166.599991,-21.700019],[167.120011,-22.159991],[166.740035,-22.399976],[166.189732,-22.129708],[165.474375,-21.679607],[164.829815,-21.14982],[164.167995,-20.444747],[164.029606,-20.105646],[164.459967,-20.120012],[165.020036,-20.459991],[165.460009,-20.800022],[165.77999,-21.080005]]]},"type":"Feature","id":"NCL","properties":{"name":"New Caledonia","id":"NCL","centroid":[166.3,-22.17]}},{"geometry":{"type":"Polygon","coordinates":[[[2.154474,11.94015],[2.177108,12.625018],[1.024103,12.851826],[0.993046,13.33575],[0.429928,13.988733],[0.295646,14.444235],[0.374892,14.928908],[1.015783,14.968182],[1.385528,15.323561],[2.749993,15.409525],[3.638259,15.56812],[3.723422,16.184284],[4.27021,16.852227],[4.267419,19.155265],[5.677566,19.601207],[8.572893,21.565661],[11.999506,23.471668],[13.581425,23.040506],[14.143871,22.491289],[14.8513,22.86295],[15.096888,21.308519],[15.471077,21.048457],[15.487148,20.730415],[15.903247,20.387619],[15.685741,19.95718],[15.300441,17.92795],[15.247731,16.627306],[13.972202,15.684366],[13.540394,14.367134],[13.956699,13.996691],[13.954477,13.353449],[14.595781,13.330427],[14.495787,12.859396],[14.213531,12.802035],[14.181336,12.483657],[13.995353,12.461565],[13.318702,13.556356],[13.083987,13.596147],[12.302071,13.037189],[11.527803,13.32898],[10.989593,13.387323],[10.701032,13.246918],[10.114814,13.277252],[9.524928,12.851102],[9.014933,12.826659],[7.804671,13.343527],[7.330747,13.098038],[6.820442,13.115091],[6.445426,13.492768],[5.443058,13.865924],[4.368344,13.747482],[4.107946,13.531216],[3.967283,12.956109],[3.680634,12.552903],[3.61118,11.660167],[2.848643,12.235636],[2.490164,12.233052],[2.154474,11.94015]]]},"type":"Feature","id":"NER","properties":{"name":"Niger","id":"NER","centroid":[2.06,13.27]}},{"geometry":{"type":"Polygon","coordinates":[[[8.500288,4.771983],[7.462108,4.412108],[7.082596,4.464689],[6.698072,4.240594],[5.898173,4.262453],[5.362805,4.887971],[5.033574,5.611802],[4.325607,6.270651],[3.57418,6.2583],[2.691702,6.258817],[2.749063,7.870734],[2.723793,8.506845],[2.912308,9.137608],[3.220352,9.444153],[3.705438,10.06321],[3.60007,10.332186],[3.797112,10.734746],[3.572216,11.327939],[3.61118,11.660167],[3.680634,12.552903],[3.967283,12.956109],[4.107946,13.531216],[4.368344,13.747482],[5.443058,13.865924],[6.445426,13.492768],[6.820442,13.115091],[7.330747,13.098038],[7.804671,13.343527],[9.014933,12.826659],[9.524928,12.851102],[10.114814,13.277252],[10.701032,13.246918],[10.989593,13.387323],[11.527803,13.32898],[12.302071,13.037189],[13.083987,13.596147],[13.318702,13.556356],[13.995353,12.461565],[14.181336,12.483657],[14.577178,12.085361],[14.468192,11.904752],[14.415379,11.572369],[13.57295,10.798566],[13.308676,10.160362],[13.1676,9.640626],[12.955468,9.417772],[12.753672,8.717763],[12.218872,8.305824],[12.063946,7.799808],[11.839309,7.397042],[11.745774,6.981383],[11.058788,6.644427],[10.497375,7.055358],[10.118277,7.03877],[9.522706,6.453482],[9.233163,6.444491],[8.757533,5.479666],[8.500288,4.771983]]]},"type":"Feature","id":"NGA","properties":{"name":"Nigeria","id":"NGA","centroid":[7.32,9.05]}},{"geometry":{"type":"Polygon","coordinates":[[[-85.71254,11.088445],[-86.058488,11.403439],[-86.52585,11.806877],[-86.745992,12.143962],[-87.167516,12.458258],[-87.668493,12.90991],[-87.557467,13.064552],[-87.392386,12.914018],[-87.316654,12.984686],[-87.005769,13.025794],[-86.880557,13.254204],[-86.733822,13.263093],[-86.755087,13.754845],[-86.520708,13.778487],[-86.312142,13.771356],[-86.096264,14.038187],[-85.801295,13.836055],[-85.698665,13.960078],[-85.514413,14.079012],[-85.165365,14.35437],[-85.148751,14.560197],[-85.052787,14.551541],[-84.924501,14.790493],[-84.820037,14.819587],[-84.649582,14.666805],[-84.449336,14.621614],[-84.228342,14.748764],[-83.975721,14.749436],[-83.628585,14.880074],[-83.489989,15.016267],[-83.147219,14.995829],[-83.233234,14.899866],[-83.284162,14.676624],[-83.182126,14.310703],[-83.4125,13.970078],[-83.519832,13.567699],[-83.552207,13.127054],[-83.498515,12.869292],[-83.473323,12.419087],[-83.626104,12.32085],[-83.719613,11.893124],[-83.650858,11.629032],[-83.85547,11.373311],[-83.808936,11.103044],[-83.655612,10.938764],[-83.895054,10.726839],[-84.190179,10.79345],[-84.355931,10.999226],[-84.673069,11.082657],[-84.903003,10.952303],[-85.561852,11.217119],[-85.71254,11.088445]]]},"type":"Feature","id":"NIC","properties":{"name":"Nicaragua","id":"NIC","centroid":[-86.2,12.06]}},{"geometry":{"type":"Polygon","coordinates":[[[6.074183,53.510403],[6.90514,53.482162],[7.092053,53.144043],[6.84287,52.22844],[6.589397,51.852029],[5.988658,51.851616],[6.156658,50.803721],[5.606976,51.037298],[4.973991,51.475024],[4.047071,51.267259],[3.314971,51.345755],[3.830289,51.620545],[4.705997,53.091798],[6.074183,53.510403]]]},"type":"Feature","id":"NLD","properties":{"name":"Netherlands","id":"NLD","centroid":[4.54,52.23]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547,71.185474],[31.293418,70.453788],[30.005435,70.186259],[31.101079,69.55808],[29.399581,69.156916],[28.59193,69.064777],[29.015573,69.766491],[27.732292,70.164193],[26.179622,69.825299],[25.689213,69.092114],[24.735679,68.649557],[23.66205,68.891247],[22.356238,68.841741],[21.244936,69.370443],[20.645593,69.106247],[20.025269,69.065139],[19.87856,68.407194],[17.993868,68.567391],[17.729182,68.010552],[16.768879,68.013937],[16.108712,67.302456],[15.108411,66.193867],[13.55569,64.787028],[13.919905,64.445421],[13.571916,64.049114],[12.579935,64.066219],[11.930569,63.128318],[11.992064,61.800362],[12.631147,61.293572],[12.300366,60.117933],[11.468272,59.432393],[11.027369,58.856149],[10.356557,59.469807],[8.382,58.313288],[7.048748,58.078884],[5.665835,58.588155],[5.308234,59.663232],[4.992078,61.970998],[5.9129,62.614473],[8.553411,63.454008],[10.527709,64.486038],[12.358347,65.879726],[14.761146,67.810642],[16.435927,68.563205],[19.184028,69.817444],[21.378416,70.255169],[23.023742,70.202072],[24.546543,71.030497],[26.37005,70.986262],[28.165547,71.185474]]],[[[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.447625,80.40734],[27.407506,80.056406],[25.924651,79.517834],[23.024466,79.400012],[20.075188,79.566823],[19.897266,79.842362],[18.462264,79.85988],[17.368015,80.318896],[20.455992,80.598156],[21.907945,80.357679],[22.919253,80.657144],[25.447625,80.40734]]]]},"type":"Feature","id":"NOR","properties":{"name":"Norway","id":"NOR","centroid":[10.45,59.55]}},{"geometry":{"type":"Polygon","coordinates":[[[88.120441,27.876542],[88.043133,27.445819],[88.174804,26.810405],[88.060238,26.414615],[87.227472,26.397898],[86.024393,26.630985],[85.251779,26.726198],[84.675018,27.234901],[83.304249,27.364506],[81.999987,27.925479],[81.057203,28.416095],[80.088425,28.79447],[80.476721,29.729865],[81.111256,30.183481],[81.525804,30.422717],[82.327513,30.115268],[83.337115,29.463732],[83.898993,29.320226],[84.23458,28.839894],[85.011638,28.642774],[85.82332,28.203576],[86.954517,27.974262],[88.120441,27.876542]]]},"type":"Feature","id":"NPL","properties":{"name":"Nepal","id":"NPL","centroid":[85.2,27.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[173.020375,-40.919052],[173.247234,-41.331999],[173.958405,-40.926701],[174.247587,-41.349155],[174.248517,-41.770008],[173.876447,-42.233184],[173.22274,-42.970038],[172.711246,-43.372288],[173.080113,-43.853344],[172.308584,-43.865694],[171.452925,-44.242519],[171.185138,-44.897104],[170.616697,-45.908929],[169.831422,-46.355775],[169.332331,-46.641235],[168.411354,-46.619945],[167.763745,-46.290197],[166.676886,-46.219917],[166.509144,-45.852705],[167.046424,-45.110941],[168.303763,-44.123973],[168.949409,-43.935819],[169.667815,-43.555326],[170.52492,-43.031688],[171.12509,-42.512754],[171.569714,-41.767424],[171.948709,-41.514417],[172.097227,-40.956104],[172.79858,-40.493962],[173.020375,-40.919052]]],[[[174.612009,-36.156397],[175.336616,-37.209098],[175.357596,-36.526194],[175.808887,-36.798942],[175.95849,-37.555382],[176.763195,-37.881253],[177.438813,-37.961248],[178.010354,-37.579825],[178.517094,-37.695373],[178.274731,-38.582813],[177.97046,-39.166343],[177.206993,-39.145776],[176.939981,-39.449736],[177.032946,-39.879943],[176.885824,-40.065978],[176.508017,-40.604808],[176.01244,-41.289624],[175.239567,-41.688308],[175.067898,-41.425895],[174.650973,-41.281821],[175.22763,-40.459236],[174.900157,-39.908933],[173.824047,-39.508854],[173.852262,-39.146602],[174.574802,-38.797683],[174.743474,-38.027808],[174.697017,-37.381129],[174.292028,-36.711092],[174.319004,-36.534824],[173.840997,-36.121981],[173.054171,-35.237125],[172.636005,-34.529107],[173.007042,-34.450662],[173.551298,-35.006183],[174.32939,-35.265496],[174.612009,-36.156397]]]]},"type":"Feature","id":"NZL","properties":{"name":"New Zealand","id":"NZL","centroid":[174.46,-41.19]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.861141,21.114035],[58.487986,20.428986],[58.034318,20.481437],[57.826373,20.243002],[57.665762,19.736005],[57.7887,19.06757],[57.694391,18.94471],[57.234264,18.947991],[56.609651,18.574267],[56.512189,18.087113],[56.283521,17.876067],[55.661492,17.884128],[55.269939,17.632309],[55.2749,17.228354],[54.791002,16.950697],[54.239253,17.044981],[53.570508,16.707663],[53.108573,16.651051],[52.782184,17.349742],[52.00001,19.000003],[54.999982,19.999994],[55.666659,22.000001],[55.208341,22.70833],[55.234489,23.110993],[55.525841,23.524869],[55.528632,23.933604],[55.981214,24.130543],[55.804119,24.269604],[55.886233,24.920831],[56.396847,24.924732],[56.84514,24.241673],[57.403453,23.878594],[58.136948,23.747931],[58.729211,23.565668],[59.180502,22.992395],[59.450098,22.660271],[59.80806,22.533612],[59.806148,22.310525],[59.442191,21.714541],[59.282408,21.433886],[58.861141,21.114035]]],[[[56.391421,25.895991],[56.261042,25.714606],[56.070821,26.055464],[56.362017,26.395934],[56.485679,26.309118],[56.391421,25.895991]]]]},"type":"Feature","id":"OMN","properties":{"name":"Oman","id":"OMN","centroid":[58.36,23.37]}},{"geometry":{"type":"Polygon","coordinates":[[[75.158028,37.133031],[75.896897,36.666806],[76.192848,35.898403],[77.837451,35.49401],[76.871722,34.653544],[75.757061,34.504923],[74.240203,34.748887],[73.749948,34.317699],[74.104294,33.441473],[74.451559,32.7649],[75.258642,32.271105],[74.405929,31.692639],[74.42138,30.979815],[73.450638,29.976413],[72.823752,28.961592],[71.777666,27.91318],[70.616496,27.989196],[69.514393,26.940966],[70.168927,26.491872],[70.282873,25.722229],[70.844699,25.215102],[71.04324,24.356524],[68.842599,24.359134],[68.176645,23.691965],[67.443667,23.944844],[67.145442,24.663611],[66.372828,25.425141],[64.530408,25.237039],[62.905701,25.218409],[61.497363,25.078237],[61.874187,26.239975],[63.316632,26.756532],[63.233898,27.217047],[62.755426,27.378923],[62.72783,28.259645],[61.771868,28.699334],[61.369309,29.303276],[60.874248,29.829239],[62.549857,29.318572],[63.550261,29.468331],[64.148002,29.340819],[64.350419,29.560031],[65.046862,29.472181],[66.346473,29.887943],[66.381458,30.738899],[66.938891,31.304911],[67.683394,31.303154],[67.792689,31.58293],[68.556932,31.71331],[68.926677,31.620189],[69.317764,31.901412],[69.262522,32.501944],[69.687147,33.105499],[70.323594,33.358533],[69.930543,34.02012],[70.881803,33.988856],[71.156773,34.348911],[71.115019,34.733126],[71.613076,35.153203],[71.498768,35.650563],[71.262348,36.074388],[71.846292,36.509942],[72.920025,36.720007],[74.067552,36.836176],[74.575893,37.020841],[75.158028,37.133031]]]},"type":"Feature","id":"PAK","properties":{"name":"Pakistan","id":"PAK","centroid":[73.1,33.4]}},{"geometry":{"type":"Polygon","coordinates":[[[-77.881571,7.223771],[-78.214936,7.512255],[-78.429161,8.052041],[-78.182096,8.319182],[-78.435465,8.387705],[-78.622121,8.718124],[-79.120307,8.996092],[-79.557877,8.932375],[-79.760578,8.584515],[-80.164481,8.333316],[-80.382659,8.298409],[-80.480689,8.090308],[-80.00369,7.547524],[-80.276671,7.419754],[-80.421158,7.271572],[-80.886401,7.220541],[-81.059543,7.817921],[-81.189716,7.647906],[-81.519515,7.70661],[-81.721311,8.108963],[-82.131441,8.175393],[-82.390934,8.292362],[-82.820081,8.290864],[-82.850958,8.073823],[-82.965783,8.225028],[-82.913176,8.423517],[-82.829771,8.626295],[-82.868657,8.807266],[-82.719183,8.925709],[-82.927155,9.07433],[-82.932891,9.476812],[-82.546196,9.566135],[-82.187123,9.207449],[-82.207586,8.995575],[-81.808567,8.950617],[-81.714154,9.031955],[-81.439287,8.786234],[-80.947302,8.858504],[-80.521901,9.111072],[-79.9146,9.312765],[-79.573303,9.61161],[-79.021192,9.552931],[-79.05845,9.454565],[-78.500888,9.420459],[-78.055928,9.24773],[-77.729514,8.946844],[-77.353361,8.670505],[-77.474723,8.524286],[-77.242566,7.935278],[-77.431108,7.638061],[-77.753414,7.70984],[-77.881571,7.223771]]]},"type":"Feature","id":"PAN","properties":{"name":"Panama","id":"PAN","centroid":[-79.25,9]}},{"geometry":{"type":"Polygon","coordinates":[[[-69.590424,-17.580012],[-69.858444,-18.092694],[-70.372572,-18.347975],[-71.37525,-17.773799],[-71.462041,-17.363488],[-73.44453,-16.359363],[-75.237883,-15.265683],[-76.009205,-14.649286],[-76.423469,-13.823187],[-76.259242,-13.535039],[-77.106192,-12.222716],[-78.092153,-10.377712],[-79.036953,-8.386568],[-79.44592,-7.930833],[-79.760578,-7.194341],[-80.537482,-6.541668],[-81.249996,-6.136834],[-80.926347,-5.690557],[-81.410943,-4.736765],[-81.09967,-4.036394],[-80.302561,-3.404856],[-80.184015,-3.821162],[-80.469295,-4.059287],[-80.442242,-4.425724],[-80.028908,-4.346091],[-79.624979,-4.454198],[-79.205289,-4.959129],[-78.639897,-4.547784],[-78.450684,-3.873097],[-77.837905,-3.003021],[-76.635394,-2.608678],[-75.544996,-1.56161],[-75.233723,-0.911417],[-75.373223,-0.152032],[-75.106625,-0.057205],[-74.441601,-0.53082],[-74.122395,-1.002833],[-73.659504,-1.260491],[-73.070392,-2.308954],[-72.325787,-2.434218],[-71.774761,-2.16979],[-71.413646,-2.342802],[-70.813476,-2.256865],[-70.047709,-2.725156],[-70.692682,-3.742872],[-70.394044,-3.766591],[-69.893635,-4.298187],[-70.794769,-4.251265],[-70.928843,-4.401591],[-71.748406,-4.593983],[-72.891928,-5.274561],[-72.964507,-5.741251],[-73.219711,-6.089189],[-73.120027,-6.629931],[-73.724487,-6.918595],[-73.723401,-7.340999],[-73.987235,-7.52383],[-73.571059,-8.424447],[-73.015383,-9.032833],[-73.226713,-9.462213],[-72.563033,-9.520194],[-72.184891,-10.053598],[-71.302412,-10.079436],[-70.481894,-9.490118],[-70.548686,-11.009147],[-70.093752,-11.123972],[-69.529678,-10.951734],[-68.66508,-12.5613],[-68.88008,-12.899729],[-68.929224,-13.602684],[-68.948887,-14.453639],[-69.339535,-14.953195],[-69.160347,-15.323974],[-69.389764,-15.660129],[-68.959635,-16.500698],[-69.590424,-17.580012]]]},"type":"Feature","id":"PER","properties":{"name":"Peru","id":"PER","centroid":[-77,-12]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.376814,8.414706],[126.478513,7.750354],[126.537424,7.189381],[126.196773,6.274294],[125.831421,7.293715],[125.363852,6.786485],[125.683161,6.049657],[125.396512,5.581003],[124.219788,6.161355],[123.93872,6.885136],[124.243662,7.36061],[123.610212,7.833527],[123.296071,7.418876],[122.825506,7.457375],[122.085499,6.899424],[121.919928,7.192119],[122.312359,8.034962],[122.942398,8.316237],[123.487688,8.69301],[123.841154,8.240324],[124.60147,8.514158],[124.764612,8.960409],[125.471391,8.986997],[125.412118,9.760335],[126.222714,9.286074],[126.306637,8.782487],[126.376814,8.414706]]],[[[123.982438,10.278779],[123.623183,9.950091],[123.309921,9.318269],[122.995883,9.022189],[122.380055,9.713361],[122.586089,9.981045],[122.837081,10.261157],[122.947411,10.881868],[123.49885,10.940624],[123.337774,10.267384],[124.077936,11.232726],[123.982438,10.278779]]],[[[118.504581,9.316383],[117.174275,8.3675],[117.664477,9.066889],[118.386914,9.6845],[118.987342,10.376292],[119.511496,11.369668],[119.689677,10.554291],[119.029458,10.003653],[118.504581,9.316383]]],[[[121.883548,11.891755],[122.483821,11.582187],[123.120217,11.58366],[123.100838,11.165934],[122.637714,10.741308],[122.00261,10.441017],[121.967367,10.905691],[122.03837,11.415841],[121.883548,11.891755]]],[[[125.502552,12.162695],[125.783465,11.046122],[125.011884,11.311455],[125.032761,10.975816],[125.277449,10.358722],[124.801819,10.134679],[124.760168,10.837995],[124.459101,10.88993],[124.302522,11.495371],[124.891013,11.415583],[124.87799,11.79419],[124.266762,12.557761],[125.227116,12.535721],[125.502552,12.162695]]],[[[121.527394,13.06959],[121.26219,12.20556],[120.833896,12.704496],[120.323436,13.466413],[121.180128,13.429697],[121.527394,13.06959]]],[[[121.321308,18.504065],[121.937601,18.218552],[122.246006,18.47895],[122.336957,18.224883],[122.174279,17.810283],[122.515654,17.093505],[122.252311,16.262444],[121.662786,15.931018],[121.50507,15.124814],[121.728829,14.328376],[122.258925,14.218202],[122.701276,14.336541],[123.950295,13.782131],[123.855107,13.237771],[124.181289,12.997527],[124.077419,12.536677],[123.298035,13.027526],[122.928652,13.55292],[122.671355,13.185836],[122.03465,13.784482],[121.126385,13.636687],[120.628637,13.857656],[120.679384,14.271016],[120.991819,14.525393],[120.693336,14.756671],[120.564145,14.396279],[120.070429,14.970869],[119.920929,15.406347],[119.883773,16.363704],[120.286488,16.034629],[120.390047,17.599081],[120.715867,18.505227],[121.321308,18.504065]]]]},"type":"Feature","id":"PHL","properties":{"name":"Philippines","id":"PHL","centroid":[121.03,14.4]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[155.880026,-6.819997],[155.599991,-6.919991],[155.166994,-6.535931],[154.729192,-5.900828],[154.514114,-5.139118],[154.652504,-5.042431],[154.759991,-5.339984],[155.062918,-5.566792],[155.547746,-6.200655],[156.019965,-6.540014],[155.880026,-6.819997]]],[[[151.982796,-5.478063],[151.459107,-5.56028],[151.30139,-5.840728],[150.754447,-6.083763],[150.241197,-6.317754],[149.709963,-6.316513],[148.890065,-6.02604],[148.318937,-5.747142],[148.401826,-5.437756],[149.298412,-5.583742],[149.845562,-5.505503],[149.99625,-5.026101],[150.139756,-5.001348],[150.236908,-5.53222],[150.807467,-5.455842],[151.089672,-5.113693],[151.647881,-4.757074],[151.537862,-4.167807],[152.136792,-4.14879],[152.338743,-4.312966],[152.318693,-4.867661],[151.982796,-5.478063]]],[[[147.191874,-7.388024],[148.084636,-8.044108],[148.734105,-9.104664],[149.306835,-9.071436],[149.266631,-9.514406],[150.038728,-9.684318],[149.738798,-9.872937],[150.801628,-10.293687],[150.690575,-10.582713],[150.028393,-10.652476],[149.78231,-10.393267],[148.923138,-10.280923],[147.913018,-10.130441],[147.135443,-9.492444],[146.567881,-8.942555],[146.048481,-8.067414],[144.744168,-7.630128],[143.897088,-7.91533],[143.286376,-8.245491],[143.413913,-8.983069],[142.628431,-9.326821],[142.068259,-9.159596],[141.033852,-9.117893],[141.017057,-5.859022],[141.00021,-2.600151],[142.735247,-3.289153],[144.583971,-3.861418],[145.27318,-4.373738],[145.829786,-4.876498],[145.981922,-5.465609],[147.648073,-6.083659],[147.891108,-6.614015],[146.970905,-6.721657],[147.191874,-7.388024]]],[[[153.140038,-4.499983],[152.827292,-4.766427],[152.638673,-4.176127],[152.406026,-3.789743],[151.953237,-3.462062],[151.384279,-3.035422],[150.66205,-2.741486],[150.939965,-2.500002],[151.479984,-2.779985],[151.820015,-2.999972],[152.239989,-3.240009],[152.640017,-3.659983],[153.019994,-3.980015],[153.140038,-4.499983]]]]},"type":"Feature","id":"PNG","properties":{"name":"Papua New Guinea","id":"PNG","centroid":[147.08,-9.24]}},{"geometry":{"type":"Polygon","coordinates":[[[15.016996,51.106674],[14.607098,51.745188],[14.685026,52.089947],[14.4376,52.62485],[14.074521,52.981263],[14.353315,53.248171],[14.119686,53.757029],[14.8029,54.050706],[16.363477,54.513159],[17.622832,54.851536],[18.620859,54.682606],[18.696255,54.438719],[19.66064,54.426084],[20.892245,54.312525],[22.731099,54.327537],[23.243987,54.220567],[23.484128,53.912498],[23.527536,53.470122],[23.804935,53.089731],[23.799199,52.691099],[23.199494,52.486977],[23.508002,52.023647],[23.527071,51.578454],[24.029986,50.705407],[23.922757,50.424881],[23.426508,50.308506],[22.51845,49.476774],[22.776419,49.027395],[22.558138,49.085738],[21.607808,49.470107],[20.887955,49.328772],[20.415839,49.431453],[19.825023,49.217125],[19.320713,49.571574],[18.909575,49.435846],[18.853144,49.49623],[18.392914,49.988629],[17.649445,50.049038],[17.554567,50.362146],[16.868769,50.473974],[16.719476,50.215747],[16.176253,50.422607],[16.238627,50.697733],[15.490972,50.78473],[15.016996,51.106674]]]},"type":"Feature","id":"POL","properties":{"name":"Poland","id":"POL","centroid":[21,52.13]}},{"geometry":{"type":"Polygon","coordinates":[[[-66.282434,18.514762],[-65.771303,18.426679],[-65.591004,18.228035],[-65.847164,17.975906],[-66.599934,17.981823],[-67.184162,17.946553],[-67.242428,18.37446],[-67.100679,18.520601],[-66.282434,18.514762]]]},"type":"Feature","id":"PRI","properties":{"name":"Puerto Rico","id":"PRI","centroid":[-66.07,18.28]}},{"geometry":{"type":"Polygon","coordinates":[[[130.640016,42.395009],[130.780007,42.220007],[130.400031,42.280004],[129.965949,41.941368],[129.667362,41.601104],[129.705189,40.882828],[129.188115,40.661808],[129.0104,40.485436],[128.633368,40.189847],[127.967414,40.025413],[127.533436,39.75685],[127.50212,39.323931],[127.385434,39.213472],[127.783343,39.050898],[128.349716,38.612243],[128.205746,38.370397],[127.780035,38.304536],[127.073309,38.256115],[126.68372,37.804773],[126.237339,37.840378],[126.174759,37.749686],[125.689104,37.94001],[125.568439,37.752089],[125.27533,37.669071],[125.240087,37.857224],[124.981033,37.948821],[124.712161,38.108346],[124.985994,38.548474],[125.221949,38.665857],[125.132859,38.848559],[125.38659,39.387958],[125.321116,39.551385],[124.737482,39.660344],[124.265625,39.928493],[125.079942,40.569824],[126.182045,41.107336],[126.869083,41.816569],[127.343783,41.503152],[128.208433,41.466772],[128.052215,41.994285],[129.596669,42.424982],[129.994267,42.985387],[130.640016,42.395009]]]},"type":"Feature","id":"PRK","properties":{"name":"North Korea","id":"PRK","centroid":[125.44,39.02]}},{"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.671946,42.134689],[-8.263857,42.280469],[-8.013175,41.790886],[-7.422513,41.792075],[-7.251309,41.918346],[-6.668606,41.883387],[-6.389088,41.381815],[-6.851127,41.111083],[-6.86402,40.330872],[-7.026413,40.184524],[-7.066592,39.711892],[-7.498632,39.629571],[-7.098037,39.030073],[-7.374092,38.373059],[-7.029281,38.075764],[-7.166508,37.803894],[-7.537105,37.428904],[-7.453726,37.097788],[-7.855613,36.838269],[-8.382816,36.97888],[-8.898857,36.868809],[-8.746101,37.651346],[-8.839998,38.266243],[-9.287464,38.358486],[-9.526571,38.737429],[-9.446989,39.392066],[-9.048305,39.755093],[-8.977353,40.159306],[-8.768684,40.760639],[-8.790853,41.184334],[-8.990789,41.543459],[-9.034818,41.880571]]]},"type":"Feature","id":"PRT","properties":{"name":"Portugal","id":"PRT","centroid":[-9.1,38.42]}},{"geometry":{"type":"Polygon","coordinates":[[[-62.685057,-22.249029],[-62.291179,-21.051635],[-62.265961,-20.513735],[-61.786326,-19.633737],[-60.043565,-19.342747],[-59.115042,-19.356906],[-58.183471,-19.868399],[-58.166392,-20.176701],[-57.870674,-20.732688],[-57.937156,-22.090176],[-56.88151,-22.282154],[-56.473317,-22.0863],[-55.797958,-22.35693],[-55.610683,-22.655619],[-55.517639,-23.571998],[-55.400747,-23.956935],[-55.027902,-24.001274],[-54.652834,-23.839578],[-54.29296,-24.021014],[-54.293476,-24.5708],[-54.428946,-25.162185],[-54.625291,-25.739255],[-54.788795,-26.621786],[-55.695846,-27.387837],[-56.486702,-27.548499],[-57.60976,-27.395899],[-58.618174,-27.123719],[-57.63366,-25.603657],[-57.777217,-25.16234],[-58.807128,-24.771459],[-60.028966,-24.032796],[-60.846565,-23.880713],[-62.685057,-22.249029]]]},"type":"Feature","id":"PRY","properties":{"name":"Paraguay","id":"PRY","centroid":[-57.38,-25.18]}},{"geometry":{"type":"Polygon","coordinates":[[[50.810108,24.754743],[50.743911,25.482424],[51.013352,26.006992],[51.286462,26.114582],[51.589079,25.801113],[51.6067,25.21567],[51.389608,24.627386],[51.112415,24.556331],[50.810108,24.754743]]]},"type":"Feature","id":"QAT","properties":{"name":"Qatar","id":"QAT","centroid":[51.35,25.15]}},{"geometry":{"type":"Polygon","coordinates":[[[22.710531,47.882194],[23.142236,48.096341],[23.760958,47.985598],[24.402056,47.981878],[24.866317,47.737526],[25.207743,47.891056],[25.945941,47.987149],[26.19745,48.220881],[26.619337,48.220726],[26.924176,48.123264],[27.233873,47.826771],[27.551166,47.405117],[28.12803,46.810476],[28.160018,46.371563],[28.054443,45.944586],[28.233554,45.488283],[28.679779,45.304031],[29.149725,45.464925],[29.603289,45.293308],[29.626543,45.035391],[29.141612,44.82021],[28.837858,44.913874],[28.558081,43.707462],[27.970107,43.812468],[27.2424,44.175986],[26.065159,43.943494],[25.569272,43.688445],[24.100679,43.741051],[23.332302,43.897011],[22.944832,43.823785],[22.65715,44.234923],[22.474008,44.409228],[22.705726,44.578003],[22.459022,44.702517],[22.145088,44.478422],[21.562023,44.768947],[21.483526,45.18117],[20.874313,45.416375],[20.762175,45.734573],[20.220192,46.127469],[21.021952,46.316088],[21.626515,46.994238],[22.099768,47.672439],[22.710531,47.882194]]]},"type":"Feature","id":"ROU","properties":{"name":"Romania","id":"ROU","centroid":[26.1,44.27]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[143.648007,50.7476],[144.654148,48.976391],[143.173928,49.306551],[142.558668,47.861575],[143.533492,46.836728],[143.505277,46.137908],[142.747701,46.740765],[142.09203,45.966755],[141.906925,46.805929],[142.018443,47.780133],[141.904445,48.859189],[142.1358,49.615163],[142.179983,50.952342],[141.594076,51.935435],[141.682546,53.301966],[142.606934,53.762145],[142.209749,54.225476],[142.654786,54.365881],[142.914616,53.704578],[143.260848,52.74076],[143.235268,51.75666],[143.648007,50.7476]]],[[[22.731099,54.327537],[20.892245,54.312525],[19.66064,54.426084],[19.888481,54.86616],[21.268449,55.190482],[22.315724,55.015299],[22.757764,54.856574],[22.651052,54.582741],[22.731099,54.327537]]],[[[-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.979709],[-180,68.963636],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180,70.832199],[178.903425,70.78114],[178.7253,71.0988],[180,71.515714],[180,70.832199]]],[[[-178.69378,70.89302],[-180,70.832199],[-180,71.515714],[-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.535693,70.720464],[56.944979,70.632743],[53.677375,70.762658],[53.412017,71.206662],[51.601895,71.474759],[51.455754,72.014881],[52.478275,72.229442],[52.444169,72.774731],[54.427614,73.627548],[53.50829,73.749814],[55.902459,74.627486],[55.631933,75.081412],[57.868644,75.60939],[61.170044,76.251883],[64.498368,76.439055],[66.210977,76.809782],[68.15706,76.939697],[68.852211,76.544811],[68.180573,76.233642],[64.637326,75.737755],[61.583508,75.260885],[58.477082,74.309056],[56.986786,73.333044],[55.419336,72.371268],[55.622838,71.540595],[57.535693,70.720464]]],[[[106.97013,76.97419],[107.24,76.48],[108.1538,76.72335],[111.07726,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779],[112.77918,75.03186],[110.15125,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774],[113.01954,73.97693],[113.52958,73.33505],[113.96881,73.59488],[115.56782,73.75285],[118.77633,73.58772],[119.02,73.12],[123.20066,72.97122],[123.25777,73.73503],[125.38,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46,71.98],[129.71599,71.19304],[131.28858,70.78699],[132.2535,71.8363],[133.85766,71.38642],[135.56193,71.65525],[137.49755,71.34763],[138.23409,71.62803],[139.86983,71.48783],[139.14791,72.41619],[140.46817,72.84941],[149.5,72.2],[150.35118,71.60643],[152.9689,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031,70.45324],[159.70866,69.72198],[160.94053,69.43728],[162.27907,69.64204],[164.05248,69.66823],[165.94037,69.47199],[167.83567,69.58269],[169.57763,68.6938],[170.81688,69.01363],[170.0082,69.65276],[170.45345,70.09703],[173.64391,69.81743],[175.72403,69.87725],[178.6,69.4],[180,68.963636],[180,64.979709],[179.99281,64.97433],[178.7072,64.53493],[177.41128,64.60821],[178.313,64.07593],[178.90825,63.25197],[179.37034,62.98262],[179.48636,62.56894],[179.22825,62.3041],[177.3643,62.5219],[174.56929,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985,60.33618],[170.33085,59.88177],[168.90046,60.57355],[166.29498,59.78855],[165.84,60.16],[164.87674,59.7316],[163.53929,59.86871],[163.21711,59.21101],[162.01733,58.24328],[162.05297,57.83912],[163.19191,57.61503],[163.05794,56.15924],[162.12958,56.12219],[161.70146,55.28568],[162.11749,54.85514],[160.36877,54.34433],[160.02173,53.20257],[158.53094,52.95868],[158.23118,51.94269],[156.78979,51.01105],[156.42,51.7],[155.99182,53.15895],[155.43366,55.38103],[155.91442,56.76792],[156.75815,57.3647],[156.81035,57.83204],[158.36433,58.05575],[160.15064,59.31477],[161.87204,60.343],[163.66969,61.1409],[164.47355,62.55061],[163.25842,62.46627],[162.65791,61.6425],[160.12148,60.54423],[159.30232,61.77396],[156.72068,61.43442],[154.21806,59.75818],[155.04375,59.14495],[152.81185,58.88385],[151.26573,58.78089],[151.33815,59.50396],[149.78371,59.65573],[148.54481,59.16448],[145.48722,59.33637],[142.19782,59.03998],[138.95848,57.08805],[135.12619,54.72959],[136.70171,54.60355],[137.19342,53.97732],[138.1647,53.75501],[138.80463,54.25455],[139.90151,54.18968],[141.34531,53.08957],[141.37923,52.23877],[140.59742,51.23967],[140.51308,50.04553],[140.06193,48.44671],[138.55472,46.99965],[138.21971,46.30795],[136.86232,45.1435],[135.51535,43.989],[134.86939,43.39821],[133.53687,42.81147],[132.90627,42.79849],[132.27807,43.28456],[130.93587,42.55274],[130.78,42.22],[130.64,42.395],[130.633866,42.903015],[131.144688,42.92999],[131.288555,44.11152],[131.02519,44.96796],[131.883454,45.321162],[133.09712,45.14409],[133.769644,46.116927],[134.11235,47.21248],[134.50081,47.57845],[135.026311,48.47823],[133.373596,48.183442],[132.50669,47.78896],[130.98726,47.79013],[130.582293,48.729687],[129.397818,49.4406],[127.6574,49.76027],[127.287456,50.739797],[126.939157,51.353894],[126.564399,51.784255],[125.946349,52.792799],[125.068211,53.161045],[123.57147,53.4588],[122.245748,53.431726],[121.003085,53.251401],[120.177089,52.753886],[120.725789,52.516226],[120.7382,51.96411],[120.18208,51.64355],[119.27939,50.58292],[119.288461,50.142883],[117.879244,49.510983],[116.678801,49.888531],[115.485695,49.805177],[114.96211,50.140247],[114.362456,50.248303],[112.89774,49.543565],[111.581231,49.377968],[110.662011,49.130128],[109.402449,49.292961],[108.475167,49.282548],[107.868176,49.793705],[106.888804,50.274296],[105.886591,50.406019],[104.62158,50.27532],[103.676545,50.089966],[102.25589,50.51056],[102.06521,51.25991],[100.88948,51.516856],[99.981732,51.634006],[98.861491,52.047366],[97.82574,51.010995],[98.231762,50.422401],[97.25976,49.72605],[95.81402,49.97746],[94.815949,50.013433],[94.147566,50.480537],[93.10421,50.49529],[92.234712,50.802171],[90.713667,50.331812],[88.805567,49.470521],[87.751264,49.297198],[87.35997,49.214981],[86.829357,49.826675],[85.54127,49.692859],[85.11556,50.117303],[84.416377,50.3114],[83.935115,50.889246],[83.383004,51.069183],[81.945986,50.812196],[80.568447,51.388336],[80.03556,50.864751],[77.800916,53.404415],[76.525179,54.177003],[76.8911,54.490524],[74.38482,53.54685],[73.425679,53.48981],[73.508516,54.035617],[72.22415,54.376655],[71.180131,54.133285],[70.865267,55.169734],[69.068167,55.38525],[68.1691,54.970392],[65.66687,54.60125],[65.178534,54.354228],[61.4366,54.00625],[60.978066,53.664993],[61.699986,52.979996],[60.739993,52.719986],[60.927269,52.447548],[59.967534,51.96042],[61.588003,51.272659],[61.337424,50.79907],[59.932807,50.842194],[59.642282,50.545442],[58.36332,51.06364],[56.77798,51.04355],[55.71694,50.62171],[54.532878,51.02624],[52.328724,51.718652],[50.766648,51.692762],[48.702382,50.605128],[48.577841,49.87476],[47.54948,50.454698],[46.751596,49.356006],[47.043672,49.152039],[46.466446,48.394152],[47.31524,47.71585],[48.05725,47.74377],[48.694734,47.075628],[48.59325,46.56104],[49.10116,46.39933],[48.64541,45.80629],[47.67591,45.64149],[46.68201,44.6092],[47.59094,43.66016],[47.49252,42.98658],[48.58437,41.80888],[47.987283,41.405819],[47.815666,41.151416],[47.373315,41.219732],[46.686071,41.827137],[46.404951,41.860675],[45.7764,42.09244],[45.470279,42.502781],[44.537623,42.711993],[43.93121,42.55496],[43.75599,42.74083],[42.3944,43.2203],[40.92219,43.38215],[40.076965,43.553104],[39.955009,43.434998],[38.68,44.28],[37.53912,44.65721],[36.67546,45.24469],[37.40317,45.40451],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475],[39.1212,47.26336],[38.223538,47.10219],[38.255112,47.5464],[38.77057,47.82562],[39.738278,47.898937],[39.89562,48.23241],[39.67465,48.78382],[40.080789,49.30743],[40.06904,49.60105],[38.594988,49.926462],[38.010631,49.915662],[37.39346,50.383953],[36.626168,50.225591],[35.356116,50.577197],[35.37791,50.77394],[35.022183,51.207572],[34.224816,51.255993],[34.141978,51.566413],[34.391731,51.768882],[33.7527,52.335075],[32.715761,52.238465],[32.412058,52.288695],[32.15944,52.06125],[31.78597,52.10168],[31.540018,52.742052],[31.305201,53.073996],[31.49764,53.16743],[32.304519,53.132726],[32.693643,53.351421],[32.405599,53.618045],[31.731273,53.794029],[31.791424,53.974639],[31.384472,54.157056],[30.757534,54.811771],[30.971836,55.081548],[30.873909,55.550976],[29.896294,55.789463],[29.371572,55.670091],[29.229513,55.918344],[28.176709,56.16913],[27.855282,56.759326],[27.770016,57.244258],[27.288185,57.474528],[27.716686,57.791899],[27.42015,58.72457],[28.131699,59.300825],[27.98112,59.47537],[29.1177,60.02805],[28.07,60.50352],[30.211107,61.780028],[31.139991,62.357693],[31.516092,62.867687],[30.035872,63.552814],[30.444685,64.204453],[29.54443,64.948672],[30.21765,65.80598],[29.054589,66.944286],[29.977426,67.698297],[28.445944,68.364613],[28.59193,69.064777],[29.39955,69.15692],[31.10108,69.55811],[32.13272,69.90595],[33.77547,69.30142],[36.51396,69.06342],[40.29234,67.9324],[41.05987,67.45713],[41.12595,66.79158],[40.01583,66.26618],[38.38295,65.99953],[33.91871,66.75961],[33.18444,66.63253],[34.81477,65.90015],[34.878574,65.436213],[34.94391,64.41437],[36.23129,64.10945],[37.01273,63.84983],[37.14197,64.33471],[36.539579,64.76446],[37.17604,65.14322],[39.59345,64.52079],[40.4356,64.76446],[39.7626,65.49682],[42.09309,66.47623],[43.01604,66.41858],[43.94975,66.06908],[44.53226,66.75634],[43.69839,67.35245],[44.18795,67.95051],[43.45282,68.57079],[46.25,68.25],[46.82134,67.68997],[45.55517,67.56652],[45.56202,67.01005],[46.34915,66.66767],[47.89416,66.88455],[48.13876,67.52238],[50.22766,67.99867],[53.71743,68.85738],[54.47171,68.80815],[53.48582,68.20131],[54.72628,68.09702],[55.44268,68.43866],[57.31702,68.46628],[58.802,68.88082],[59.94142,68.27844],[61.07784,68.94069],[60.03,69.52],[60.55,69.85],[63.504,69.54739],[64.888115,69.234835],[68.51216,68.09233],[69.18068,68.61563],[68.16444,69.14436],[68.13522,69.35649],[66.93008,69.45461],[67.25976,69.92873],[66.72492,70.70889],[66.69466,71.02897],[68.54006,71.9345],[69.19636,72.84336],[69.94,73.04],[72.58754,72.77629],[72.79603,72.22006],[71.84811,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.5647,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28,66.32],[72.42301,66.17267],[72.82077,66.53267],[73.92099,66.78946],[74.18651,67.28429],[75.052,67.76047],[74.46926,68.32899],[74.93584,68.98918],[73.84236,69.07146],[73.60187,69.62763],[74.3998,70.63175],[73.1011,71.44717],[74.89082,72.12119],[74.65926,72.83227],[75.15801,72.85497],[75.68351,72.30056],[75.28898,71.33556],[76.35911,71.15287],[75.90313,71.87401],[77.57665,72.26717],[79.65202,72.32011],[81.5,71.75],[80.61071,72.58285],[80.51109,73.6482],[82.25,73.85],[84.65526,73.80591],[86.8223,73.93688],[86.00956,74.45967],[87.16682,75.11643],[88.31571,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421,76.0472],[95.86,76.14],[96.67821,75.91548],[98.92254,76.44689],[100.75967,76.43028],[101.03532,76.86189],[101.99084,77.28754],[104.3516,77.69792],[106.06664,77.37389],[104.705,77.1274],[106.97013,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.136187,80.54728],[49.793685,80.415428],[48.894411,80.339567],[48.754937,80.175468],[47.586119,80.010181],[46.502826,80.247247],[47.072455,80.559424],[44.846958,80.58981],[46.799139,80.771918],[48.318477,80.78401],[48.522806,80.514569],[49.09719,80.753986],[50.039768,80.918885],[51.522933,80.699726],[51.136187,80.54728]]],[[[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","id":"RUS","properties":{"name":"Russia","id":"RUS","centroid":[37.35,55.45]}},{"geometry":{"type":"Polygon","coordinates":[[[30.419105,-1.134659],[30.816135,-1.698914],[30.758309,-2.28725],[30.469696,-2.413858],[29.938359,-2.348487],[29.632176,-2.917858],[29.024926,-2.839258],[29.117479,-2.292211],[29.254835,-2.21511],[29.291887,-1.620056],[29.579466,-1.341313],[29.821519,-1.443322],[30.419105,-1.134659]]]},"type":"Feature","id":"RWA","properties":{"name":"Rwanda","id":"RWA","centroid":[30.04,-1.59]}},{"geometry":{"type":"Polygon","coordinates":[[[-8.794884,27.120696],[-8.817828,27.656426],[-8.66559,27.656426],[-8.665124,27.589479],[-8.6844,27.395744],[-8.687294,25.881056],[-11.969419,25.933353],[-11.937224,23.374594],[-12.874222,23.284832],[-13.118754,22.77122],[-12.929102,21.327071],[-16.845194,21.333323],[-17.063423,20.999752],[-17.020428,21.42231],[-17.002962,21.420734],[-14.750955,21.5006],[-14.630833,21.86094],[-14.221168,22.310163],[-13.89111,23.691009],[-12.500963,24.770116],[-12.030759,26.030866],[-11.71822,26.104092],[-11.392555,26.883424],[-10.551263,26.990808],[-10.189424,26.860945],[-9.735343,26.860945],[-9.413037,27.088476],[-8.794884,27.120696]]]},"type":"Feature","id":"ESH","properties":{"name":"Western Sahara","id":"ESH","centroid":[-12.12,27.9]}},{"geometry":{"type":"Polygon","coordinates":[[[42.779332,16.347891],[42.649573,16.774635],[42.347989,17.075806],[42.270888,17.474722],[41.754382,17.833046],[41.221391,18.6716],[40.939341,19.486485],[40.247652,20.174635],[39.801685,20.338862],[39.139399,21.291905],[39.023696,21.986875],[39.066329,22.579656],[38.492772,23.688451],[38.02386,24.078686],[37.483635,24.285495],[37.154818,24.858483],[37.209491,25.084542],[36.931627,25.602959],[36.639604,25.826228],[36.249137,26.570136],[35.640182,27.37652],[35.130187,28.063352],[34.632336,28.058546],[34.787779,28.607427],[34.83222,28.957483],[34.956037,29.356555],[36.068941,29.197495],[36.501214,29.505254],[36.740528,29.865283],[37.503582,30.003776],[37.66812,30.338665],[37.998849,30.5085],[37.002166,31.508413],[39.004886,32.010217],[39.195468,32.161009],[40.399994,31.889992],[41.889981,31.190009],[44.709499,29.178891],[46.568713,29.099025],[47.459822,29.002519],[47.708851,28.526063],[48.416094,28.552004],[48.807595,27.689628],[49.299554,27.461218],[49.470914,27.109999],[50.152422,26.689663],[50.212935,26.277027],[50.113303,25.943972],[50.239859,25.60805],[50.527387,25.327808],[50.660557,24.999896],[50.810108,24.754743],[51.112415,24.556331],[51.389608,24.627386],[51.579519,24.245497],[51.617708,24.014219],[52.000733,23.001154],[55.006803,22.496948],[55.208341,22.70833],[55.666659,22.000001],[54.999982,19.999994],[52.00001,19.000003],[49.116672,18.616668],[48.183344,18.166669],[47.466695,17.116682],[47.000005,16.949999],[46.749994,17.283338],[46.366659,17.233315],[45.399999,17.333335],[45.216651,17.433329],[44.062613,17.410359],[43.791519,17.319977],[43.380794,17.579987],[43.115798,17.08844],[43.218375,16.66689],[42.779332,16.347891]]]},"type":"Feature","id":"SAU","properties":{"name":"Saudi Arabia","id":"SAU","centroid":[46.42,24.41]}},{"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.824963,9.484061],[33.842131,9.981915],[33.721959,10.325262],[33.206938,10.720112],[33.086766,11.441141],[33.206938,12.179338],[32.743419,12.248008],[32.67475,12.024832],[32.073892,11.97333],[32.314235,11.681484],[32.400072,11.080626],[31.850716,10.531271],[31.352862,9.810241],[30.837841,9.707237],[29.996639,10.290927],[29.618957,10.084919],[29.515953,9.793074],[29.000932,9.604232],[28.966597,9.398224],[27.97089,9.398224],[27.833551,9.604232],[27.112521,9.638567],[26.752006,9.466893],[26.477328,9.55273],[25.962307,10.136421],[25.790633,10.411099],[25.069604,10.27376],[24.794926,9.810241],[24.537415,8.917538],[24.194068,8.728696],[23.88698,8.61973],[23.805813,8.666319],[23.459013,8.954286],[23.394779,9.265068],[23.55725,9.681218],[23.554304,10.089255],[22.977544,10.714463],[22.864165,11.142395],[22.87622,11.38461],[22.50869,11.67936],[22.49762,12.26024],[22.28801,12.64605],[21.93681,12.58818],[22.03759,12.95546],[22.29658,13.37232],[22.18329,13.78648],[22.51202,14.09318],[22.30351,14.32682],[22.56795,14.94429],[23.02459,15.68072],[23.88689,15.61084],[23.83766,19.58047],[23.85,20],[25,20.00304],[25,22],[29.02,22],[32.9,22],[36.86623,22],[37.18872,21.01885],[36.96941,20.83744],[37.1147,19.80796],[37.48179,18.61409],[37.86276,18.36786],[38.41009,17.998307],[37.904,17.42754],[37.16747,17.26314],[36.85253,16.95655],[36.75389,16.29186],[36.32322,14.82249],[36.42951,14.42211],[36.27022,13.56333],[35.86363,12.57828],[35.26049,12.08286],[34.83163,11.31896],[34.73115,10.91017],[34.25745,10.63009],[33.96162,9.58358],[33.963393,9.464285]]]},"type":"Feature","id":"SDN","properties":{"name":"Sudan","id":"SDN","centroid":[32.31,15.36]}},{"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.97498,8.68456],[33.8255,8.37916],[33.2948,8.35458],[32.95418,7.78497],[33.56829,7.71334],[34.0751,7.22595],[34.25032,6.82607],[34.70702,6.59422],[35.298007,5.506],[34.620196,4.847123],[34.005,4.249885],[33.39,3.79],[32.68642,3.79232],[31.88145,3.55827],[31.24556,3.7819],[30.83385,3.50917],[29.95349,4.1737],[29.715995,4.600805],[29.159078,4.389267],[28.696678,4.455077],[28.428994,4.287155],[27.979977,4.408413],[27.374226,5.233944],[27.213409,5.550953],[26.465909,5.946717],[26.213418,6.546603],[25.796648,6.979316],[25.124131,7.500085],[25.114932,7.825104],[24.567369,8.229188],[23.88698,8.61973],[24.194068,8.728696],[24.537415,8.917538],[24.794926,9.810241],[25.069604,10.27376],[25.790633,10.411099],[25.962307,10.136421],[26.477328,9.55273],[26.752006,9.466893],[27.112521,9.638567],[27.833551,9.604232],[27.97089,9.398224],[28.966597,9.398224],[29.000932,9.604232],[29.515953,9.793074],[29.618957,10.084919],[29.996639,10.290927],[30.837841,9.707237],[31.352862,9.810241],[31.850716,10.531271],[32.400072,11.080626],[32.314235,11.681484],[32.073892,11.97333],[32.67475,12.024832],[32.743419,12.248008],[33.206938,12.179338],[33.086766,11.441141],[33.206938,10.720112],[33.721959,10.325262],[33.842131,9.981915],[33.824963,9.484061],[33.963393,9.464285]]]},"type":"Feature","id":"SSD","properties":{"name":"South Sudan","id":"SSD","centroid":[31.36,4.51]}},{"geometry":{"type":"Polygon","coordinates":[[[-16.713729,13.594959],[-17.126107,14.373516],[-17.625043,14.729541],[-17.185173,14.919477],[-16.700706,15.621527],[-16.463098,16.135036],[-16.12069,16.455663],[-15.623666,16.369337],[-15.135737,16.587282],[-14.577348,16.598264],[-14.099521,16.304302],[-13.435738,16.039383],[-12.830658,15.303692],[-12.17075,14.616834],[-12.124887,13.994727],[-11.927716,13.422075],[-11.553398,13.141214],[-11.467899,12.754519],[-11.513943,12.442988],[-11.658301,12.386583],[-12.203565,12.465648],[-12.278599,12.35444],[-12.499051,12.33209],[-13.217818,12.575874],[-13.700476,12.586183],[-15.548477,12.62817],[-15.816574,12.515567],[-16.147717,12.547762],[-16.677452,12.384852],[-16.841525,13.151394],[-15.931296,13.130284],[-15.691001,13.270353],[-15.511813,13.27857],[-15.141163,13.509512],[-14.712197,13.298207],[-14.277702,13.280585],[-13.844963,13.505042],[-14.046992,13.794068],[-14.376714,13.62568],[-14.687031,13.630357],[-15.081735,13.876492],[-15.39877,13.860369],[-15.624596,13.623587],[-16.713729,13.594959]]]},"type":"Feature","id":"SEN","properties":{"name":"Senegal","id":"SEN","centroid":[-17.29,14.34]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[162.119025,-10.482719],[162.398646,-10.826367],[161.700032,-10.820011],[161.319797,-10.204751],[161.917383,-10.446701],[162.119025,-10.482719]]],[[[160.852229,-9.872937],[160.462588,-9.89521],[159.849447,-9.794027],[159.640003,-9.63998],[159.702945,-9.24295],[160.362956,-9.400304],[160.688518,-9.610162],[160.852229,-9.872937]]],[[[161.679982,-9.599982],[161.529397,-9.784312],[160.788253,-8.917543],[160.579997,-8.320009],[160.920028,-8.320009],[161.280006,-9.120011],[161.679982,-9.599982]]],[[[159.875027,-8.33732],[159.917402,-8.53829],[159.133677,-8.114181],[158.586114,-7.754824],[158.21115,-7.421872],[158.359978,-7.320018],[158.820001,-7.560003],[159.640003,-8.020027],[159.875027,-8.33732]]],[[[157.538426,-7.34782],[157.33942,-7.404767],[156.90203,-7.176874],[156.491358,-6.765943],[156.542828,-6.599338],[157.14,-7.021638],[157.538426,-7.34782]]]]},"type":"Feature","id":"SLB","properties":{"name":"Solomon Islands","id":"SLB","centroid":[159.57,-9.27]}},{"geometry":{"type":"Polygon","coordinates":[[[-11.438779,6.785917],[-11.708195,6.860098],[-12.428099,7.262942],[-12.949049,7.798646],[-13.124025,8.163946],[-13.24655,8.903049],[-12.711958,9.342712],[-12.596719,9.620188],[-12.425929,9.835834],[-12.150338,9.858572],[-11.917277,10.046984],[-11.117481,10.045873],[-10.839152,9.688246],[-10.622395,9.26791],[-10.65477,8.977178],[-10.494315,8.715541],[-10.505477,8.348896],[-10.230094,8.406206],[-10.695595,7.939464],[-11.146704,7.396706],[-11.199802,7.105846],[-11.438779,6.785917]]]},"type":"Feature","id":"SLE","properties":{"name":"Sierra Leone","id":"SLE","centroid":[-13.17,8.3]}},{"geometry":{"type":"Polygon","coordinates":[[[-87.793111,13.38448],[-87.904112,13.149017],[-88.483302,13.163951],[-88.843228,13.259734],[-89.256743,13.458533],[-89.812394,13.520622],[-90.095555,13.735338],[-90.064678,13.88197],[-89.721934,14.134228],[-89.534219,14.244816],[-89.587343,14.362586],[-89.353326,14.424133],[-89.058512,14.340029],[-88.843073,14.140507],[-88.541231,13.980155],[-88.503998,13.845486],[-88.065343,13.964626],[-87.859515,13.893312],[-87.723503,13.78505],[-87.793111,13.38448]]]},"type":"Feature","id":"SLV","properties":{"name":"El Salvador","id":"SLV","centroid":[-89.1,13.4]}},{"geometry":{"type":"Polygon","coordinates":[[[49.72862,11.5789],[50.25878,11.67957],[50.73202,12.0219],[51.1112,12.02464],[51.13387,11.74815],[51.04153,11.16651],[51.04531,10.6409],[50.83418,10.27972],[50.55239,9.19874],[50.07092,8.08173],[49.4527,6.80466],[48.59455,5.33911],[47.74079,4.2194],[46.56476,2.85529],[45.56399,2.04576],[44.06815,1.05283],[43.13597,0.2922],[42.04157,-0.91916],[41.81095,-1.44647],[41.58513,-1.68325],[40.993,-0.85829],[40.98105,2.78452],[41.855083,3.918912],[42.12861,4.23413],[42.76967,4.25259],[43.66087,4.95755],[44.9636,5.00162],[47.78942,8.003],[46.948328,7.996877],[43.67875,9.18358],[43.296975,9.540477],[42.92812,10.02194],[42.55876,10.57258],[42.776852,10.926879],[43.145305,11.46204],[43.47066,11.27771],[43.666668,10.864169],[44.117804,10.445538],[44.614259,10.442205],[45.556941,10.698029],[46.645401,10.816549],[47.525658,11.127228],[48.021596,11.193064],[48.378784,11.375482],[48.948206,11.410622],[48.942005,11.394266],[48.948205,11.410617],[49.26776,11.43033],[49.72862,11.5789]]]},"type":"Feature","id":"SOM","properties":{"name":"Somalia","id":"SOM","centroid":[45.25,2.02]}},{"geometry":{"type":"Polygon","coordinates":[[[20.874313,45.416375],[21.483526,45.18117],[21.562023,44.768947],[22.145088,44.478422],[22.459022,44.702517],[22.705726,44.578003],[22.474008,44.409228],[22.65715,44.234923],[22.410446,44.008063],[22.500157,43.642814],[22.986019,43.211161],[22.604801,42.898519],[22.436595,42.580321],[22.545012,42.461362],[22.380526,42.32026],[21.91708,42.30364],[21.576636,42.245224],[21.3527,42.2068],[20.76216,42.05186],[20.76216,42.05186],[20.71731,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.32025],[20.0707,42.58863],[20.25758,42.81275],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21378],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.5681],[19.59976,44.03847],[19.11761,44.42307],[19.36803,44.863],[19.00548,44.86023],[19.390476,45.236516],[19.072769,45.521511],[18.82982,45.90888],[19.596045,46.17173],[20.220192,46.127469],[20.762175,45.734573],[20.874313,45.416375]]]},"type":"Feature","id":"SRB","properties":{"name":"Republic of Serbia","id":"SRB","centroid":[20.28,44.49]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.147436,5.97315],[-55.949318,5.772878],[-55.84178,5.953125],[-55.03325,6.025291],[-53.958045,5.756548],[-54.478633,4.896756],[-54.399542,4.212611],[-54.006931,3.620038],[-54.181726,3.18978],[-54.269705,2.732392],[-54.524754,2.311849],[-55.097587,2.523748],[-55.569755,2.421506],[-55.973322,2.510364],[-56.073342,2.220795],[-55.9056,2.021996],[-55.995698,1.817667],[-56.539386,1.899523],[-57.150098,2.768927],[-57.281433,3.333492],[-57.601569,3.334655],[-58.044694,4.060864],[-57.86021,4.576801],[-57.914289,4.812626],[-57.307246,5.073567],[-57.147436,5.97315]]]},"type":"Feature","id":"SUR","properties":{"name":"Suriname","id":"SUR","centroid":[-55.1,5.5]}},{"geometry":{"type":"Polygon","coordinates":[[[18.853144,49.49623],[18.909575,49.435846],[19.320713,49.571574],[19.825023,49.217125],[20.415839,49.431453],[20.887955,49.328772],[21.607808,49.470107],[22.558138,49.085738],[22.280842,48.825392],[22.085608,48.422264],[21.872236,48.319971],[20.801294,48.623854],[20.473562,48.56285],[20.239054,48.327567],[19.769471,48.202691],[19.661364,48.266615],[19.174365,48.111379],[18.777025,48.081768],[18.696513,47.880954],[17.857133,47.758429],[17.488473,47.867466],[16.979667,48.123497],[16.879983,48.470013],[16.960288,48.596982],[17.101985,48.816969],[17.545007,48.800019],[17.886485,48.903475],[17.913512,48.996493],[18.104973,49.043983],[18.170498,49.271515],[18.399994,49.315001],[18.554971,49.495015],[18.853144,49.49623]]]},"type":"Feature","id":"SVK","properties":{"name":"Slovakia","id":"SVK","centroid":[17.07,48.1]}},{"geometry":{"type":"Polygon","coordinates":[[[13.806475,46.509306],[14.632472,46.431817],[15.137092,46.658703],[16.011664,46.683611],[16.202298,46.852386],[16.370505,46.841327],[16.564808,46.503751],[15.768733,46.238108],[15.67153,45.834154],[15.323954,45.731783],[15.327675,45.452316],[14.935244,45.471695],[14.595109,45.634941],[14.411968,45.466166],[13.71506,45.500324],[13.93763,45.591016],[13.69811,46.016778],[13.806475,46.509306]]]},"type":"Feature","id":"SVN","properties":{"name":"Slovenia","id":"SVN","centroid":[14.33,46.04]}},{"geometry":{"type":"Polygon","coordinates":[[[22.183173,65.723741],[21.213517,65.026005],[21.369631,64.413588],[19.778876,63.609554],[17.847779,62.7494],[17.119555,61.341166],[17.831346,60.636583],[18.787722,60.081914],[17.869225,58.953766],[16.829185,58.719827],[16.44771,57.041118],[15.879786,56.104302],[14.666681,56.200885],[14.100721,55.407781],[12.942911,55.361737],[12.625101,56.30708],[11.787942,57.441817],[11.027369,58.856149],[11.468272,59.432393],[12.300366,60.117933],[12.631147,61.293572],[11.992064,61.800362],[11.930569,63.128318],[12.579935,64.066219],[13.571916,64.049114],[13.919905,64.445421],[13.55569,64.787028],[15.108411,66.193867],[16.108712,67.302456],[16.768879,68.013937],[17.729182,68.010552],[17.993868,68.567391],[19.87856,68.407194],[20.025269,69.065139],[20.645593,69.106247],[21.978535,68.616846],[23.539473,67.936009],[23.56588,66.396051],[23.903379,66.006927],[22.183173,65.723741]]]},"type":"Feature","id":"SWE","properties":{"name":"Sweden","id":"SWE","centroid":[18.03,59.2]}},{"geometry":{"type":"Polygon","coordinates":[[[32.071665,-26.73382],[31.86806,-27.177927],[31.282773,-27.285879],[30.685962,-26.743845],[30.676609,-26.398078],[30.949667,-26.022649],[31.04408,-25.731452],[31.333158,-25.660191],[31.837778,-25.843332],[31.985779,-26.29178],[32.071665,-26.73382]]]},"type":"Feature","id":"SWZ","properties":{"name":"Swaziland","id":"SWZ","centroid":[31.06,-26.18]}},{"geometry":{"type":"Polygon","coordinates":[[[38.792341,33.378686],[36.834062,32.312938],[35.719918,32.709192],[35.700798,32.716014],[35.836397,32.868123],[35.821101,33.277426],[36.06646,33.824912],[36.61175,34.201789],[36.448194,34.593935],[35.998403,34.644914],[35.905023,35.410009],[36.149763,35.821535],[36.41755,36.040617],[36.685389,36.259699],[36.739494,36.81752],[37.066761,36.623036],[38.167727,36.90121],[38.699891,36.712927],[39.52258,36.716054],[40.673259,37.091276],[41.212089,37.074352],[42.349591,37.229873],[41.837064,36.605854],[41.289707,36.358815],[41.383965,35.628317],[41.006159,34.419372],[38.792341,33.378686]]]},"type":"Feature","id":"SYR","properties":{"name":"Syria","id":"SYR","centroid":[36.17,33.31]}},{"geometry":{"type":"Polygon","coordinates":[[[14.495787,12.859396],[14.595781,13.330427],[13.954477,13.353449],[13.956699,13.996691],[13.540394,14.367134],[13.97217,15.68437],[15.247731,16.627306],[15.300441,17.92795],[15.685741,19.95718],[15.903247,20.387619],[15.487148,20.730415],[15.47106,21.04845],[15.096888,21.308519],[14.8513,22.86295],[15.86085,23.40972],[19.84926,21.49509],[23.83766,19.58047],[23.88689,15.61084],[23.02459,15.68072],[22.56795,14.94429],[22.30351,14.32682],[22.51202,14.09318],[22.18329,13.78648],[22.29658,13.37232],[22.03759,12.95546],[21.93681,12.58818],[22.28801,12.64605],[22.49762,12.26024],[22.50869,11.67936],[22.87622,11.38461],[22.864165,11.142395],[22.231129,10.971889],[21.723822,10.567056],[21.000868,9.475985],[20.059685,9.012706],[19.094008,9.074847],[18.81201,8.982915],[18.911022,8.630895],[18.389555,8.281304],[17.96493,7.890914],[16.705988,7.508328],[16.456185,7.734774],[16.290562,7.754307],[16.106232,7.497088],[15.27946,7.421925],[15.436092,7.692812],[15.120866,8.38215],[14.979996,8.796104],[14.544467,8.965861],[13.954218,9.549495],[14.171466,10.021378],[14.627201,9.920919],[14.909354,9.992129],[15.467873,9.982337],[14.923565,10.891325],[14.960152,11.555574],[14.89336,12.21905],[14.495787,12.859396]]]},"type":"Feature","id":"TCD","properties":{"name":"Chad","id":"TCD","centroid":[14.59,12.1]}},{"geometry":{"type":"Polygon","coordinates":[[[1.865241,6.142158],[1.060122,5.928837],[0.836931,6.279979],[0.570384,6.914359],[0.490957,7.411744],[0.712029,8.312465],[0.461192,8.677223],[0.365901,9.465004],[0.36758,10.191213],[-0.049785,10.706918],[0.023803,11.018682],[0.899563,10.997339],[0.772336,10.470808],[1.077795,10.175607],[1.425061,9.825395],[1.463043,9.334624],[1.664478,9.12859],[1.618951,6.832038],[1.865241,6.142158]]]},"type":"Feature","id":"TGO","properties":{"name":"Togo","id":"TGO","centroid":[1.2,6.09]}},{"geometry":{"type":"Polygon","coordinates":[[[102.584932,12.186595],[101.687158,12.64574],[100.83181,12.627085],[100.978467,13.412722],[100.097797,13.406856],[100.018733,12.307001],[99.478921,10.846367],[99.153772,9.963061],[99.222399,9.239255],[99.873832,9.207862],[100.279647,8.295153],[100.459274,7.429573],[101.017328,6.856869],[101.623079,6.740622],[102.141187,6.221636],[101.814282,5.810808],[101.154219,5.691384],[101.075516,6.204867],[100.259596,6.642825],[100.085757,6.464489],[99.690691,6.848213],[99.519642,7.343454],[98.988253,7.907993],[98.503786,8.382305],[98.339662,7.794512],[98.150009,8.350007],[98.25915,8.973923],[98.553551,9.93296],[99.038121,10.960546],[99.587286,11.892763],[99.196354,12.804748],[99.212012,13.269294],[99.097755,13.827503],[98.430819,14.622028],[98.192074,15.123703],[98.537376,15.308497],[98.903348,16.177824],[98.493761,16.837836],[97.859123,17.567946],[97.375896,18.445438],[97.797783,18.62708],[98.253724,19.708203],[98.959676,19.752981],[99.543309,20.186598],[100.115988,20.41785],[100.548881,20.109238],[100.606294,19.508344],[101.282015,19.462585],[101.035931,18.408928],[101.059548,17.512497],[102.113592,18.109102],[102.413005,17.932782],[102.998706,17.961695],[103.200192,18.309632],[103.956477,18.240954],[104.716947,17.428859],[104.779321,16.441865],[105.589039,15.570316],[105.544338,14.723934],[105.218777,14.273212],[104.281418,14.416743],[102.988422,14.225721],[102.348099,13.394247],[102.584932,12.186595]]]},"type":"Feature","id":"THA","properties":{"name":"Thailand","id":"THA","centroid":[100.35,13.45]}},{"geometry":{"type":"Polygon","coordinates":[[[71.014198,40.244366],[70.648019,39.935754],[69.55961,40.103211],[69.464887,39.526683],[70.549162,39.604198],[71.784694,39.279463],[73.675379,39.431237],[73.928852,38.505815],[74.257514,38.606507],[74.864816,38.378846],[74.829986,37.990007],[74.980002,37.41999],[73.948696,37.421566],[73.260056,37.495257],[72.63689,37.047558],[72.193041,36.948288],[71.844638,36.738171],[71.448693,37.065645],[71.541918,37.905774],[71.239404,37.953265],[71.348131,38.258905],[70.806821,38.486282],[70.376304,38.138396],[70.270574,37.735165],[70.116578,37.588223],[69.518785,37.608997],[69.196273,37.151144],[68.859446,37.344336],[68.135562,37.023115],[67.83,37.144994],[68.392033,38.157025],[68.176025,38.901553],[67.44222,39.140144],[67.701429,39.580478],[68.536416,39.533453],[69.011633,40.086158],[69.329495,40.727824],[70.666622,40.960213],[70.45816,40.496495],[70.601407,40.218527],[71.014198,40.244366]]]},"type":"Feature","id":"TJK","properties":{"name":"Tajikistan","id":"TJK","centroid":[68.48,38.33]}},{"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[61.123071,36.491597],[60.377638,36.527383],[59.234762,37.412988],[58.436154,37.522309],[57.330434,38.029229],[56.619366,38.121394],[56.180375,37.935127],[55.511578,37.964117],[54.800304,37.392421],[53.921598,37.198918],[53.735511,37.906136],[53.880929,38.952093],[53.101028,39.290574],[53.357808,39.975286],[52.693973,40.033629],[52.915251,40.876523],[53.858139,40.631034],[54.736845,40.951015],[54.008311,41.551211],[53.721713,42.123191],[52.91675,41.868117],[52.814689,41.135371],[52.50246,41.783316],[52.944293,42.116034],[54.079418,42.324109],[54.755345,42.043971],[55.455251,41.259859],[55.968191,41.308642],[57.096391,41.32231],[56.932215,41.826026],[57.78653,42.170553],[58.629011,42.751551],[59.976422,42.223082],[60.083341,41.425146],[60.465953,41.220327],[61.547179,41.26637],[61.882714,41.084857],[62.37426,40.053886],[63.518015,39.363257],[64.170223,38.892407],[65.215999,38.402695],[66.54615,37.974685],[66.518607,37.362784],[66.217385,37.39379],[65.745631,37.661164],[65.588948,37.305217],[64.746105,37.111818],[64.546479,36.312073],[63.982896,36.007957],[63.193538,35.857166],[62.984662,35.404041],[62.230651,35.270664],[61.210817,35.650072]]]},"type":"Feature","id":"TKM","properties":{"name":"Turkmenistan","id":"TKM","centroid":[57.5,38]}},{"geometry":{"type":"Polygon","coordinates":[[[124.968682,-8.89279],[125.086246,-8.656887],[125.947072,-8.432095],[126.644704,-8.398247],[126.957243,-8.273345],[127.335928,-8.397317],[126.967992,-8.668256],[125.925885,-9.106007],[125.08852,-9.393173],[125.07002,-9.089987],[124.968682,-8.89279]]]},"type":"Feature","id":"TLS","properties":{"name":"East Timor","id":"TLS","centroid":[125.34,-8.29]}},{"geometry":{"type":"Polygon","coordinates":[[[-61.68,10.76],[-61.105,10.89],[-60.895,10.855],[-60.935,10.11],[-61.77,10],[-61.95,10.09],[-61.66,10.365],[-61.68,10.76]]]},"type":"Feature","id":"TTO","properties":{"name":"Trinidad and Tobago","id":"TTO","centroid":[-61.31,10.4]}},{"geometry":{"type":"Polygon","coordinates":[[[9.48214,30.307556],[9.055603,32.102692],[8.439103,32.506285],[8.430473,32.748337],[7.612642,33.344115],[7.524482,34.097376],[8.140981,34.655146],[8.376368,35.479876],[8.217824,36.433177],[8.420964,36.946427],[9.509994,37.349994],[10.210002,37.230002],[10.18065,36.724038],[11.028867,37.092103],[11.100026,36.899996],[10.600005,36.41],[10.593287,35.947444],[10.939519,35.698984],[10.807847,34.833507],[10.149593,34.330773],[10.339659,33.785742],[10.856836,33.76874],[11.108501,33.293343],[11.488787,33.136996],[11.432253,32.368903],[10.94479,32.081815],[10.636901,31.761421],[9.950225,31.37607],[10.056575,30.961831],[9.970017,30.539325],[9.48214,30.307556]]]},"type":"Feature","id":"TUN","properties":{"name":"Tunisia","id":"TUN","centroid":[10.11,36.5]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[36.913127,41.335358],[38.347665,40.948586],[39.512607,41.102763],[40.373433,41.013673],[41.554084,41.535656],[42.619549,41.583173],[43.582746,41.092143],[43.752658,40.740201],[43.656436,40.253564],[44.400009,40.005],[44.79399,39.713003],[44.109225,39.428136],[44.421403,38.281281],[44.225756,37.971584],[44.772699,37.170445],[44.293452,37.001514],[43.942259,37.256228],[42.779126,37.385264],[42.349591,37.229873],[41.212089,37.074352],[40.673259,37.091276],[39.52258,36.716054],[38.699891,36.712927],[38.167727,36.90121],[37.066761,36.623036],[36.739494,36.81752],[36.685389,36.259699],[36.41755,36.040617],[36.149763,35.821535],[35.782085,36.274995],[36.160822,36.650606],[35.550936,36.565443],[34.714553,36.795532],[34.026895,36.21996],[32.509158,36.107564],[31.699595,36.644275],[30.621625,36.677865],[30.391096,36.262981],[29.699976,36.144357],[28.732903,36.676831],[27.641187,36.658822],[27.048768,37.653361],[26.318218,38.208133],[26.8047,38.98576],[26.170785,39.463612],[27.28002,40.420014],[28.819978,40.460011],[29.240004,41.219991],[31.145934,41.087622],[32.347979,41.736264],[33.513283,42.01896],[35.167704,42.040225],[36.913127,41.335358]]],[[[27.192377,40.690566],[26.358009,40.151994],[26.043351,40.617754],[26.056942,40.824123],[26.294602,40.936261],[26.604196,41.562115],[26.117042,41.826905],[27.135739,42.141485],[27.99672,42.007359],[28.115525,41.622886],[28.988443,41.299934],[28.806438,41.054962],[27.619017,40.999823],[27.192377,40.690566]]]]},"type":"Feature","id":"TUR","properties":{"name":"Turkey","id":"TUR","centroid":[32.54,39.57]}},{"geometry":{"type":"Polygon","coordinates":[[[33.903711,-0.95],[34.07262,-1.05982],[37.69869,-3.09699],[37.7669,-3.67712],[39.20222,-4.67677],[38.74054,-5.90895],[38.79977,-6.47566],[39.44,-6.84],[39.47,-7.1],[39.19469,-7.7039],[39.25203,-8.00781],[39.18652,-8.48551],[39.53574,-9.11237],[39.9496,-10.0984],[40.31659,-10.3171],[39.521,-10.89688],[38.427557,-11.285202],[37.82764,-11.26879],[37.47129,-11.56876],[36.775151,-11.594537],[36.514082,-11.720938],[35.312398,-11.439146],[34.559989,-11.52002],[34.28,-10.16],[33.940838,-9.693674],[33.73972,-9.41715],[32.759375,-9.230599],[32.191865,-8.930359],[31.556348,-8.762049],[31.157751,-8.594579],[30.74,-8.34],[30.2,-7.08],[29.62,-6.52],[29.419993,-5.939999],[29.519987,-5.419979],[29.339998,-4.499983],[29.753512,-4.452389],[30.11632,-4.09012],[30.50554,-3.56858],[30.75224,-3.35931],[30.74301,-3.03431],[30.52766,-2.80762],[30.46967,-2.41383],[30.758309,-2.28725],[30.816135,-1.698914],[30.419105,-1.134659],[30.76986,-1.01455],[31.86617,-1.02736],[33.903711,-0.95]]]},"type":"Feature","id":"TZA","properties":{"name":"United Republic of Tanzania","id":"TZA","centroid":[35.45,-6.08]}},{"geometry":{"type":"Polygon","coordinates":[[[31.86617,-1.02736],[30.76986,-1.01455],[30.419105,-1.134659],[29.821519,-1.443322],[29.579466,-1.341313],[29.587838,-0.587406],[29.8195,-0.2053],[29.875779,0.59738],[30.086154,1.062313],[30.468508,1.583805],[30.85267,1.849396],[31.174149,2.204465],[30.77332,2.33989],[30.83385,3.50917],[31.24556,3.7819],[31.88145,3.55827],[32.68642,3.79232],[33.39,3.79],[34.005,4.249885],[34.47913,3.5556],[34.59607,3.05374],[35.03599,1.90584],[34.6721,1.17694],[34.18,0.515],[33.893569,0.109814],[33.903711,-0.95],[31.86617,-1.02736]]]},"type":"Feature","id":"UGA","properties":{"name":"Uganda","id":"UGA","centroid":[32.3,0.2]}},{"geometry":{"type":"Polygon","coordinates":[[[31.785998,52.101678],[32.159412,52.061267],[32.412058,52.288695],[32.715761,52.238465],[33.7527,52.335075],[34.391731,51.768882],[34.141978,51.566413],[34.224816,51.255993],[35.022183,51.207572],[35.377924,50.773955],[35.356116,50.577197],[36.626168,50.225591],[37.39346,50.383953],[38.010631,49.915662],[38.594988,49.926462],[40.069058,49.601055],[40.080789,49.30743],[39.674664,48.783818],[39.895632,48.232405],[39.738278,47.898937],[38.770585,47.825608],[38.255112,47.5464],[38.223538,47.10219],[37.425137,47.022221],[36.759855,46.6987],[35.823685,46.645964],[34.962342,46.273197],[35.020788,45.651219],[35.510009,45.409993],[36.529998,45.46999],[36.334713,45.113216],[35.239999,44.939996],[33.882511,44.361479],[33.326421,44.564877],[33.546924,45.034771],[32.454174,45.327466],[32.630804,45.519186],[33.588162,45.851569],[33.298567,46.080598],[31.74414,46.333348],[31.675307,46.706245],[30.748749,46.5831],[30.377609,46.03241],[29.603289,45.293308],[29.149725,45.464925],[28.679779,45.304031],[28.233554,45.488283],[28.485269,45.596907],[28.659987,45.939987],[28.933717,46.25883],[28.862972,46.437889],[29.072107,46.517678],[29.170654,46.379262],[29.759972,46.349988],[30.024659,46.423937],[29.83821,46.525326],[29.908852,46.674361],[29.559674,46.928583],[29.415135,47.346645],[29.050868,47.510227],[29.122698,47.849095],[28.670891,48.118149],[28.259547,48.155562],[27.522537,48.467119],[26.857824,48.368211],[26.619337,48.220726],[26.19745,48.220881],[25.945941,47.987149],[25.207743,47.891056],[24.866317,47.737526],[24.402056,47.981878],[23.760958,47.985598],[23.142236,48.096341],[22.710531,47.882194],[22.64082,48.15024],[22.085608,48.422264],[22.280842,48.825392],[22.558138,49.085738],[22.776419,49.027395],[22.51845,49.476774],[23.426508,50.308506],[23.922757,50.424881],[24.029986,50.705407],[23.527071,51.578454],[24.005078,51.617444],[24.553106,51.888461],[25.327788,51.910656],[26.337959,51.832289],[27.454066,51.592303],[28.241615,51.572227],[28.617613,51.427714],[28.992835,51.602044],[29.254938,51.368234],[30.157364,51.416138],[30.555117,51.319503],[30.619454,51.822806],[30.927549,52.042353],[31.785998,52.101678]]]},"type":"Feature","id":"UKR","properties":{"name":"Ukraine","id":"UKR","centroid":[30.28,50.3]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.976026,-30.109686],[-55.973245,-30.883076],[-55.60151,-30.853879],[-54.572452,-31.494511],[-53.787952,-32.047243],[-53.209589,-32.727666],[-53.650544,-33.202004],[-53.373662,-33.768378],[-53.806426,-34.396815],[-54.935866,-34.952647],[-55.67409,-34.752659],[-56.215297,-34.859836],[-57.139685,-34.430456],[-57.817861,-34.462547],[-58.427074,-33.909454],[-58.349611,-33.263189],[-58.132648,-33.040567],[-58.14244,-32.044504],[-57.874937,-31.016556],[-57.625133,-30.216295]]]},"type":"Feature","id":"URY","properties":{"name":"Uruguay","id":"URY","centroid":[-56.11,-34.5]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.54211,19.08348],[-155.68817,18.91619],[-155.93665,19.05939],[-155.90806,19.33888],[-156.07347,19.70294],[-156.02368,19.81422],[-155.85008,19.97729],[-155.91907,20.17395],[-155.86108,20.26721],[-155.78505,20.2487],[-155.40214,20.07975],[-155.22452,19.99302],[-155.06226,19.8591],[-154.80741,19.50871],[-154.83147,19.45328],[-155.22217,19.23972],[-155.54211,19.08348]]],[[[-156.07926,20.64397],[-156.41445,20.57241],[-156.58673,20.783],[-156.70167,20.8643],[-156.71055,20.92676],[-156.61258,21.01249],[-156.25711,20.91745],[-155.99566,20.76404],[-156.07926,20.64397]]],[[[-156.75824,21.17684],[-156.78933,21.06873],[-157.32521,21.09777],[-157.25027,21.21958],[-156.75824,21.17684]]],[[[-157.65283,21.32217],[-157.70703,21.26442],[-157.7786,21.27729],[-158.12667,21.31244],[-158.2538,21.53919],[-158.29265,21.57912],[-158.0252,21.71696],[-157.94161,21.65272],[-157.65283,21.32217]]],[[[-159.34512,21.982],[-159.46372,21.88299],[-159.80051,22.06533],[-159.74877,22.1382],[-159.5962,22.23618],[-159.36569,22.21494],[-159.34512,21.982]]],[[[-94.81758,49.38905],[-94.64,48.84],[-94.32914,48.67074],[-93.63087,48.60926],[-92.61,48.45],[-91.64,48.14],[-90.83,48.27],[-89.6,48.01],[-89.272917,48.019808],[-88.378114,48.302918],[-87.439793,47.94],[-86.461991,47.553338],[-85.652363,47.220219],[-84.87608,46.900083],[-84.779238,46.637102],[-84.543749,46.538684],[-84.6049,46.4396],[-84.3367,46.40877],[-84.14212,46.512226],[-84.091851,46.275419],[-83.890765,46.116927],[-83.616131,46.116927],[-83.469551,45.994686],[-83.592851,45.816894],[-82.550925,45.347517],[-82.337763,44.44],[-82.137642,43.571088],[-82.43,42.98],[-82.9,42.43],[-83.12,42.08],[-83.142,41.975681],[-83.02981,41.832796],[-82.690089,41.675105],[-82.439278,41.675105],[-81.277747,42.209026],[-80.247448,42.3662],[-78.939362,42.863611],[-78.92,42.965],[-79.01,43.27],[-79.171674,43.466339],[-78.72028,43.625089],[-77.737885,43.629056],[-76.820034,43.628784],[-76.5,44.018459],[-76.375,44.09631],[-75.31821,44.81645],[-74.867,45.00048],[-73.34783,45.00738],[-71.50506,45.0082],[-71.405,45.255],[-71.08482,45.30524],[-70.66,45.46],[-70.305,45.915],[-69.99997,46.69307],[-69.237216,47.447781],[-68.905,47.185],[-68.23444,47.35486],[-67.79046,47.06636],[-67.79134,45.70281],[-67.13741,45.13753],[-66.96466,44.8097],[-68.03252,44.3252],[-69.06,43.98],[-70.11617,43.68405],[-70.645476,43.090238],[-70.81489,42.8653],[-70.825,42.335],[-70.495,41.805],[-70.08,41.78],[-70.185,42.145],[-69.88497,41.92283],[-69.96503,41.63717],[-70.64,41.475],[-71.12039,41.49445],[-71.86,41.32],[-72.295,41.27],[-72.87643,41.22065],[-73.71,40.931102],[-72.24126,41.11948],[-71.945,40.93],[-73.345,40.63],[-73.982,40.628],[-73.952325,40.75075],[-74.25671,40.47351],[-73.96244,40.42763],[-74.17838,39.70926],[-74.90604,38.93954],[-74.98041,39.1964],[-75.20002,39.24845],[-75.52805,39.4985],[-75.32,38.96],[-75.071835,38.782032],[-75.05673,38.40412],[-75.37747,38.01551],[-75.94023,37.21689],[-76.03127,37.2566],[-75.72205,37.93705],[-76.23287,38.319215],[-76.35,39.15],[-76.542725,38.717615],[-76.32933,38.08326],[-76.989998,38.239992],[-76.30162,37.917945],[-76.25874,36.9664],[-75.9718,36.89726],[-75.86804,36.55125],[-75.72749,35.55074],[-76.36318,34.80854],[-77.397635,34.51201],[-78.05496,33.92547],[-78.55435,33.86133],[-79.06067,33.49395],[-79.20357,33.15839],[-80.301325,32.509355],[-80.86498,32.0333],[-81.33629,31.44049],[-81.49042,30.72999],[-81.31371,30.03552],[-80.98,29.18],[-80.535585,28.47213],[-80.53,28.04],[-80.056539,26.88],[-80.088015,26.205765],[-80.13156,25.816775],[-80.38103,25.20616],[-80.68,25.08],[-81.17213,25.20126],[-81.33,25.64],[-81.71,25.87],[-82.24,26.73],[-82.70515,27.49504],[-82.85526,27.88624],[-82.65,28.55],[-82.93,29.1],[-83.70959,29.93656],[-84.1,30.09],[-85.10882,29.63615],[-85.28784,29.68612],[-85.7731,30.15261],[-86.4,30.4],[-87.53036,30.27433],[-88.41782,30.3849],[-89.18049,30.31598],[-89.593831,30.159994],[-89.413735,29.89419],[-89.43,29.48864],[-89.21767,29.29108],[-89.40823,29.15961],[-89.77928,29.30714],[-90.15463,29.11743],[-90.880225,29.148535],[-91.626785,29.677],[-92.49906,29.5523],[-93.22637,29.78375],[-93.84842,29.71363],[-94.69,29.48],[-95.60026,28.73863],[-96.59404,28.30748],[-97.14,27.83],[-97.37,27.38],[-97.38,26.69],[-97.33,26.21],[-97.14,25.87],[-97.53,25.84],[-98.24,26.06],[-99.02,26.37],[-99.3,26.84],[-99.52,27.54],[-100.11,28.11],[-100.45584,28.69612],[-100.9576,29.38071],[-101.6624,29.7793],[-102.48,29.76],[-103.11,28.97],[-103.94,29.27],[-104.45697,29.57196],[-104.70575,30.12173],[-105.03737,30.64402],[-105.63159,31.08383],[-106.1429,31.39995],[-106.50759,31.75452],[-108.24,31.754854],[-108.24194,31.34222],[-109.035,31.34194],[-111.02361,31.33472],[-113.30498,32.03914],[-114.815,32.52528],[-114.72139,32.72083],[-115.99135,32.61239],[-117.12776,32.53534],[-117.295938,33.046225],[-117.944,33.621236],[-118.410602,33.740909],[-118.519895,34.027782],[-119.081,34.078],[-119.438841,34.348477],[-120.36778,34.44711],[-120.62286,34.60855],[-120.74433,35.15686],[-121.71457,36.16153],[-122.54747,37.55176],[-122.51201,37.78339],[-122.95319,38.11371],[-123.7272,38.95166],[-123.86517,39.76699],[-124.39807,40.3132],[-124.17886,41.14202],[-124.2137,41.99964],[-124.53284,42.76599],[-124.14214,43.70838],[-124.020535,44.615895],[-123.89893,45.52341],[-124.079635,46.86475],[-124.39567,47.72017],[-124.68721,48.184433],[-124.566101,48.379715],[-123.12,48.04],[-122.58736,47.096],[-122.34,47.36],[-122.5,48.18],[-122.84,49],[-120,49],[-117.03121,49],[-116.04818,49],[-113,49],[-110.05,49],[-107.05,49],[-104.04826,48.99986],[-100.65,49],[-97.22872,49.0007],[-95.15907,49],[-95.15609,49.38425],[-94.81758,49.38905]]],[[[-153.006314,57.115842],[-154.00509,56.734677],[-154.516403,56.992749],[-154.670993,57.461196],[-153.76278,57.816575],[-153.228729,57.968968],[-152.564791,57.901427],[-152.141147,57.591059],[-153.006314,57.115842]]],[[[-165.579164,59.909987],[-166.19277,59.754441],[-166.848337,59.941406],[-167.455277,60.213069],[-166.467792,60.38417],[-165.67443,60.293607],[-165.579164,59.909987]]],[[[-171.731657,63.782515],[-171.114434,63.592191],[-170.491112,63.694975],[-169.682505,63.431116],[-168.689439,63.297506],[-168.771941,63.188598],[-169.52944,62.976931],[-170.290556,63.194438],[-170.671386,63.375822],[-171.553063,63.317789],[-171.791111,63.405846],[-171.731657,63.782515]]],[[[-155.06779,71.147776],[-154.344165,70.696409],[-153.900006,70.889989],[-152.210006,70.829992],[-152.270002,70.600006],[-150.739992,70.430017],[-149.720003,70.53001],[-147.613362,70.214035],[-145.68999,70.12001],[-144.920011,69.989992],[-143.589446,70.152514],[-142.07251,69.851938],[-140.985988,69.711998],[-140.985988,69.711998],[-140.992499,66.000029],[-140.99777,60.306397],[-140.012998,60.276838],[-139.039,60.000007],[-138.34089,59.56211],[-137.4525,58.905],[-136.47972,59.46389],[-135.47583,59.78778],[-134.945,59.27056],[-134.27111,58.86111],[-133.355549,58.410285],[-132.73042,57.69289],[-131.70781,56.55212],[-130.00778,55.91583],[-129.979994,55.284998],[-130.53611,54.802753],[-131.085818,55.178906],[-131.967211,55.497776],[-132.250011,56.369996],[-133.539181,57.178887],[-134.078063,58.123068],[-135.038211,58.187715],[-136.628062,58.212209],[-137.800006,58.499995],[-139.867787,59.537762],[-140.825274,59.727517],[-142.574444,60.084447],[-143.958881,59.99918],[-145.925557,60.45861],[-147.114374,60.884656],[-148.224306,60.672989],[-148.018066,59.978329],[-148.570823,59.914173],[-149.727858,59.705658],[-150.608243,59.368211],[-151.716393,59.155821],[-151.859433,59.744984],[-151.409719,60.725803],[-150.346941,61.033588],[-150.621111,61.284425],[-151.895839,60.727198],[-152.57833,60.061657],[-154.019172,59.350279],[-153.287511,58.864728],[-154.232492,58.146374],[-155.307491,57.727795],[-156.308335,57.422774],[-156.556097,56.979985],[-158.117217,56.463608],[-158.433321,55.994154],[-159.603327,55.566686],[-160.28972,55.643581],[-161.223048,55.364735],[-162.237766,55.024187],[-163.069447,54.689737],[-164.785569,54.404173],[-164.942226,54.572225],[-163.84834,55.039431],[-162.870001,55.348043],[-161.804175,55.894986],[-160.563605,56.008055],[-160.07056,56.418055],[-158.684443,57.016675],[-158.461097,57.216921],[-157.72277,57.570001],[-157.550274,58.328326],[-157.041675,58.918885],[-158.194731,58.615802],[-158.517218,58.787781],[-159.058606,58.424186],[-159.711667,58.93139],[-159.981289,58.572549],[-160.355271,59.071123],[-161.355003,58.670838],[-161.968894,58.671665],[-162.054987,59.266925],[-161.874171,59.633621],[-162.518059,59.989724],[-163.818341,59.798056],[-164.662218,60.267484],[-165.346388,60.507496],[-165.350832,61.073895],[-166.121379,61.500019],[-165.734452,62.074997],[-164.919179,62.633076],[-164.562508,63.146378],[-163.753332,63.219449],[-163.067224,63.059459],[-162.260555,63.541936],[-161.53445,63.455817],[-160.772507,63.766108],[-160.958335,64.222799],[-161.518068,64.402788],[-160.777778,64.788604],[-161.391926,64.777235],[-162.45305,64.559445],[-162.757786,64.338605],[-163.546394,64.55916],[-164.96083,64.446945],[-166.425288,64.686672],[-166.845004,65.088896],[-168.11056,65.669997],[-166.705271,66.088318],[-164.47471,66.57666],[-163.652512,66.57666],[-163.788602,66.077207],[-161.677774,66.11612],[-162.489715,66.735565],[-163.719717,67.116395],[-164.430991,67.616338],[-165.390287,68.042772],[-166.764441,68.358877],[-166.204707,68.883031],[-164.430811,68.915535],[-163.168614,69.371115],[-162.930566,69.858062],[-161.908897,70.33333],[-160.934797,70.44769],[-159.039176,70.891642],[-158.119723,70.824721],[-156.580825,71.357764],[-155.06779,71.147776]]]]},"type":"Feature","id":"USA","properties":{"name":"United States of America","id":"USA","centroid":[-77.02,39.91]}},{"geometry":{"type":"Polygon","coordinates":[[[66.518607,37.362784],[66.54615,37.974685],[65.215999,38.402695],[64.170223,38.892407],[63.518015,39.363257],[62.37426,40.053886],[61.882714,41.084857],[61.547179,41.26637],[60.465953,41.220327],[60.083341,41.425146],[59.976422,42.223082],[58.629011,42.751551],[57.78653,42.170553],[56.932215,41.826026],[57.096391,41.32231],[55.968191,41.308642],[55.928917,44.995858],[58.503127,45.586804],[58.689989,45.500014],[60.239972,44.784037],[61.05832,44.405817],[62.0133,43.504477],[63.185787,43.650075],[64.900824,43.728081],[66.098012,42.99766],[66.023392,41.994646],[66.510649,41.987644],[66.714047,41.168444],[67.985856,41.135991],[68.259896,40.662325],[68.632483,40.668681],[69.070027,41.384244],[70.388965,42.081308],[70.962315,42.266154],[71.259248,42.167711],[70.420022,41.519998],[71.157859,41.143587],[71.870115,41.3929],[73.055417,40.866033],[71.774875,40.145844],[71.014198,40.244366],[70.601407,40.218527],[70.45816,40.496495],[70.666622,40.960213],[69.329495,40.727824],[69.011633,40.086158],[68.536416,39.533453],[67.701429,39.580478],[67.44222,39.140144],[68.176025,38.901553],[68.392033,38.157025],[67.83,37.144994],[67.075782,37.356144],[66.518607,37.362784]]]},"type":"Feature","id":"UZB","properties":{"name":"Uzbekistan","id":"UZB","centroid":[69.1,41.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.331584,11.776284],[-71.360006,11.539994],[-71.94705,11.423282],[-71.620868,10.96946],[-71.633064,10.446494],[-72.074174,9.865651],[-71.695644,9.072263],[-71.264559,9.137195],[-71.039999,9.859993],[-71.350084,10.211935],[-71.400623,10.968969],[-70.155299,11.375482],[-70.293843,11.846822],[-69.943245,12.162307],[-69.5843,11.459611],[-68.882999,11.443385],[-68.233271,10.885744],[-68.194127,10.554653],[-67.296249,10.545868],[-66.227864,10.648627],[-65.655238,10.200799],[-64.890452,10.077215],[-64.329479,10.389599],[-64.318007,10.641418],[-63.079322,10.701724],[-61.880946,10.715625],[-62.730119,10.420269],[-62.388512,9.948204],[-61.588767,9.873067],[-60.830597,9.38134],[-60.671252,8.580174],[-60.150096,8.602757],[-59.758285,8.367035],[-60.550588,7.779603],[-60.637973,7.415],[-60.295668,7.043911],[-60.543999,6.856584],[-61.159336,6.696077],[-61.139415,6.234297],[-61.410303,5.959068],[-60.733574,5.200277],[-60.601179,4.918098],[-60.966893,4.536468],[-62.08543,4.162124],[-62.804533,4.006965],[-63.093198,3.770571],[-63.888343,4.02053],[-64.628659,4.148481],[-64.816064,4.056445],[-64.368494,3.79721],[-64.408828,3.126786],[-64.269999,2.497006],[-63.422867,2.411068],[-63.368788,2.2009],[-64.083085,1.916369],[-64.199306,1.492855],[-64.611012,1.328731],[-65.354713,1.095282],[-65.548267,0.789254],[-66.325765,0.724452],[-66.876326,1.253361],[-67.181294,2.250638],[-67.447092,2.600281],[-67.809938,2.820655],[-67.303173,3.318454],[-67.337564,3.542342],[-67.621836,3.839482],[-67.823012,4.503937],[-67.744697,5.221129],[-67.521532,5.55687],[-67.34144,6.095468],[-67.695087,6.267318],[-68.265052,6.153268],[-68.985319,6.206805],[-69.38948,6.099861],[-70.093313,6.960376],[-70.674234,7.087785],[-71.960176,6.991615],[-72.198352,7.340431],[-72.444487,7.423785],[-72.479679,7.632506],[-72.360901,8.002638],[-72.439862,8.405275],[-72.660495,8.625288],[-72.78873,9.085027],[-73.304952,9.152],[-73.027604,9.73677],[-72.905286,10.450344],[-72.614658,10.821975],[-72.227575,11.108702],[-71.973922,11.608672],[-71.331584,11.776284]]]},"type":"Feature","id":"VEN","properties":{"name":"Venezuela","id":"VEN","centroid":[-66.55,10.3]}},{"geometry":{"type":"Polygon","coordinates":[[[108.05018,21.55238],[106.715068,20.696851],[105.881682,19.75205],[105.662006,19.058165],[106.426817,18.004121],[107.361954,16.697457],[108.269495,16.079742],[108.877107,15.276691],[109.33527,13.426028],[109.200136,11.666859],[108.36613,11.008321],[107.220929,10.364484],[106.405113,9.53084],[105.158264,8.59976],[104.795185,9.241038],[105.076202,9.918491],[104.334335,10.486544],[105.199915,10.88931],[106.24967,10.961812],[105.810524,11.567615],[107.491403,12.337206],[107.614548,13.535531],[107.382727,14.202441],[107.564525,15.202173],[107.312706,15.908538],[106.556008,16.604284],[105.925762,17.485315],[105.094598,18.666975],[103.896532,19.265181],[104.183388,19.624668],[104.822574,19.886642],[104.435,20.758733],[103.203861,20.766562],[102.754896,21.675137],[102.170436,22.464753],[102.706992,22.708795],[103.504515,22.703757],[104.476858,22.81915],[105.329209,23.352063],[105.811247,22.976892],[106.725403,22.794268],[106.567273,22.218205],[107.04342,21.811899],[108.05018,21.55238]]]},"type":"Feature","id":"VNM","properties":{"name":"Vietnam","id":"VNM","centroid":[105.55,21.05]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.844877,-16.466333],[167.515181,-16.59785],[167.180008,-16.159995],[167.216801,-15.891846],[167.844877,-16.466333]]],[[[167.107712,-14.93392],[167.270028,-15.740021],[167.001207,-15.614602],[166.793158,-15.668811],[166.649859,-15.392704],[166.629137,-14.626497],[167.107712,-14.93392]]]]},"type":"Feature","id":"VUT","properties":{"name":"Vanuatu","id":"VUT","centroid":[168.18,-17.45]}},{"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.545252,31.782505],[35.397561,31.489086],[34.927408,31.353435],[34.970507,31.616778],[35.225892,31.754341],[34.974641,31.866582],[35.18393,32.532511],[35.545665,32.393992]]]},"type":"Feature","id":"PSE","properties":{"name":"West Bank","id":"PSE","centroid":[35.14,31.47]}},{"geometry":{"type":"Polygon","coordinates":[[[53.108573,16.651051],[52.385206,16.382411],[52.191729,15.938433],[52.168165,15.59742],[51.172515,15.17525],[49.574576,14.708767],[48.679231,14.003202],[48.238947,13.94809],[47.938914,14.007233],[47.354454,13.59222],[46.717076,13.399699],[45.877593,13.347764],[45.62505,13.290946],[45.406459,13.026905],[45.144356,12.953938],[44.989533,12.699587],[44.494576,12.721653],[44.175113,12.58595],[43.482959,12.6368],[43.222871,13.22095],[43.251448,13.767584],[43.087944,14.06263],[42.892245,14.802249],[42.604873,15.213335],[42.805015,15.261963],[42.702438,15.718886],[42.823671,15.911742],[42.779332,16.347891],[43.218375,16.66689],[43.115798,17.08844],[43.380794,17.579987],[43.791519,17.319977],[44.062613,17.410359],[45.216651,17.433329],[45.399999,17.333335],[46.366659,17.233315],[46.749994,17.283338],[47.000005,16.949999],[47.466695,17.116682],[48.183344,18.166669],[49.116672,18.616668],[52.00001,19.000003],[52.782184,17.349742],[53.108573,16.651051]]]},"type":"Feature","id":"YEM","properties":{"name":"Yemen","id":"YEM","centroid":[44.2,15.35]}},{"geometry":{"type":"Polygon","coordinates":[[[31.521001,-29.257387],[31.325561,-29.401978],[30.901763,-29.909957],[30.622813,-30.423776],[30.055716,-31.140269],[28.925553,-32.172041],[28.219756,-32.771953],[27.464608,-33.226964],[26.419452,-33.61495],[25.909664,-33.66704],[25.780628,-33.944646],[25.172862,-33.796851],[24.677853,-33.987176],[23.594043,-33.794474],[22.988189,-33.916431],[22.574157,-33.864083],[21.542799,-34.258839],[20.689053,-34.417175],[20.071261,-34.795137],[19.616405,-34.819166],[19.193278,-34.462599],[18.855315,-34.444306],[18.424643,-33.997873],[18.377411,-34.136521],[18.244499,-33.867752],[18.25008,-33.281431],[17.92519,-32.611291],[18.24791,-32.429131],[18.221762,-31.661633],[17.566918,-30.725721],[17.064416,-29.878641],[17.062918,-29.875954],[16.344977,-28.576705],[16.824017,-28.082162],[17.218929,-28.355943],[17.387497,-28.783514],[17.836152,-28.856378],[18.464899,-29.045462],[19.002127,-28.972443],[19.894734,-28.461105],[19.895768,-24.76779],[20.165726,-24.917962],[20.758609,-25.868136],[20.66647,-26.477453],[20.889609,-26.828543],[21.605896,-26.726534],[22.105969,-26.280256],[22.579532,-25.979448],[22.824271,-25.500459],[23.312097,-25.26869],[23.73357,-25.390129],[24.211267,-25.670216],[25.025171,-25.71967],[25.664666,-25.486816],[25.765849,-25.174845],[25.941652,-24.696373],[26.485753,-24.616327],[26.786407,-24.240691],[27.11941,-23.574323],[28.017236,-22.827754],[29.432188,-22.091313],[29.839037,-22.102216],[30.322883,-22.271612],[30.659865,-22.151567],[31.191409,-22.25151],[31.670398,-23.658969],[31.930589,-24.369417],[31.752408,-25.484284],[31.837778,-25.843332],[31.333158,-25.660191],[31.04408,-25.731452],[30.949667,-26.022649],[30.676609,-26.398078],[30.685962,-26.743845],[31.282773,-27.285879],[31.86806,-27.177927],[32.071665,-26.73382],[32.83012,-26.742192],[32.580265,-27.470158],[32.462133,-28.301011],[32.203389,-28.752405],[31.521001,-29.257387]],[[28.978263,-28.955597],[28.5417,-28.647502],[28.074338,-28.851469],[27.532511,-29.242711],[26.999262,-29.875954],[27.749397,-30.645106],[28.107205,-30.545732],[28.291069,-30.226217],[28.8484,-30.070051],[29.018415,-29.743766],[29.325166,-29.257387],[28.978263,-28.955597]]]},"type":"Feature","id":"ZAF","properties":{"name":"South Africa","id":"ZAF","centroid":[28.11,-25.44]}},{"geometry":{"type":"Polygon","coordinates":[[[32.759375,-9.230599],[33.231388,-9.676722],[33.485688,-10.525559],[33.31531,-10.79655],[33.114289,-11.607198],[33.306422,-12.435778],[32.991764,-12.783871],[32.688165,-13.712858],[33.214025,-13.97186],[30.179481,-14.796099],[30.274256,-15.507787],[29.516834,-15.644678],[28.947463,-16.043051],[28.825869,-16.389749],[28.467906,-16.4684],[27.598243,-17.290831],[27.044427,-17.938026],[26.706773,-17.961229],[26.381935,-17.846042],[25.264226,-17.73654],[25.084443,-17.661816],[25.07695,-17.578823],[24.682349,-17.353411],[24.033862,-17.295843],[23.215048,-17.523116],[22.562478,-16.898451],[21.887843,-16.08031],[21.933886,-12.898437],[24.016137,-12.911046],[23.930922,-12.565848],[24.079905,-12.191297],[23.904154,-11.722282],[24.017894,-11.237298],[23.912215,-10.926826],[24.257155,-10.951993],[24.314516,-11.262826],[24.78317,-11.238694],[25.418118,-11.330936],[25.75231,-11.784965],[26.553088,-11.92444],[27.16442,-11.608748],[27.388799,-12.132747],[28.155109,-12.272481],[28.523562,-12.698604],[28.934286,-13.248958],[29.699614,-13.257227],[29.616001,-12.178895],[29.341548,-12.360744],[28.642417,-11.971569],[28.372253,-11.793647],[28.49607,-10.789884],[28.673682,-9.605925],[28.449871,-9.164918],[28.734867,-8.526559],[29.002912,-8.407032],[30.346086,-8.238257],[30.740015,-8.340007],[31.157751,-8.594579],[31.556348,-8.762049],[32.191865,-8.930359],[32.759375,-9.230599]]]},"type":"Feature","id":"ZMB","properties":{"name":"Zambia","id":"ZMB","centroid":[28.16,-15.28]}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"type":"Feature","id":"SGP","properties":{"childNum":1,"name":"Singapore","id":"SGP","centroid":[103.51,1.18]}},{"geometry":{"type":"Polygon","coordinates":[[[31.191409,-22.25151],[30.659865,-22.151567],[30.322883,-22.271612],[29.839037,-22.102216],[29.432188,-22.091313],[28.794656,-21.639454],[28.02137,-21.485975],[27.727228,-20.851802],[27.724747,-20.499059],[27.296505,-20.39152],[26.164791,-19.293086],[25.850391,-18.714413],[25.649163,-18.536026],[25.264226,-17.73654],[26.381935,-17.846042],[26.706773,-17.961229],[27.044427,-17.938026],[27.598243,-17.290831],[28.467906,-16.4684],[28.825869,-16.389749],[28.947463,-16.043051],[29.516834,-15.644678],[30.274256,-15.507787],[30.338955,-15.880839],[31.173064,-15.860944],[31.636498,-16.07199],[31.852041,-16.319417],[32.328239,-16.392074],[32.847639,-16.713398],[32.849861,-17.979057],[32.654886,-18.67209],[32.611994,-19.419383],[32.772708,-19.715592],[32.659743,-20.30429],[32.508693,-20.395292],[32.244988,-21.116489],[31.191409,-22.25151]]]},"type":"Feature","id":"ZWE","properties":{"name":"Zimbabwe","id":"ZWE","centroid":[31.02,-17.43]}}],"offset":{"y":90,"x":170}} \ No newline at end of file diff --git a/src/components/breadcrumb/index.vue b/src/components/breadcrumb/index.vue new file mode 100644 index 0000000..e4c9f13 --- /dev/null +++ b/src/components/breadcrumb/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/components/chart/index.vue b/src/components/chart/index.vue new file mode 100644 index 0000000..c60a4de --- /dev/null +++ b/src/components/chart/index.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/components/crud/index.ts b/src/components/crud/index.ts new file mode 100644 index 0000000..f4c2988 --- /dev/null +++ b/src/components/crud/index.ts @@ -0,0 +1,65 @@ +import axios from 'axios'; +import qs from 'query-string'; +import { Notification } from '@arco-design/web-vue'; +import dayjs from 'dayjs'; + +/** + * 下载 + * + * @param url URL + * @param params 查询条件 + * @param fileName 文件名 + */ +export default function download( + url: string, + params: any, + fileName: string | undefined, +) { + return axios + .get(url, { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + responseType: 'blob', + }) + .then(async (res) => { + // 获取文件名 + if (!fileName) { + const contentDisposition = res.headers['content-disposition']; + const pattern = new RegExp('filename=([^;]+\\.[^\\.;]+);*'); + const result = pattern.exec(contentDisposition) || ''; + // 对名字进行解码 + fileName = window.decodeURI(result[1]); + } else { + fileName = `${fileName}_${dayjs().format('YYYYMMDDHHmmss')}`; + } + + // 创建下载的链接 + const blob = new Blob([res.data], { + type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8', + }); + const downloadElement = document.createElement('a'); + const href = window.URL.createObjectURL(blob); + downloadElement.style.display = 'none'; + downloadElement.href = href; + // 下载后文件名 + downloadElement.download = fileName; + document.body.appendChild(downloadElement); + // 点击下载 + downloadElement.click(); + // 下载完成,移除元素 + document.body.removeChild(downloadElement); + // 释放掉 blob 对象 + window.URL.revokeObjectURL(href); + }) + .catch(() => { + Notification.warning({ + title: '警告', + content: + "由于部分模拟数据需要,前端默认启用了 Mock.js,而 Mock.js 会将 responseType 设置为 '',这不仅会导致关键判断出错,也会导致导出的文件无法打开,实际开发时自行关闭 Mock 即可。", + duration: 10000, + closable: true, + }); + }); +} diff --git a/src/components/date-range-picker/index.vue b/src/components/date-range-picker/index.vue new file mode 100644 index 0000000..382128f --- /dev/null +++ b/src/components/date-range-picker/index.vue @@ -0,0 +1,79 @@ + + + + + + + diff --git a/src/components/dict-tag/index.vue b/src/components/dict-tag/index.vue new file mode 100644 index 0000000..b52b3ba --- /dev/null +++ b/src/components/dict-tag/index.vue @@ -0,0 +1,50 @@ + + + + + + + diff --git a/src/components/footer/index.vue b/src/components/footer/index.vue new file mode 100644 index 0000000..0417f60 --- /dev/null +++ b/src/components/footer/index.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/gi-option-item/index.vue b/src/components/gi-option-item/index.vue new file mode 100644 index 0000000..fbd12db --- /dev/null +++ b/src/components/gi-option-item/index.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/components/gi-option/index.vue b/src/components/gi-option/index.vue new file mode 100644 index 0000000..85cf360 --- /dev/null +++ b/src/components/gi-option/index.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/src/components/global-setting/block.vue b/src/components/global-setting/block.vue new file mode 100644 index 0000000..be43e8c --- /dev/null +++ b/src/components/global-setting/block.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/global-setting/form-wrapper.vue b/src/components/global-setting/form-wrapper.vue new file mode 100644 index 0000000..e5d876a --- /dev/null +++ b/src/components/global-setting/form-wrapper.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/components/global-setting/index.vue b/src/components/global-setting/index.vue new file mode 100644 index 0000000..c9073af --- /dev/null +++ b/src/components/global-setting/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/components/icon-select/index.vue b/src/components/icon-select/index.vue new file mode 100644 index 0000000..885df4f --- /dev/null +++ b/src/components/icon-select/index.vue @@ -0,0 +1,99 @@ + + + + + + + diff --git a/src/components/icon-select/requireIcons.ts b/src/components/icon-select/requireIcons.ts new file mode 100644 index 0000000..4ac87a2 --- /dev/null +++ b/src/components/icon-select/requireIcons.ts @@ -0,0 +1,10 @@ +const modules = import.meta.glob('./../../assets/icons/svg/*.svg'); +const icons = [] as Array; + +// eslint-disable-next-line guard-for-in,no-restricted-syntax +for (const path in modules) { + const p = path.split('assets/icons/svg/')[1].split('.svg')[0]; + icons.push(p); +} + +export default icons; diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..b10eaeb --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,52 @@ +import { App } from 'vue'; +import { use } from 'echarts/core'; +import { CanvasRenderer } from 'echarts/renderers'; +import { BarChart, LineChart, PieChart, RadarChart } from 'echarts/charts'; +import { + GridComponent, + TooltipComponent, + LegendComponent, + DataZoomComponent, + GraphicComponent, +} from 'echarts/components'; +import Chart from './chart/index.vue'; +import Breadcrumb from './breadcrumb/index.vue'; +import DateRangePicker from './date-range-picker/index.vue'; +import DictTag from './dict-tag/index.vue'; +import RightToolbar from './right-toolbar/index.vue'; +import SvgIcon from './svg-icon/index.vue'; +import IconSelect from './icon-select/index.vue'; +import download from './crud'; +import Verify from './verifition/Verify.vue'; + +// Manually introduce ECharts modules to reduce packing size + +use([ + CanvasRenderer, + BarChart, + LineChart, + PieChart, + RadarChart, + GridComponent, + TooltipComponent, + LegendComponent, + DataZoomComponent, + GraphicComponent, +]); + +export default { + install(Vue: App) { + // 全局方法挂载 + Vue.config.globalProperties.download = download; + + // 全局组件挂载 + Vue.component('Chart', Chart); + Vue.component('Breadcrumb', Breadcrumb); + Vue.component('DateRangePicker', DateRangePicker); + Vue.component('DictTag', DictTag); + Vue.component('RightToolbar', RightToolbar); + Vue.component('SvgIcon', SvgIcon); + Vue.component('IconSelect', IconSelect); + Vue.component('Verify', Verify); + }, +}; diff --git a/src/components/menu/index.vue b/src/components/menu/index.vue new file mode 100644 index 0000000..84b60f5 --- /dev/null +++ b/src/components/menu/index.vue @@ -0,0 +1,165 @@ + + + diff --git a/src/components/menu/use-menu-tree.ts b/src/components/menu/use-menu-tree.ts new file mode 100644 index 0000000..6cf766d --- /dev/null +++ b/src/components/menu/use-menu-tree.ts @@ -0,0 +1,69 @@ +import { computed } from 'vue'; +import { RouteRecordRaw, RouteRecordNormalized } from 'vue-router'; +import usePermission from '@/hooks/permission'; +import { useAppStore } from '@/store'; +import staticMenus from '@/router/app-menus'; +import { cloneDeep } from 'lodash'; + +export default function useMenuTree() { + const permission = usePermission(); + const appStore = useAppStore(); + const appRoute = computed(() => { + if (appStore.menuFromServer) { + return [...staticMenus, ...appStore.appAsyncMenus]; + } + return staticMenus; + }); + const menuTree = computed(() => { + const copyRouter = cloneDeep(appRoute.value) as RouteRecordNormalized[]; + copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => { + return (a.meta.order || 0) - (b.meta.order || 0); + }); + function travel(_routes: RouteRecordRaw[], layer: number) { + if (!_routes) return null; + + const collector: any = _routes.map((element) => { + // no access + if (!permission.accessRouter(element)) { + return null; + } + + // leaf node + if (element.meta?.hideChildrenInMenu || !element.children) { + element.children = []; + return element; + } + + // route filter hideInMenu true + element.children = element.children.filter( + (x) => x.meta?.hideInMenu !== true, + ); + + // Associated child node + const subItem = travel(element.children, layer + 1); + + if (subItem.length) { + element.children = subItem; + return element; + } + // the else logic + if (layer > 1) { + element.children = subItem; + return element; + } + + if (element.meta?.hideInMenu === false) { + return element; + } + + return null; + }); + return collector.filter(Boolean); + } + return travel(copyRouter, 0); + }); + + return { + menuTree, + }; +} diff --git a/src/components/message-box/index.vue b/src/components/message-box/index.vue new file mode 100644 index 0000000..f8e85ce --- /dev/null +++ b/src/components/message-box/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/components/message-box/list.vue b/src/components/message-box/list.vue new file mode 100644 index 0000000..bb06f91 --- /dev/null +++ b/src/components/message-box/list.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/message-box/locale/en-US.ts b/src/components/message-box/locale/en-US.ts new file mode 100644 index 0000000..c8dae0f --- /dev/null +++ b/src/components/message-box/locale/en-US.ts @@ -0,0 +1,9 @@ +export default { + 'messageBox.tab.title.message.system': 'System Message', + 'messageBox.tab.button': 'empty', + 'messageBox.allRead': 'All Read', + 'messageBox.viewMore': 'View More', + 'messageBox.noContent': 'No Content', + 'messageBox.userCenter': 'User Center', + 'messageBox.logout': 'Logout', +}; diff --git a/src/components/message-box/locale/zh-CN.ts b/src/components/message-box/locale/zh-CN.ts new file mode 100644 index 0000000..7767b2a --- /dev/null +++ b/src/components/message-box/locale/zh-CN.ts @@ -0,0 +1,9 @@ +export default { + 'messageBox.tab.title.message.system': '系统消息', + 'messageBox.tab.button': '清空', + 'messageBox.allRead': '全部已读', + 'messageBox.viewMore': '查看更多', + 'messageBox.noContent': '暂无内容', + 'messageBox.userCenter': '个人中心', + 'messageBox.logout': '退出登录', +}; diff --git a/src/components/navbar/index.vue b/src/components/navbar/index.vue new file mode 100644 index 0000000..920ad8d --- /dev/null +++ b/src/components/navbar/index.vue @@ -0,0 +1,327 @@ + + + + + + + diff --git a/src/components/right-toolbar/index.vue b/src/components/right-toolbar/index.vue new file mode 100644 index 0000000..0a850cb --- /dev/null +++ b/src/components/right-toolbar/index.vue @@ -0,0 +1,49 @@ + + + + + + + diff --git a/src/components/svg-icon/index.vue b/src/components/svg-icon/index.vue new file mode 100644 index 0000000..7fb8806 --- /dev/null +++ b/src/components/svg-icon/index.vue @@ -0,0 +1,40 @@ + + + + + + + diff --git a/src/components/tab-bar/index.vue b/src/components/tab-bar/index.vue new file mode 100644 index 0000000..61c3ae3 --- /dev/null +++ b/src/components/tab-bar/index.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/tab-bar/readme.md b/src/components/tab-bar/readme.md new file mode 100644 index 0000000..cea5c93 --- /dev/null +++ b/src/components/tab-bar/readme.md @@ -0,0 +1,12 @@ +## 组件说明 + +该组件非官方最终设计规范,以单独组件存在。 + +同时仅仅提供最基本的功能,后续进行优化及更改。 + + +## Component description + +The component unofficial final design specification exists as a separate component. + +At the same time, only the most basic functions are provided, and subsequent optimizations and changes will be made. \ No newline at end of file diff --git a/src/components/tab-bar/tab-item.vue b/src/components/tab-bar/tab-item.vue new file mode 100644 index 0000000..bc2014d --- /dev/null +++ b/src/components/tab-bar/tab-item.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/components/verifition/Verify.vue b/src/components/verifition/Verify.vue new file mode 100644 index 0000000..9c9871b --- /dev/null +++ b/src/components/verifition/Verify.vue @@ -0,0 +1,431 @@ + + + + + diff --git a/src/components/verifition/Verify/VerifyPoints.vue b/src/components/verifition/Verify/VerifyPoints.vue new file mode 100644 index 0000000..add3899 --- /dev/null +++ b/src/components/verifition/Verify/VerifyPoints.vue @@ -0,0 +1,296 @@ + + + diff --git a/src/components/verifition/Verify/VerifySlide.vue b/src/components/verifition/Verify/VerifySlide.vue new file mode 100644 index 0000000..c648fbe --- /dev/null +++ b/src/components/verifition/Verify/VerifySlide.vue @@ -0,0 +1,462 @@ + + + diff --git a/src/components/verifition/utils/ase.js b/src/components/verifition/utils/ase.js new file mode 100644 index 0000000..9ed8376 --- /dev/null +++ b/src/components/verifition/utils/ase.js @@ -0,0 +1,14 @@ +import CryptoJS from 'crypto-js'; +/** + * @word 要加密的内容 + * @keyWord String 服务器随机返回的关键字 + * */ +export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { + const key = CryptoJS.enc.Utf8.parse(keyWord); + const arcs = CryptoJS.enc.Utf8.parse(word); + const encrypted = CryptoJS.AES.encrypt(arcs, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }); + return encrypted.toString(); +} diff --git a/src/components/verifition/utils/util.js b/src/components/verifition/utils/util.js new file mode 100644 index 0000000..901e307 --- /dev/null +++ b/src/components/verifition/utils/util.js @@ -0,0 +1,39 @@ +export function resetSize(vm) { + let img_width; + let img_height; + let bar_width; + let bar_height; // 图片的宽度、高度,移动条的宽度、高度 + + const parentWidth = vm.$el.parentNode.offsetWidth || window.offsetWidth; + const parentHeight = vm.$el.parentNode.offsetHeight || window.offsetHeight; + if (vm.imgSize.width.indexOf('%') !== -1) { + img_width = `${(parseInt(vm.imgSize.width, 10) / 100) * parentWidth}px`; + } else { + img_width = vm.imgSize.width; + } + + if (vm.imgSize.height.indexOf('%') !== -1) { + img_height = `${(parseInt(vm.imgSize.height, 10) / 100) * parentHeight}px`; + } else { + img_height = vm.imgSize.height; + } + + if (vm.barSize.width.indexOf('%') !== -1) { + bar_width = `${(parseInt(vm.barSize.width, 10) / 100) * parentWidth}px`; + } else { + bar_width = vm.barSize.width; + } + + if (vm.barSize.height.indexOf('%') !== -1) { + bar_height = `${(parseInt(vm.barSize.height, 10) / 100) * parentHeight}px`; + } else { + bar_height = vm.barSize.height; + } + + return { + imgWidth: img_width, + imgHeight: img_height, + barWidth: bar_width, + barHeight: bar_height, + }; +} diff --git a/src/config/settings.json b/src/config/settings.json new file mode 100644 index 0000000..544804a --- /dev/null +++ b/src/config/settings.json @@ -0,0 +1,18 @@ +{ + "theme": "light", + "colorWeak": false, + "navbar": true, + "menu": true, + "topMenu": false, + "menuAccordion": true, + "hideMenu": false, + "menuCollapse": false, + "footer": true, + "themeColor": "#165DFF", + "menuWidth": 220, + "globalSettings": false, + "device": "desktop", + "tabBar": false, + "menuFromServer": true, + "serverMenu": [] +} diff --git a/src/constant/file.ts b/src/constant/file.ts new file mode 100644 index 0000000..c5a0b01 --- /dev/null +++ b/src/constant/file.ts @@ -0,0 +1,47 @@ +/** @desc 文件模块-映射 */ + +export interface fileTypeListItem { + name: string; + value: number; + menuIcon: string; + icon: string; +} + +// 文件分类 +export const fileTypeList: fileTypeListItem[] = [ + { name: '全部', value: 0, menuIcon: 'menu-file', icon: 'icon-stamp' }, + { name: '图片', value: 2, menuIcon: 'file-image', icon: 'icon-file-image' }, + { name: '文档', value: 3, menuIcon: 'file-txt', icon: 'icon-file' }, + { name: '视频', value: 4, menuIcon: 'file-video', icon: 'icon-video-camera' }, + { name: '音频', value: 5, menuIcon: 'file-music', icon: 'icon-file-audio' }, + { name: '其他', value: 1, menuIcon: 'file-other', icon: 'icon-bulb' }, +]; + +export interface FileExtendNameIconMap { + [key: string]: string; +} + +// 文件类型图标 Map 映射 +export const fileExtendNameIconMap: FileExtendNameIconMap = { + mp3: 'file-music', + mp4: 'file-video', + dir: 'file-dir', + ppt: 'file-ppt', + doc: 'file-wps', + docx: 'file-wps', + xls: 'file-excel', + xlsx: 'file-excel', + txt: 'file-txt', + rar: 'file-rar', + zip: 'file-zip', + html: 'file-html', + css: 'file-css', + js: 'file-js', + other: 'file-other', // 未知文件 +}; + +// 图片类型 +export const imageTypeList = ['jpg', 'png', 'gif', 'jpeg']; + +// WPS、Office文件类型 +export const officeFileType = ['ppt', 'pptx', 'doc', 'docx', 'xls', 'xlsx']; diff --git a/src/directive/index.ts b/src/directive/index.ts new file mode 100644 index 0000000..85c567f --- /dev/null +++ b/src/directive/index.ts @@ -0,0 +1,8 @@ +import { App } from 'vue'; +import permission from './permission'; + +export default { + install(Vue: App) { + Vue.directive('permission', permission); + }, +}; diff --git a/src/directive/permission/index.ts b/src/directive/permission/index.ts new file mode 100644 index 0000000..be40136 --- /dev/null +++ b/src/directive/permission/index.ts @@ -0,0 +1,41 @@ +import { DirectiveBinding } from 'vue'; +import { useUserStore } from '@/store'; + +function checkPermission(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + const userStore = useUserStore(); + const { permissions, roles } = userStore; + const superAdmin = 'admin'; + const allPermission = '*'; + + if (Array.isArray(value) && value.length > 0) { + const permissionValues = value; + // 校验权限码 + const hasPermission = permissions.some((permission: string) => { + return ( + allPermission === permission || permissionValues.includes(permission) + ); + }); + // 检验角色编码 + const hasRole = roles.some((role: string) => { + return superAdmin === role || permissionValues.includes(role); + }); + // 如果没有权限,移除元素 + if (!hasPermission && !hasRole && el.parentNode) { + el.parentNode.removeChild(el); + } + } else { + throw new Error( + `need roles! Like v-permission="['admin','system:user:add']"`, + ); + } +} + +export default { + mounted(el: HTMLElement, binding: DirectiveBinding) { + checkPermission(el, binding); + }, + updated(el: HTMLElement, binding: DirectiveBinding) { + checkPermission(el, binding); + }, +}; diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..8908734 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,20 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} +interface ImportMetaEnv { + readonly VITE_API_BASE_URL: string; +} + +declare module '@kangc/v-md-editor'; +declare module '@kangc/v-md-editor/lib/preview'; +declare module '@kangc/v-md-editor/lib/theme/github.js'; +declare module '@kangc/v-md-editor/lib/plugins/emoji/index'; +declare module '@kangc/v-md-editor/lib/plugins/copy-code/index'; +declare module '@kangc/v-md-editor/lib/plugins/todo-list/index'; +declare module 'highlight.js'; +declare module 'highlight.js/lib/languages/json'; diff --git a/src/hooks/axios.d.ts b/src/hooks/axios.d.ts new file mode 100644 index 0000000..ea19f56 --- /dev/null +++ b/src/hooks/axios.d.ts @@ -0,0 +1,12 @@ +import axios, { Axios, AxiosResponse, AxiosRequestConfig } from 'axios'; + +declare module 'axios' { + interface AxiosResponse { + success: boolean; // 是否成功 + code: number; // 状态码 + msg: string; // 状态信息 + timestamp: string; // 时间戳 + data: T; // 返回数据 + } + export function create(config?: AxiosRequestConfig): AxiosInstance; +} diff --git a/src/hooks/chart-option.ts b/src/hooks/chart-option.ts new file mode 100644 index 0000000..13c3926 --- /dev/null +++ b/src/hooks/chart-option.ts @@ -0,0 +1,27 @@ +import { computed } from 'vue'; +import { EChartsOption } from 'echarts'; +import { useAppStore } from '@/store'; + +// for code hints +// import { SeriesOption } from 'echarts'; +// Because there are so many configuration items, this provides a relatively convenient code hint. +// When using vue, pay attention to the reactive issues. It is necessary to ensure that corresponding functions can be triggered, TypeScript does not report errors, and code writing is convenient. +interface optionsFn { + (isDark: boolean): EChartsOption; +} + +export default function useChartOption(sourceOption: optionsFn) { + const appStore = useAppStore(); + const isDark = computed(() => { + return appStore.theme === 'dark'; + }); + // echarts support https://echarts.apache.org/zh/theme-builder.html + // It's not used here + // TODO echarts themes + const chartOption = computed(() => { + return sourceOption(isDark.value); + }); + return { + chartOption, + }; +} diff --git a/src/hooks/loading.ts b/src/hooks/loading.ts new file mode 100644 index 0000000..a6f2768 --- /dev/null +++ b/src/hooks/loading.ts @@ -0,0 +1,16 @@ +import { ref } from 'vue'; + +export default function useLoading(initValue = false) { + const loading = ref(initValue); + const setLoading = (value: boolean) => { + loading.value = value; + }; + const toggle = () => { + loading.value = !loading.value; + }; + return { + loading, + setLoading, + toggle, + }; +} diff --git a/src/hooks/locale.ts b/src/hooks/locale.ts new file mode 100644 index 0000000..afe4bf7 --- /dev/null +++ b/src/hooks/locale.ts @@ -0,0 +1,22 @@ +import { computed } from 'vue'; +import { useI18n } from 'vue-i18n'; +import { Message } from '@arco-design/web-vue'; + +export default function useLocale() { + const i18 = useI18n(); + const currentLocale = computed(() => { + return i18.locale.value; + }); + const changeLocale = (value: string) => { + if (i18.locale.value === value) { + return; + } + i18.locale.value = value; + localStorage.setItem('arco-locale', value); + Message.success(i18.t('navbar.action.locale')); + }; + return { + currentLocale, + changeLocale, + }; +} diff --git a/src/hooks/permission.ts b/src/hooks/permission.ts new file mode 100644 index 0000000..3c1989a --- /dev/null +++ b/src/hooks/permission.ts @@ -0,0 +1,39 @@ +import { RouteLocationNormalized, RouteRecordRaw } from 'vue-router'; +import { useUserStore } from '@/store'; + +export default function usePermission() { + const userStore = useUserStore(); + return { + accessRouter(route: RouteLocationNormalized | RouteRecordRaw) { + return ( + !route.meta?.requiresAuth || + !route.meta?.roles || + route.meta?.roles?.includes('*') || + this.includeRole(route.meta?.roles, userStore.roles) + ); + }, + includeRole(arr1: Array, arr2: Array) { + const temp = arr1.filter((item) => { + return arr2.includes(item); + }); + return !!temp.length; + }, + findFirstPermissionRoute(_routers: any, role = 'admin') { + const cloneRouters = [..._routers]; + while (cloneRouters.length) { + const firstElement = cloneRouters.shift(); + if ( + firstElement?.meta?.roles?.find((el: string[]) => { + return el.includes('*') || el.includes(role); + }) + ) + return { name: firstElement.name }; + if (firstElement?.children) { + cloneRouters.push(...firstElement.children); + } + } + return null; + }, + // You can add any rules you want + }; +} diff --git a/src/hooks/request.ts b/src/hooks/request.ts new file mode 100644 index 0000000..c5c2f8f --- /dev/null +++ b/src/hooks/request.ts @@ -0,0 +1,26 @@ +import { ref, UnwrapRef } from 'vue'; +import { AxiosResponse } from 'axios'; +import { HttpResponse } from '@/utils/request'; +import useLoading from './loading'; + +// use to fetch list +// Don't use async function. It doesn't work in async function. +// Use the bind function to add parameters +// example: useRequest(api.bind(null, {})) + +export default function useRequest( + api: () => Promise>, + defaultValue = [] as unknown as T, + isLoading = true +) { + const { loading, setLoading } = useLoading(isLoading); + const response = ref(defaultValue); + api() + .then((res) => { + response.value = res.data as unknown as UnwrapRef; + }) + .finally(() => { + setLoading(false); + }); + return { loading, response }; +} diff --git a/src/hooks/responsive.ts b/src/hooks/responsive.ts new file mode 100644 index 0000000..eefee8e --- /dev/null +++ b/src/hooks/responsive.ts @@ -0,0 +1,32 @@ +import { onMounted, onBeforeMount, onBeforeUnmount } from 'vue'; +import { useDebounceFn } from '@vueuse/core'; +import { useAppStore } from '@/store'; +import { addEventListen, removeEventListen } from '@/utils/event'; + +const WIDTH = 992; // https://arco.design/vue/component/grid#responsivevalue + +function queryDevice() { + const rect = document.body.getBoundingClientRect(); + return rect.width - 1 < WIDTH; +} + +export default function useResponsive(immediate?: boolean) { + const appStore = useAppStore(); + function resizeHandler() { + if (!document.hidden) { + const isMobile = queryDevice(); + appStore.toggleDevice(isMobile ? 'mobile' : 'desktop'); + appStore.toggleMenu(isMobile); + } + } + const debounceFn = useDebounceFn(resizeHandler, 100); + onMounted(() => { + if (immediate) debounceFn(); + }); + onBeforeMount(() => { + addEventListen(window, 'resize', debounceFn); + }); + onBeforeUnmount(() => { + removeEventListen(window, 'resize', debounceFn); + }); +} diff --git a/src/hooks/themes.ts b/src/hooks/themes.ts new file mode 100644 index 0000000..7ce85b7 --- /dev/null +++ b/src/hooks/themes.ts @@ -0,0 +1,12 @@ +import { computed } from 'vue'; +import { useAppStore } from '@/store'; + +export default function useThemes() { + const appStore = useAppStore(); + const isDark = computed(() => { + return appStore.theme === 'dark'; + }); + return { + isDark, + }; +} diff --git a/src/hooks/user.ts b/src/hooks/user.ts new file mode 100644 index 0000000..85071ab --- /dev/null +++ b/src/hooks/user.ts @@ -0,0 +1,26 @@ +import { useRouter } from 'vue-router'; +import { useI18n } from 'vue-i18n'; +import { Notification } from '@arco-design/web-vue'; + +import { useUserStore } from '@/store'; + +export default function useUser() { + const { t } = useI18n(); + const router = useRouter(); + const userStore = useUserStore(); + const logout = async (logoutTo?: string) => { + await userStore.logout(); + const currentRoute = router.currentRoute.value; + Notification.success(t('login.logout.success')); + router.push({ + name: logoutTo && typeof logoutTo === 'string' ? logoutTo : 'login', + query: { + ...router.currentRoute.value.query, + redirect: currentRoute.name as string, + }, + }); + }; + return { + logout, + }; +} diff --git a/src/hooks/visible.ts b/src/hooks/visible.ts new file mode 100644 index 0000000..211f90d --- /dev/null +++ b/src/hooks/visible.ts @@ -0,0 +1,16 @@ +import { ref } from 'vue'; + +export default function useVisible(initValue = false) { + const visible = ref(initValue); + const setVisible = (value: boolean) => { + visible.value = value; + }; + const toggle = () => { + visible.value = !visible.value; + }; + return { + visible, + setVisible, + toggle, + }; +} diff --git a/src/layout/default-layout.vue b/src/layout/default-layout.vue new file mode 100644 index 0000000..6bc918f --- /dev/null +++ b/src/layout/default-layout.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/layout/page-layout.vue b/src/layout/page-layout.vue new file mode 100644 index 0000000..5f60b36 --- /dev/null +++ b/src/layout/page-layout.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/locale/en-US.ts b/src/locale/en-US.ts new file mode 100644 index 0000000..de93531 --- /dev/null +++ b/src/locale/en-US.ts @@ -0,0 +1,97 @@ +import localeWorkplace from '@/views/dashboard/workplace/locale/en-US'; + +import localeUser from '@/views/system/user/locale/en-US'; +import localeRole from '@/views/system/role/locale/en-US'; +import localeMenu from '@/views/system/menu/locale/en-US'; +import localeDept from '@/views/system/dept/locale/en-US'; +import localeAnnouncement from '@/views/system/announcement/locale/en-US'; +import localeMessage from '@/views/system/message/locale/en-US'; +import localeDict from '@/views/system/dict/locale/en-US'; +import localeConfig from '@/views/system/config/locale/en-US'; +import localeFile from '@/views/system/file/locale/en-US'; + +import localeGenerator from '@/views/tool/generator/locale/en-US'; + +import localeOnlineUser from '@/views/monitor/online/locale/en-US'; +import localeLoginLog from '@/views/monitor/log/login/locale/en-US'; +import localeOperationLog from '@/views/monitor/log/operation/locale/en-US'; +import localeSystemLog from '@/views/monitor/log/system/locale/en-US'; + +import localeSearchTable from '@/views/demo/list/search-table/locale/en-US'; +import localeCardList from '@/views/demo/list/card/locale/en-US'; +import localeStepForm from '@/views/demo/form/step/locale/en-US'; +import localeGroupForm from '@/views/demo/form/group/locale/en-US'; +import localeBasicProfile from '@/views/demo/profile/basic/locale/en-US'; +import localeSuccess from '@/views/demo/result/success/locale/en-US'; +import localeError from '@/views/demo/result/error/locale/en-US'; +import locale403 from '@/views/demo/exception/403/locale/en-US'; +import locale404 from '@/views/demo/exception/404/locale/en-US'; +import locale500 from '@/views/demo/exception/500/locale/en-US'; +import localeDataAnalysis from '@/views/demo/visualization/data-analysis/locale/en-US'; +import localeMultiDAnalysis from '@/views/demo/visualization/multi-dimension-data-analysis/locale/en-US'; +import localeRealTimeMonitor from '@/views/demo/visualization/real-time-monitor/locale/en-US'; + +import localeMessageBox from '@/components/message-box/locale/en-US'; +import localeLogin from '@/views/login/locale/en-US'; +import localeUserCenter from '@/views/system/user/center/locale/en-US'; +import localeSettings from './en-US/settings'; + +export default { + 'title': 'ContiNew Admin', + 'menu.dashboard': 'Dashboard', + 'menu.server.dashboard': 'Dashboard-Server', + 'menu.server.workplace': 'Workplace-Server', + 'menu.system': 'System management', + 'menu.tool': 'Tool', + 'menu.monitor': 'Monitor', + 'menu.list': 'List', + 'menu.form': 'Form', + 'menu.profile': 'Profile', + 'menu.result': 'Result', + 'menu.exception': 'Exception', + 'menu.visualization': 'Data Visualization', + 'menu.server.monitor': 'Monitor-Server', + 'menu.arcoWebsite': 'Arco Design Vue', + 'menu.github': 'GitHub', + 'menu.user': 'User Center', + 'navbar.docs': 'Docs', + 'navbar.action.locale': 'Switch to English', + + ...localeWorkplace, + + ...localeUser, + ...localeRole, + ...localeMenu, + ...localeDept, + ...localeAnnouncement, + ...localeMessage, + ...localeDict, + ...localeConfig, + ...localeFile, + + ...localeGenerator, + + ...localeOnlineUser, + ...localeLoginLog, + ...localeOperationLog, + ...localeSystemLog, + + ...localeSearchTable, + ...localeCardList, + ...localeStepForm, + ...localeGroupForm, + ...localeBasicProfile, + ...localeSuccess, + ...localeError, + ...locale403, + ...locale404, + ...locale500, + ...localeDataAnalysis, + ...localeMultiDAnalysis, + ...localeRealTimeMonitor, + + ...localeMessageBox, + ...localeLogin, + ...localeUserCenter, + ...localeSettings, +}; diff --git a/src/locale/en-US/settings.ts b/src/locale/en-US/settings.ts new file mode 100644 index 0000000..02a3c76 --- /dev/null +++ b/src/locale/en-US/settings.ts @@ -0,0 +1,31 @@ +export default { + 'settings.title': 'Settings', + 'settings.themeColor': 'Theme Color', + 'settings.content': 'Content Setting', + 'settings.search': 'Search', + 'settings.language': 'Language', + 'settings.navbar': 'Navbar', + 'settings.menuWidth': 'Menu Width (px)', + 'settings.navbar.theme.toLight': 'Click to use light mode', + 'settings.navbar.theme.toDark': 'Click to use dark mode', + 'settings.navbar.screen.toFull': 'Click to switch to full screen mode', + 'settings.navbar.screen.toExit': 'Click to exit the full screen mode', + 'settings.doc': 'Online Doc', + 'settings.navbar.alerts': 'alerts', + 'settings.menu': 'Menu', + 'settings.topMenu': 'Top Menu', + 'settings.accordion': 'Accordion', + 'settings.tabBar': 'Tab Bar', + 'settings.footer': 'Footer', + 'settings.otherSettings': 'Other Settings', + 'settings.colorWeak': 'Color Weak', + 'settings.alertContent': + 'After the configuration is only temporarily effective, if you want to really affect the project, click the "Copy Settings" button below and replace the configuration in settings.json.', + 'settings.copySettings': 'Copy Settings', + 'settings.copySettings.message': + 'Copy succeeded, please paste to file src/settings.json.', + 'settings.close': 'Close', + 'settings.color.tooltip': + '10 gradient colors generated according to the theme color', + 'settings.menuFromServer': 'Menu From Server', +}; diff --git a/src/locale/index.ts b/src/locale/index.ts new file mode 100644 index 0000000..68349ce --- /dev/null +++ b/src/locale/index.ts @@ -0,0 +1,22 @@ +import { createI18n } from 'vue-i18n'; +import en from './en-US'; +import cn from './zh-CN'; + +export const LOCALE_OPTIONS = [ + { label: '中文', value: 'zh-CN' }, + { label: 'English', value: 'en-US' }, +]; +const defaultLocale = localStorage.getItem('arco-locale') || 'zh-CN'; + +const i18n = createI18n({ + locale: defaultLocale, + fallbackLocale: 'en-US', + legacy: false, + allowComposition: true, + messages: { + 'en-US': en, + 'zh-CN': cn, + }, +}); + +export default i18n; diff --git a/src/locale/zh-CN.ts b/src/locale/zh-CN.ts new file mode 100644 index 0000000..2aa1f31 --- /dev/null +++ b/src/locale/zh-CN.ts @@ -0,0 +1,97 @@ +import localeWorkplace from '@/views/dashboard/workplace/locale/zh-CN'; + +import localeUser from '@/views/system/user/locale/zh-CN'; +import localeRole from '@/views/system/role/locale/zh-CN'; +import localeMenu from '@/views/system/menu/locale/zh-CN'; +import localeDept from '@/views/system/dept/locale/zh-CN'; +import localeAnnouncement from '@/views/system/announcement/locale/zh-CN'; +import localeMessage from '@/views/system/message/locale/zh-CN'; +import localeDict from '@/views/system/dict/locale/zh-CN'; +import localeConfig from '@/views/system/config/locale/zh-CN'; +import localeFile from '@/views/system/file/locale/zh-CN'; + +import localeGenerator from '@/views/tool/generator/locale/zh-CN'; + +import localeOnlineUser from '@/views/monitor/online/locale/zh-CN'; +import localeLoginLog from '@/views/monitor/log/login/locale/zh-CN'; +import localeOperationLog from '@/views/monitor/log/operation/locale/zh-CN'; +import localeSystemLog from '@/views/monitor/log/system/locale/zh-CN'; + +import localeSearchTable from '@/views/demo/list/search-table/locale/zh-CN'; +import localeCardList from '@/views/demo/list/card/locale/zh-CN'; +import localeStepForm from '@/views/demo/form/step/locale/zh-CN'; +import localeGroupForm from '@/views/demo/form/group/locale/zh-CN'; +import localeBasicProfile from '@/views/demo/profile/basic/locale/zh-CN'; +import localeSuccess from '@/views/demo/result/success/locale/zh-CN'; +import localeError from '@/views/demo/result/error/locale/zh-CN'; +import locale403 from '@/views/demo/exception/403/locale/zh-CN'; +import locale404 from '@/views/demo/exception/404/locale/zh-CN'; +import locale500 from '@/views/demo/exception/500/locale/zh-CN'; +import localeDataAnalysis from '@/views/demo/visualization/data-analysis/locale/zh-CN'; +import localeMultiDAnalysis from '@/views/demo/visualization/multi-dimension-data-analysis/locale/zh-CN'; +import localeRealTimeMonitor from '@/views/demo/visualization/real-time-monitor/locale/zh-CN'; + +import localeMessageBox from '@/components/message-box/locale/zh-CN'; +import localeLogin from '@/views/login/locale/zh-CN'; +import localeUserCenter from '@/views/system/user/center/locale/zh-CN'; +import localeSettings from './zh-CN/settings'; + +export default { + 'title': 'ContiNew Admin', + 'menu.dashboard': '仪表盘', + 'menu.server.dashboard': '仪表盘-服务端', + 'menu.server.workplace': '工作台-服务端', + 'menu.system': '系统管理', + 'menu.tool': '系统工具', + 'menu.monitor': '系统监控', + 'menu.list': '列表页', + 'menu.form': '表单页', + 'menu.profile': '详情页', + 'menu.result': '结果页', + 'menu.exception': '异常页', + 'menu.visualization': '数据可视化', + 'menu.server.monitor': '实时监控-服务端', + 'menu.arcoWebsite': 'Arco Design Vue', + 'menu.github': 'GitHub', + 'menu.user': '个人中心', + 'navbar.docs': '文档中心', + 'navbar.action.locale': '切换为中文', + + ...localeWorkplace, + + ...localeUser, + ...localeRole, + ...localeMenu, + ...localeDept, + ...localeAnnouncement, + ...localeMessage, + ...localeDict, + ...localeConfig, + ...localeFile, + + ...localeGenerator, + + ...localeOnlineUser, + ...localeLoginLog, + ...localeOperationLog, + ...localeSystemLog, + + ...localeSearchTable, + ...localeCardList, + ...localeStepForm, + ...localeGroupForm, + ...localeBasicProfile, + ...localeSuccess, + ...localeError, + ...locale403, + ...locale404, + ...locale500, + ...localeDataAnalysis, + ...localeMultiDAnalysis, + ...localeRealTimeMonitor, + + ...localeMessageBox, + ...localeLogin, + ...localeUserCenter, + ...localeSettings, +}; diff --git a/src/locale/zh-CN/settings.ts b/src/locale/zh-CN/settings.ts new file mode 100644 index 0000000..47c32c1 --- /dev/null +++ b/src/locale/zh-CN/settings.ts @@ -0,0 +1,31 @@ +export default { + 'settings.title': '页面配置', + 'settings.themeColor': '主题色', + 'settings.content': '内容区域', + 'settings.search': '搜索', + 'settings.language': '语言', + 'settings.navbar': '导航栏', + 'settings.menuWidth': '菜单宽度 (px)', + 'settings.navbar.theme.toLight': '点击切换为亮色模式', + 'settings.navbar.theme.toDark': '点击切换为暗黑模式', + 'settings.navbar.screen.toFull': '点击切换全屏模式', + 'settings.navbar.screen.toExit': '点击退出全屏模式', + 'settings.doc': '在线文档', + 'settings.navbar.alerts': '消息通知', + 'settings.menu': '菜单栏', + 'settings.topMenu': '顶部菜单栏', + 'settings.accordion': '菜单栏手风琴', + 'settings.tabBar': '多页签', + 'settings.footer': '底部', + 'settings.otherSettings': '其他设置', + 'settings.colorWeak': '色弱模式', + 'settings.alertContent': + '配置之后仅是临时生效,要想真正作用于项目,点击下方的 "复制配置" 按钮,将配置替换到 settings.json 中即可。', + 'settings.copySettings': '复制配置', + 'settings.copySettings.message': + '复制成功,请粘贴到 src/settings.json 文件中', + 'settings.close': '关闭', + 'settings.color.tooltip': + '根据主题颜色生成的 10 个梯度色(将配置复制到项目中,主题色才能对亮色 / 暗黑模式同时生效)', + 'settings.menuFromServer': '菜单来源于后台', +}; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..4a23794 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,68 @@ +import { createApp } from 'vue'; +import ArcoVue from '@arco-design/web-vue'; +import ArcoVueIcon from '@arco-design/web-vue/es/icon'; +import '@arco-design/web-vue/dist/arco.css'; + +import VueMarkdownEditor from '@kangc/v-md-editor'; +import '@kangc/v-md-editor/lib/style/base-editor.css'; +import VMdPreview from '@kangc/v-md-editor/lib/preview'; +import '@kangc/v-md-editor/lib/style/preview.css'; +// eslint-disable-next-line import/extensions +import githubTheme from '@kangc/v-md-editor/lib/theme/github.js'; +import '@kangc/v-md-editor/lib/theme/style/github.css'; +import createEmojiPlugin from '@kangc/v-md-editor/lib/plugins/emoji/index'; +import '@kangc/v-md-editor/lib/plugins/emoji/emoji.css'; +import createCopyCodePlugin from '@kangc/v-md-editor/lib/plugins/copy-code/index'; +import '@kangc/v-md-editor/lib/plugins/copy-code/copy-code.css'; +import createTodoListPlugin from '@kangc/v-md-editor/lib/plugins/todo-list/index'; +import '@kangc/v-md-editor/lib/plugins/todo-list/todo-list.css'; +import hljs from 'highlight.js'; +// 按需引入语言包 +import json from 'highlight.js/lib/languages/json'; +import java from 'highlight.js/lib/languages/java'; + +import Vue3ColorPicker from 'vue3-colorpicker'; +import 'vue3-colorpicker/style.css'; + +// eslint-disable-next-line import/no-unresolved +import 'virtual:svg-icons-register'; +import globalComponents from '@/components'; +import useDict from '@/utils/dict'; +import router from './router'; +import store from './store'; +import i18n from './locale'; +import directive from './directive'; +import './mock'; +import App from './App.vue'; +// Styles are imported via arco-plugin. See config/plugin/arcoStyleImport.ts in the directory for details +// 样式通过 arco-plugin 插件导入。详见目录文件 config/plugin/arcoStyleImport.ts +// https://arco.design/docs/designlab/use-theme-package +import '@/assets/style/global.less'; +import '@/utils/request'; + +VueMarkdownEditor.use(githubTheme, { + Hljs: hljs, +}); +VMdPreview.use(githubTheme, { + Hljs: hljs, +}); +VueMarkdownEditor.use(createEmojiPlugin()); +VueMarkdownEditor.use(createCopyCodePlugin()); +VueMarkdownEditor.use(createTodoListPlugin()); +hljs.registerLanguage('json', json); +hljs.registerLanguage('java', java); + +const app = createApp(App); +// 全局方法挂载 +app.config.globalProperties.useDict = useDict; +app.use(ArcoVue, {}); +app.use(ArcoVueIcon); +app.use(router); +app.use(store); +app.use(i18n); +app.use(globalComponents); +app.use(directive); +app.use(VueMarkdownEditor); +app.use(VMdPreview); +app.use(Vue3ColorPicker); +app.mount('#app'); diff --git a/src/mock/index.ts b/src/mock/index.ts new file mode 100644 index 0000000..d3aab7b --- /dev/null +++ b/src/mock/index.ts @@ -0,0 +1,24 @@ +import Mock from 'mockjs'; + +import './login'; +import './message-box'; + +import '@/views/dashboard/workplace/mock'; + +import '@/views/demo/visualization/real-time-monitor/mock'; + +import '@/views/demo/list/card/mock'; +import '@/views/demo/list/search-table/mock'; + +import '@/views/demo/form/step/mock'; + +import '@/views/demo/profile/basic/mock'; + +import '@/views/demo/visualization/data-analysis/mock'; +import '@/views/demo/visualization/multi-dimension-data-analysis/mock'; + +import '@/views/system/user/center/mock'; + +Mock.setup({ + timeout: '15-150', +}); diff --git a/src/mock/login.ts b/src/mock/login.ts new file mode 100644 index 0000000..a64e14b --- /dev/null +++ b/src/mock/login.ts @@ -0,0 +1,105 @@ +import Mock from 'mockjs'; +import setupMock, { + successResponseWrap, + failResponseWrap, +} from '@/utils/setup-mock'; + +import { MockParams } from '@/types/mock'; +import { isLogin } from '@/utils/auth'; + +setupMock({ + setup() { + // Mock.XHR.prototype.withCredentials = true; + + // 用户信息 + Mock.mock(new RegExp('/api/user/info'), () => { + if (isLogin()) { + const role = window.localStorage.getItem('userRole') || 'admin'; + return successResponseWrap({ + nickname: '超级管理员', + avatar: + '//lf1-xgcdn-tos.pstatp.com/obj/vcloud/vadmin/start.8e0e4855ee346a46ccff8ff3e24db27b.png', + phone: '188****0000', + email: 'charles7c@126.com', + job: 'backend', + jobName: '后端艺术家', + organization: 'Backend', + organizationName: '后端', + location: 'beijing', + locationName: '北京', + introduction: '低调星人', + personalWebsite: 'https://blog.charles7c.top', + registrationDate: '2022-12-27 20:00:00', + accountId: '15012312300', + certification: 1, + role, + }); + } + return failResponseWrap(null, '未登录', 401); + }); + + // 登录 + Mock.mock(new RegExp('/api/login'), (params: MockParams) => { + const { username, password } = JSON.parse(params.body); + if (!username) { + return failResponseWrap(null, '用户名不能为空', 50000); + } + if (!password) { + return failResponseWrap(null, '密码不能为空', 50000); + } + if (username === 'admin' && password === '123456') { + window.localStorage.setItem('userRole', 'admin'); + return successResponseWrap({ + token: '12345', + }); + } + if (username === 'user' && password === 'user') { + window.localStorage.setItem('userRole', 'user'); + return successResponseWrap({ + token: '54321', + }); + } + return failResponseWrap(null, '用户名或密码错误', 400); + }); + + // 退出 + Mock.mock(new RegExp('/api/logout'), () => { + return successResponseWrap(null); + }); + + // 用户的服务端菜单 + Mock.mock(new RegExp('/api/user/menu'), () => { + const menuList = [ + { + path: '/dashboard', + name: 'dashboard', + meta: { + locale: 'menu.server.dashboard', + requiresAuth: true, + icon: 'icon-dashboard', + order: 1, + }, + children: [ + { + path: 'workplace', + name: 'Workplace', + meta: { + locale: 'menu.server.workplace', + requiresAuth: true, + }, + }, + { + path: 'https://arco.design', + name: 'arcoWebsite', + meta: { + locale: 'menu.arcoWebsite', + requiresAuth: true, + }, + }, + ], + }, + ]; + return successResponseWrap(menuList); + }); + }, +}); diff --git a/src/mock/message-box.ts b/src/mock/message-box.ts new file mode 100644 index 0000000..6449e68 --- /dev/null +++ b/src/mock/message-box.ts @@ -0,0 +1,85 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +const haveReadIds: number[] = []; +const getMessageList = () => { + return [ + { + id: 1, + type: 'message', + title: '郑曦月', + subTitle: '的私信', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/8361eeb82904210b4f55fab888fe8416.png~tplv-uwbnlip3yd-webp.webp', + content: '审批请求已发送,请查收', + time: '今天 12:30:01', + }, + { + id: 2, + type: 'message', + title: '宁波', + subTitle: '的回复', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + content: '此处 bug 已经修复', + time: '今天 12:30:01', + }, + { + id: 3, + type: 'message', + title: '宁波', + subTitle: '的回复', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + content: '此处 bug 已经修复', + time: '今天 12:20:01', + }, + { + id: 4, + type: 'notice', + title: '续费通知', + subTitle: '', + avatar: '', + content: '您的产品使用期限即将截止,如需继续使用产品请前往购…', + time: '今天 12:20:01', + messageType: 3, + }, + { + id: 5, + type: 'notice', + title: '规则开通成功', + subTitle: '', + avatar: '', + content: '内容屏蔽规则于 2021-12-01 开通成功并生效', + time: '今天 12:20:01', + messageType: 1, + }, + { + id: 6, + type: 'todo', + title: '质检队列变更', + subTitle: '', + avatar: '', + content: '内容质检队列于 2021-12-01 19:50:23 进行变更,请重新…', + time: '今天 12:20:01', + messageType: 0, + }, + ].map((item) => ({ + ...item, + status: haveReadIds.indexOf(item.id) === -1 ? 0 : 1, + })); +}; + +setupMock({ + setup: () => { + Mock.mock(new RegExp('/api/message/list'), () => { + return successResponseWrap(getMessageList()); + }); + + Mock.mock(new RegExp('/api/message/read'), (params: { body: string }) => { + const { ids } = JSON.parse(params.body); + haveReadIds.push(...(ids || [])); + return successResponseWrap(true); + }); + }, +}); diff --git a/src/router/app-menus/index.ts b/src/router/app-menus/index.ts new file mode 100644 index 0000000..3148cc0 --- /dev/null +++ b/src/router/app-menus/index.ts @@ -0,0 +1,16 @@ +import { fixedRoutes, demoRoutes } from '../routes'; + +const mixinRoutes = [...fixedRoutes, ...demoRoutes]; + +const staticMenus = mixinRoutes.map((el) => { + const { name, path, meta, redirect, children } = el; + return { + name, + path, + meta, + redirect, + children, + }; +}); + +export default staticMenus; diff --git a/src/router/constants.ts b/src/router/constants.ts new file mode 100644 index 0000000..cb60bb2 --- /dev/null +++ b/src/router/constants.ts @@ -0,0 +1,19 @@ +export const WHITE_LIST = [ + { name: 'notFound', children: [] }, + { name: 'login', children: [] }, + { name: 'SocialCallback', children: [] }, +]; + +export const NOT_FOUND = { + name: 'notFound', +}; + +export const REDIRECT_ROUTE_NAME = 'Redirect'; + +export const DEFAULT_ROUTE_NAME = 'Workplace'; + +export const DEFAULT_ROUTE = { + title: 'menu.dashboard.workplace', + name: DEFAULT_ROUTE_NAME, + fullPath: '/dashboard/workplace', +}; diff --git a/src/router/guard/index.ts b/src/router/guard/index.ts new file mode 100644 index 0000000..bedc28d --- /dev/null +++ b/src/router/guard/index.ts @@ -0,0 +1,17 @@ +import type { Router } from 'vue-router'; +import { setRouteEmitter } from '@/utils/route-listener'; +import setupUserLoginInfoGuard from './userLoginInfo'; +import setupPermissionGuard from './permission'; + +function setupPageGuard(router: Router) { + router.beforeEach(async (to) => { + // emit route change + setRouteEmitter(to); + }); +} + +export default function createRouteGuard(router: Router) { + setupPageGuard(router); + setupUserLoginInfoGuard(router); + setupPermissionGuard(router); +} diff --git a/src/router/guard/permission.ts b/src/router/guard/permission.ts new file mode 100644 index 0000000..bc83737 --- /dev/null +++ b/src/router/guard/permission.ts @@ -0,0 +1,62 @@ +import type { Router, RouteRecordNormalized } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar + +import usePermission from '@/hooks/permission'; +import { useUserStore, useAppStore } from '@/store'; +import { fixedRoutes, demoRoutes } from '../routes'; +import { WHITE_LIST, NOT_FOUND } from '../constants'; + +export default function setupPermissionGuard(router: Router) { + router.beforeEach(async (to, from, next) => { + const appStore = useAppStore(); + const userStore = useUserStore(); + const Permission = usePermission(); + const permissionsAllow = Permission.accessRouter(to); + if (appStore.menuFromServer) { + // 针对来自服务端的菜单配置进行处理 + // Handle routing configuration from the server + + // 根据需要自行完善来源于服务端的菜单配置的 permission 逻辑 + // Refine the permission logic from the server's menu configuration as needed + if ( + !appStore.appAsyncMenus.length && + !WHITE_LIST.find((el) => el.name === to.name) + ) { + await appStore.fetchServerMenuConfig(); + } + const serverMenuConfig = [ + ...appStore.appAsyncMenus, + ...WHITE_LIST, + ...fixedRoutes, + ...demoRoutes, + ]; + + let exist = false; + while (serverMenuConfig.length && !exist) { + const element = serverMenuConfig.shift(); + if (element?.name === to.name) exist = true; + + if (element?.children) { + serverMenuConfig.push( + ...(element.children as unknown as RouteRecordNormalized[]), + ); + } + } + if (exist && permissionsAllow) { + next(); + } else next(NOT_FOUND); + } else { + // eslint-disable-next-line no-lonely-if + if (permissionsAllow) next(); + else { + const destination = + Permission.findFirstPermissionRoute( + [...fixedRoutes, ...demoRoutes], + userStore.roles[0], + ) || NOT_FOUND; + next(destination); + } + } + NProgress.done(); + }); +} diff --git a/src/router/guard/userLoginInfo.ts b/src/router/guard/userLoginInfo.ts new file mode 100644 index 0000000..fb81371 --- /dev/null +++ b/src/router/guard/userLoginInfo.ts @@ -0,0 +1,50 @@ +import type { Router, LocationQueryRaw } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar + +import { useUserStore, useAppStore } from '@/store'; +import { isLogin } from '@/utils/auth'; + +export default function setupUserLoginInfoGuard(router: Router) { + router.beforeEach(async (to, from, next) => { + NProgress.start(); + const userStore = useUserStore(); + const appStore = useAppStore(); + appStore.init(); + if (isLogin()) { + if (to.name === 'login') { + next({ name: 'Workplace' }); + NProgress.done(); + return; + } + if (userStore.roles[0]) { + next(); + } else { + try { + await userStore.getInfo(); + next(); + } catch (error) { + await userStore.logoutCallBack(); + next({ + name: 'login', + query: { + redirect: to.name, + ...to.query, + } as LocationQueryRaw, + }); + } + } + } else { + if (to.name === 'login' || to.name === 'SocialCallback') { + next(); + return; + } + next({ + name: 'login', + query: { + redirect: to.name, + ...to.query, + } as LocationQueryRaw, + }); + } + }); +} diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..1f3163a --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,96 @@ +import { + createRouter, + createWebHistory, + RouteRecordNormalized, +} from 'vue-router'; +import { useAppStore } from '@/store'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; + +import { DashboardRecentlyVisitedRecord } from '@/api/common/dashboard'; +import { appRoutes, fixedRoutes, demoRoutes } from './routes'; +import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './routes/base'; +import createRouteGuard from './guard'; + +NProgress.configure({ showSpinner: false }); // NProgress Configuration + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/', + redirect: 'login', + }, + { + path: '/login', + name: 'login', + component: () => import('@/views/login/index.vue'), + meta: { + requiresAuth: false, + }, + }, + { + path: '/social/callback', + name: 'SocialCallback', + component: () => import('@/views/login/social/index.vue'), + meta: { + requiresAuth: false, + }, + }, + ...appRoutes, + ...fixedRoutes, + ...demoRoutes, + REDIRECT_MAIN, + NOT_FOUND_ROUTE, + ], + scrollBehavior() { + return { top: 0 }; + }, +}); + +createRouteGuard(router); + +router.afterEach((to) => { + const allMenuList = useAppStore().appAsyncMenusAll as RouteRecordNormalized[]; + const toMenu = allMenuList.find((m) => to.path === m.path) || undefined; + if (toMenu === undefined) { + return; + } + + const recentlyVisitedList = window.localStorage.getItem('recently-visited'); + let copyRecentlyVisitedList: DashboardRecentlyVisitedRecord[]; + if (recentlyVisitedList === null) { + copyRecentlyVisitedList = []; + } else { + copyRecentlyVisitedList = JSON.parse(recentlyVisitedList); + } + + // 是否有重复点击的菜单 + copyRecentlyVisitedList.forEach( + (item: DashboardRecentlyVisitedRecord, index: number) => { + if (item.path === to.path) { + copyRecentlyVisitedList.splice(index, 1); + } + }, + ); + + // 最多存储 3 个 + const menuMeta = toMenu?.meta; + const recentlyVisited: DashboardRecentlyVisitedRecord = { + title: menuMeta?.locale, + path: to.path, + icon: menuMeta?.icon, + }; + copyRecentlyVisitedList.reverse(); + copyRecentlyVisitedList.push(recentlyVisited); + copyRecentlyVisitedList.reverse(); + if (copyRecentlyVisitedList.length >= 4) { + copyRecentlyVisitedList = copyRecentlyVisitedList.splice(0, 3); + } + window.localStorage.setItem( + 'recently-visited', + JSON.stringify(copyRecentlyVisitedList), + ); +}); + +export default router; diff --git a/src/router/routes/base.ts b/src/router/routes/base.ts new file mode 100644 index 0000000..80560f4 --- /dev/null +++ b/src/router/routes/base.ts @@ -0,0 +1,31 @@ +import type { RouteRecordRaw } from 'vue-router'; +import { REDIRECT_ROUTE_NAME } from '@/router/constants'; + +export const DEFAULT_LAYOUT = () => import('@/layout/default-layout.vue'); + +export const REDIRECT_MAIN: RouteRecordRaw = { + path: '/redirect', + name: 'redirectWrapper', + component: DEFAULT_LAYOUT, + meta: { + requiresAuth: true, + hideInMenu: true, + }, + children: [ + { + path: '/redirect/:path', + name: REDIRECT_ROUTE_NAME, + component: () => import('@/views/redirect/index.vue'), + meta: { + requiresAuth: true, + hideInMenu: true, + }, + }, + ], +}; + +export const NOT_FOUND_ROUTE: RouteRecordRaw = { + path: '/:pathMatch(.*)*', + name: 'notFound', + component: () => import('@/views/other/not-found/index.vue'), +}; diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts new file mode 100644 index 0000000..7fb1cf8 --- /dev/null +++ b/src/router/routes/index.ts @@ -0,0 +1,27 @@ +import type { RouteRecordNormalized } from 'vue-router'; + +const appModules = import.meta.glob('./modules/*.ts', { eager: true }); +const fixedModules = import.meta.glob('./modules/fixed/*.ts', { eager: true }); +const demoModules = import.meta.glob('./modules/demo/*.ts', { eager: true }); + +function formatModules(_modules: any, result: RouteRecordNormalized[]) { + Object.keys(_modules).forEach((key) => { + const defaultModule = _modules[key].default; + if (!defaultModule) return; + const moduleList = Array.isArray(defaultModule) + ? [...defaultModule] + : [defaultModule]; + result.push(...moduleList); + }); + return result; +} + +export const appRoutes: RouteRecordNormalized[] = formatModules(appModules, []); +export const fixedRoutes: RouteRecordNormalized[] = formatModules( + fixedModules, + [], +); +export const demoRoutes: RouteRecordNormalized[] = formatModules( + demoModules, + [], +); diff --git a/src/router/routes/modules/demo/exception.ts b/src/router/routes/modules/demo/exception.ts new file mode 100644 index 0000000..99bd72e --- /dev/null +++ b/src/router/routes/modules/demo/exception.ts @@ -0,0 +1,48 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const EXCEPTION: AppRouteRecordRaw = { + name: 'Exception', + path: '/demo/exception', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.exception', + requiresAuth: true, + icon: 'exclamation-2', + order: 904, + }, + children: [ + { + name: '403', + path: '403', + component: () => import('@/views/demo/exception/403/index.vue'), + meta: { + locale: 'menu.exception.403', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: '404', + path: '404', + component: () => import('@/views/demo/exception/404/index.vue'), + meta: { + locale: 'menu.exception.404', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: '500', + path: '500', + component: () => import('@/views/demo/exception/500/index.vue'), + meta: { + locale: 'menu.exception.500', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default EXCEPTION; diff --git a/src/router/routes/modules/demo/form.ts b/src/router/routes/modules/demo/form.ts new file mode 100644 index 0000000..eede207 --- /dev/null +++ b/src/router/routes/modules/demo/form.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const FORM: AppRouteRecordRaw = { + name: 'Form', + path: '/demo/form', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.form', + icon: 'select-all', + requiresAuth: true, + order: 901, + }, + children: [ + { + name: 'Step', + path: 'step', + component: () => import('@/views/demo/form/step/index.vue'), + meta: { + locale: 'menu.form.step', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: 'Group', + path: 'group', + component: () => import('@/views/demo/form/group/index.vue'), + meta: { + locale: 'menu.form.group', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default FORM; diff --git a/src/router/routes/modules/demo/list.ts b/src/router/routes/modules/demo/list.ts new file mode 100644 index 0000000..606ac0f --- /dev/null +++ b/src/router/routes/modules/demo/list.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const LIST: AppRouteRecordRaw = { + name: 'List', + path: '/demo/list', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.list', + requiresAuth: true, + icon: 'list', + order: 900, + }, + children: [ + { + name: 'SearchTable', + path: 'search-table', // The midline path complies with SEO specifications + component: () => import('@/views/demo/list/search-table/index.vue'), + meta: { + locale: 'menu.list.searchTable', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: 'Card', + path: 'card', + component: () => import('@/views/demo/list/card/index.vue'), + meta: { + locale: 'menu.list.cardList', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default LIST; diff --git a/src/router/routes/modules/demo/profile.ts b/src/router/routes/modules/demo/profile.ts new file mode 100644 index 0000000..d7873a8 --- /dev/null +++ b/src/router/routes/modules/demo/profile.ts @@ -0,0 +1,28 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const PROFILE: AppRouteRecordRaw = { + name: 'Profile', + path: '/demo/profile', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.profile', + requiresAuth: true, + icon: 'file', + order: 902, + }, + children: [ + { + name: 'Basic', + path: 'basic', + component: () => import('@/views/demo/profile/basic/index.vue'), + meta: { + locale: 'menu.profile.basic', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default PROFILE; diff --git a/src/router/routes/modules/demo/result.ts b/src/router/routes/modules/demo/result.ts new file mode 100644 index 0000000..1fe5542 --- /dev/null +++ b/src/router/routes/modules/demo/result.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const RESULT: AppRouteRecordRaw = { + name: 'Result', + path: '/demo/result', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.result', + icon: 'check-circle', + requiresAuth: true, + order: 903, + }, + children: [ + { + name: 'Success', + path: 'success', + component: () => import('@/views/demo/result/success/index.vue'), + meta: { + locale: 'menu.result.success', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: 'Error', + path: 'error', + component: () => import('@/views/demo/result/error/index.vue'), + meta: { + locale: 'menu.result.error', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default RESULT; diff --git a/src/router/routes/modules/demo/visualization.ts b/src/router/routes/modules/demo/visualization.ts new file mode 100644 index 0000000..5c14ea6 --- /dev/null +++ b/src/router/routes/modules/demo/visualization.ts @@ -0,0 +1,53 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const VISUALIZATION: AppRouteRecordRaw = { + name: 'Visualization', + path: '/demo/visualization', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.visualization', + requiresAuth: true, + icon: 'bar-chart', + order: 905, + }, + children: [ + { + name: 'DataAnalysis', + path: 'data-analysis', + component: () => + import('@/views/demo/visualization/data-analysis/index.vue'), + meta: { + locale: 'menu.visualization.dataAnalysis', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: 'MultiDimensionDataAnalysis', + path: 'multi-dimension-data-analysis', + component: () => + import( + '@/views/demo/visualization/multi-dimension-data-analysis/index.vue' + ), + meta: { + locale: 'menu.visualization.multiDimensionDataAnalysis', + requiresAuth: true, + roles: ['*'], + }, + }, + { + name: 'RealTimeMonitor', + path: 'real-time-monitor', + component: () => + import('@/views/demo/visualization/real-time-monitor/index.vue'), + meta: { + locale: 'menu.dashboard.realTimeMonitor', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default VISUALIZATION; diff --git a/src/router/routes/modules/fixed/dashboard.ts b/src/router/routes/modules/fixed/dashboard.ts new file mode 100644 index 0000000..5a4269a --- /dev/null +++ b/src/router/routes/modules/fixed/dashboard.ts @@ -0,0 +1,31 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const DASHBOARD: AppRouteRecordRaw = { + name: 'Dashboard', + path: '/dashboard', + component: DEFAULT_LAYOUT, + redirect: '/dashboard/workplace', + meta: { + locale: 'menu.dashboard', + requiresAuth: true, + icon: 'dashboard', + order: 0, + hideChildrenInMenu: true, + }, + children: [ + { + name: 'Workplace', + path: 'workplace', + component: () => import('@/views/dashboard/workplace/index.vue'), + meta: { + locale: 'menu.dashboard.workplace', + requiresAuth: true, + roles: ['*'], + activeMenu: 'Dashboard', + }, + }, + ], +}; + +export default DASHBOARD; diff --git a/src/router/routes/modules/fixed/user-center.ts b/src/router/routes/modules/fixed/user-center.ts new file mode 100644 index 0000000..45f4d6d --- /dev/null +++ b/src/router/routes/modules/fixed/user-center.ts @@ -0,0 +1,27 @@ +import { DEFAULT_LAYOUT } from '../../base'; +import { AppRouteRecordRaw } from '../../types'; + +const UserCenter: AppRouteRecordRaw = { + path: '/user', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.user', + icon: 'user', + requiresAuth: true, + }, + children: [ + { + name: 'UserCenter', + path: 'center', + component: () => import('@/views/system/user/center/index.vue'), + meta: { + locale: 'menu.user.center', + requiresAuth: true, + roles: ['*'], + hideInMenu: true, + }, + }, + ], +}; + +export default UserCenter; diff --git a/src/router/routes/modules/monitor.ts b/src/router/routes/modules/monitor.ts new file mode 100644 index 0000000..449e2ff --- /dev/null +++ b/src/router/routes/modules/monitor.ts @@ -0,0 +1,54 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const Monitor: AppRouteRecordRaw = { + name: 'Monitor', + path: '/monitor', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.monitor', + icon: 'computer', + requiresAuth: true, + order: 3, + }, + children: [ + { + name: 'OnlineUser', + path: '/monitor/online', + component: () => import('@/views/monitor/online/index.vue'), + meta: { + locale: 'menu.online.user.list', + requiresAuth: true, + }, + }, + { + name: 'LoginLog', + path: '/monitor/log/login', + component: () => import('@/views/monitor/log/login/index.vue'), + meta: { + locale: 'menu.log.login.list', + requiresAuth: true, + }, + }, + { + path: '/monitor/log/operation', + name: 'OperationLog', + component: () => import('@/views/monitor/log/operation/index.vue'), + meta: { + locale: 'menu.log.operation.list', + requiresAuth: true, + }, + }, + { + name: 'SystemLog', + path: '/monitor/log/system', + component: () => import('@/views/monitor/log/system/index.vue'), + meta: { + locale: 'menu.log.system.list', + requiresAuth: true, + }, + }, + ], +}; + +export default Monitor; diff --git a/src/router/routes/modules/system.ts b/src/router/routes/modules/system.ts new file mode 100644 index 0000000..cc4b609 --- /dev/null +++ b/src/router/routes/modules/system.ts @@ -0,0 +1,99 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const System: AppRouteRecordRaw = { + name: 'System', + path: '/system', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.system', + icon: 'settings', + requiresAuth: true, + order: 1, + }, + children: [ + { + name: 'User', + path: '/system/user', + component: () => import('@/views/system/user/index.vue'), + meta: { + locale: 'menu.system.user.list', + requiresAuth: true, + }, + }, + { + name: 'Dept', + path: '/system/dept', + component: () => import('@/views/system/dept/index.vue'), + meta: { + locale: 'menu.system.dept.list', + requiresAuth: true, + }, + }, + { + name: 'Role', + path: '/system/role', + component: () => import('@/views/system/role/index.vue'), + meta: { + locale: 'menu.system.role.list', + requiresAuth: true, + }, + }, + { + name: 'Menu', + path: '/system/menu', + component: () => import('@/views/system/menu/index.vue'), + meta: { + locale: 'menu.system.menu.list', + requiresAuth: true, + }, + }, + { + name: 'Announcement', + path: '/system/announcement', + component: () => import('@/views/system/announcement/index.vue'), + meta: { + locale: 'menu.system.announcement.list', + requiresAuth: true, + }, + }, + { + name: 'Message', + path: '/system/message', + component: () => import('@/views/system/message/index.vue'), + meta: { + locale: 'menu.system.message.list', + requiresAuth: true, + }, + }, + { + name: 'Dict', + path: '/system/dict', + component: () => import('@/views/system/dict/index.vue'), + meta: { + locale: 'menu.system.dict.list', + requiresAuth: true, + }, + }, + { + name: 'Config', + path: '/system/config', + component: () => import('@/views/system/config/index.vue'), + meta: { + locale: 'menu.system.config', + requiresAuth: true, + }, + }, + { + name: 'File', + path: '/system/file', + component: () => import('@/views/system/file/index.vue'), + meta: { + locale: 'menu.system.file.list', + requiresAuth: true, + }, + }, + ], +}; + +export default System; diff --git a/src/router/routes/modules/tool.ts b/src/router/routes/modules/tool.ts new file mode 100644 index 0000000..1da441f --- /dev/null +++ b/src/router/routes/modules/tool.ts @@ -0,0 +1,27 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const Tool: AppRouteRecordRaw = { + name: 'Tool', + path: '/tool', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.tool', + icon: 'tool', + requiresAuth: true, + order: 2, + }, + children: [ + { + name: 'Generator', + path: '/tool/generator', + component: () => import('@/views/tool/generator/index.vue'), + meta: { + locale: 'menu.tool.generator.list', + requiresAuth: true, + }, + }, + ], +}; + +export default Tool; diff --git a/src/router/routes/types.ts b/src/router/routes/types.ts new file mode 100644 index 0000000..6b8e8d7 --- /dev/null +++ b/src/router/routes/types.ts @@ -0,0 +1,20 @@ +import { defineComponent } from 'vue'; +import type { RouteMeta, NavigationGuard } from 'vue-router'; + +export type Component = + | ReturnType + | (() => Promise) + | (() => Promise); + +export interface AppRouteRecordRaw { + path: string; + name?: string | symbol; + meta?: RouteMeta; + redirect?: string; + component: Component | string; + children?: AppRouteRecordRaw[]; + alias?: string | string[]; + props?: Record; + beforeEnter?: NavigationGuard | NavigationGuard[]; + fullPath?: string; +} diff --git a/src/router/typings.d.ts b/src/router/typings.d.ts new file mode 100644 index 0000000..5ccaa70 --- /dev/null +++ b/src/router/typings.d.ts @@ -0,0 +1,16 @@ +import 'vue-router'; + +declare module 'vue-router' { + interface RouteMeta { + roles?: string[]; // Controls roles that have access to the page + requiresAuth: boolean; // Whether login is required to access the current page (every route must declare) + icon?: string; // The icon show in the side menu + locale?: string; // The locale name show in side menu and breadcrumb + hideInMenu?: boolean; // If true, it is not displayed in the side menu + hideChildrenInMenu?: boolean; // if set true, the children are not displayed in the side menu + activeMenu?: string; // if set name, the menu will be highlighted according to the name you set + order?: number; // Sort routing menu items. If set key, the higher the value, the more forward it is + noAffix?: boolean; // if set true, the tag will not affix in the tab-bar + ignoreCache?: boolean; // if set true, the page will not be cached + } +} diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..f4838cd --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,10 @@ +import { createPinia } from 'pinia'; +import useAppStore from './modules/app'; +import useUserStore from './modules/user'; +import useDictStore from './modules/dict'; +import useTabBarStore from './modules/tab-bar'; + +const pinia = createPinia(); + +export { useAppStore, useUserStore, useDictStore, useTabBarStore }; +export default pinia; diff --git a/src/store/modules/app/index.ts b/src/store/modules/app/index.ts new file mode 100644 index 0000000..401dee5 --- /dev/null +++ b/src/store/modules/app/index.ts @@ -0,0 +1,160 @@ +import { defineStore } from 'pinia'; +import { h } from 'vue'; +import { Message } from '@arco-design/web-vue'; +import { + IconCheckCircleFill, + IconCloseCircleFill, +} from '@arco-design/web-vue/es/icon'; +import type { MessageReturn } from '@arco-design/web-vue/es/message/interface'; +import type { RouteRecordNormalized } from 'vue-router'; +import defaultSettings from '@/config/settings.json'; +import { listRoute } from '@/api/auth'; +import { listOption } from '@/api/common'; +import { AppState, Config } from './types'; + +const recursionMenu = ( + appMenu: RouteRecordNormalized[], + list: Array, +) => { + appMenu.forEach((item) => { + const childrenAppMenu = item.children as RouteRecordNormalized[]; + if (childrenAppMenu != null && childrenAppMenu.length > 0) { + recursionMenu(childrenAppMenu, list); + } else { + list.push(item); + } + }); +}; +const useAppStore = defineStore('app', { + state: (): AppState => ({ ...defaultSettings, config: {} }), + + getters: { + appCurrentSetting(state: AppState): AppState { + return { ...state }; + }, + appDevice(state: AppState) { + return state.device; + }, + appAsyncMenus(state: AppState): RouteRecordNormalized[] { + return state.serverMenu as unknown as RouteRecordNormalized[]; + }, + appAsyncMenusAll(state: AppState): RouteRecordNormalized[] { + const menuList: RouteRecordNormalized[] = []; + recursionMenu( + state.serverMenu as unknown as RouteRecordNormalized[], + menuList, + ); + return menuList; + }, + getLogo(state: AppState): string | undefined { + return state.config?.site_logo; + }, + getFavicon(state: AppState): string | undefined { + return state.config?.site_favicon; + }, + getTitle(state: AppState): string | undefined { + return state.config?.site_title; + }, + getCopyright(state: AppState): string | undefined { + return state.config?.site_copyright; + }, + }, + + actions: { + // Update app settings + updateSettings(partial: Partial) { + // @ts-ignore-next-line + this.$patch(partial); + }, + + // Change theme color + toggleTheme(dark: boolean) { + if (dark) { + this.theme = 'dark'; + document.body.setAttribute('arco-theme', 'dark'); + } else { + this.theme = 'light'; + document.body.removeAttribute('arco-theme'); + } + }, + toggleDevice(device: string) { + this.device = device; + }, + toggleMenu(value: boolean) { + this.hideMenu = value; + }, + async fetchServerMenuConfig() { + let messageInstance: MessageReturn | null = null; + try { + messageInstance = Message.loading({ + id: 'menuNotice', // Keep the instance id the same + content: '菜单加载中', + }); + const { data } = await listRoute(); + this.serverMenu = data; + messageInstance = Message.success({ + id: 'menuNotice', + content: '菜单加载成功', + duration: 1000, + icon: () => h(IconCheckCircleFill), + }); + } catch (error) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + messageInstance = Message.error({ + id: 'menuNotice', + content: '菜单加载失败', + icon: () => h(IconCloseCircleFill), + }); + } + }, + clearServerMenu() { + this.serverMenu = []; + }, + + /** + * 初始化系统配置信息 + */ + init() { + listOption({ + code: ['site_title', 'site_copyright', 'site_favicon', 'site_logo'], + }).then((res) => { + const resMap = new Map(); + res.data.forEach((item) => { + resMap.set(item.label, item.value); + }); + this.config = { + site_title: resMap.get('site_title'), + site_copyright: resMap.get('site_copyright'), + site_logo: resMap.get('site_logo'), + site_favicon: resMap.get('site_logo'), + }; + document.title = resMap.get('site_title'); + document + .querySelector('link[rel="shortcut icon"]') + ?.setAttribute( + 'href', + resMap.get('site_favicon') || + 'https://cnadmin.charles7c.top/favicon.ico', + ); + }); + }, + + /** + * 保存系统配置 + * + * @param config 系统配置 + */ + save(config: Config) { + this.config = config; + document.title = config.site_title || ''; + document + .querySelector('link[rel="shortcut icon"]') + ?.setAttribute( + 'href', + config.site_favicon || 'https://cnadmin.charles7c.top/favicon.ico', + ); + }, + }, +}); + +export default useAppStore; diff --git a/src/store/modules/app/types.ts b/src/store/modules/app/types.ts new file mode 100644 index 0000000..616e3ce --- /dev/null +++ b/src/store/modules/app/types.ts @@ -0,0 +1,28 @@ +import type { RouteRecordNormalized } from 'vue-router'; + +export interface Config { + site_title?: string; + site_copyright?: string; + site_logo?: string; + site_favicon?: string; +} +export interface AppState { + theme: string; + colorWeak: boolean; + navbar: boolean; + menu: boolean; + topMenu: boolean; + menuAccordion: boolean; + hideMenu: boolean; + menuCollapse: boolean; + footer: boolean; + themeColor: string; + menuWidth: number; + globalSettings: boolean; + device: string; + tabBar: boolean; + menuFromServer: boolean; + serverMenu: RouteRecordNormalized[]; + [key: string]: unknown; + config: Config; +} diff --git a/src/store/modules/dict/index.ts b/src/store/modules/dict/index.ts new file mode 100644 index 0000000..dd22445 --- /dev/null +++ b/src/store/modules/dict/index.ts @@ -0,0 +1,50 @@ +import { defineStore } from 'pinia'; +import { DictState, LabelValueState } from '@/store/modules/dict/types'; + +const useDictStore = defineStore('dict', { + state: () => ({ dict: [] as Array }), + actions: { + // 获取字典 + getDict(_code: string) { + if (_code == null || _code === '') { + return null; + } + for (let i = 0; i < this.dict.length; i += 1) { + if (this.dict[i].code === _code) { + return this.dict[i].items; + } + } + return null; + }, + // 设置字典 + setDict(_code: string, items: Array) { + if (_code !== null && _code !== '') { + this.dict.push({ + code: _code, + items, + }); + } + }, + // 删除字典 + deleteDict(_code: string) { + let bln = false; + try { + for (let i = 0; i < this.dict.length; i += 1) { + if (this.dict[i].code === _code) { + this.dict.splice(i, 1); + return true; + } + } + } catch (e) { + bln = false; + } + return bln; + }, + // 清空字典 + cleanDict() { + this.dict = []; + }, + }, +}); + +export default useDictStore; diff --git a/src/store/modules/dict/types.ts b/src/store/modules/dict/types.ts new file mode 100644 index 0000000..ba4357c --- /dev/null +++ b/src/store/modules/dict/types.ts @@ -0,0 +1,10 @@ +export interface LabelValueState { + label: string; + value: any; + color?: string; +} + +export interface DictState { + code: string; + items: Array; +} diff --git a/src/store/modules/file.ts b/src/store/modules/file.ts new file mode 100644 index 0000000..747eb7b --- /dev/null +++ b/src/store/modules/file.ts @@ -0,0 +1,42 @@ +import { defineStore } from 'pinia'; +import { ref, computed } from 'vue'; +import type { FileItem } from '@/api/system/file'; + +type TViewMode = 'grid' | 'list'; + +const storeSetup = () => { + const viewMode = ref('grid'); // 视图: grid宫格模式 list列表模式 + const isBatchMode = ref(false); // 是否批量操作 + const selectedFileList = ref([]); + const selectedFileIds = computed(() => + selectedFileList.value.map((i) => i.id), + ); + + // 改变视图模式 + const changeViewMode = () => { + viewMode.value = viewMode.value === 'grid' ? 'list' : 'grid'; + }; + + // 添加选中的文件到文件勾选列表 + const addSelectedFileItem = (item: FileItem) => { + if (selectedFileIds.value.includes(item.id)) { + const index = selectedFileList.value.findIndex((i) => i.id === item.id); + selectedFileList.value.splice(index, 1); + } else { + selectedFileList.value.push(item); + } + }; + + return { + viewMode, + isBatchMode, + selectedFileList, + selectedFileIds, + changeViewMode, + addSelectedFileItem, + }; +}; + +export const useFileStore = defineStore('file', storeSetup, { + // persist: { storage: localStorage, paths: ['viewMode', 'selectedFileList'] }, +}); diff --git a/src/store/modules/tab-bar/index.ts b/src/store/modules/tab-bar/index.ts new file mode 100644 index 0000000..9cceb8d --- /dev/null +++ b/src/store/modules/tab-bar/index.ts @@ -0,0 +1,74 @@ +import type { RouteLocationNormalized } from 'vue-router'; +import { defineStore } from 'pinia'; +import { + DEFAULT_ROUTE, + DEFAULT_ROUTE_NAME, + REDIRECT_ROUTE_NAME, +} from '@/router/constants'; +import { isString } from '@/utils/is'; +import { TabBarState, TagProps } from './types'; + +const formatTag = (route: RouteLocationNormalized): TagProps => { + const { name, meta, fullPath, query } = route; + return { + title: meta.locale || '', + name: String(name), + fullPath, + query, + ignoreCache: meta.ignoreCache, + }; +}; + +const BAN_LIST = [REDIRECT_ROUTE_NAME]; + +const useTabBarStore = defineStore('tabBar', { + state: (): TabBarState => ({ + cacheTabList: new Set([DEFAULT_ROUTE_NAME]), + tagList: [DEFAULT_ROUTE], + }), + + getters: { + getTabList(): TagProps[] { + return this.tagList; + }, + getCacheList(): string[] { + return Array.from(this.cacheTabList); + }, + }, + + actions: { + updateTabList(route: RouteLocationNormalized) { + if (BAN_LIST.includes(route.name as string)) return; + this.tagList.push(formatTag(route)); + if (!route.meta.ignoreCache) { + this.cacheTabList.add(route.name as string); + } + }, + deleteTag(idx: number, tag: TagProps) { + this.tagList.splice(idx, 1); + this.cacheTabList.delete(tag.name); + }, + addCache(name: string) { + if (isString(name) && name !== '') this.cacheTabList.add(name); + }, + deleteCache(tag: TagProps) { + this.cacheTabList.delete(tag.name); + }, + freshTabList(tags: TagProps[]) { + this.tagList = tags; + this.cacheTabList.clear(); + // 要先判断ignoreCache + this.tagList + .filter((el) => !el.ignoreCache) + .map((el) => el.name) + .forEach((x) => this.cacheTabList.add(x)); + }, + resetTabList() { + this.tagList = [DEFAULT_ROUTE]; + this.cacheTabList.clear(); + this.cacheTabList.add(DEFAULT_ROUTE_NAME); + }, + }, +}); + +export default useTabBarStore; diff --git a/src/store/modules/tab-bar/types.ts b/src/store/modules/tab-bar/types.ts new file mode 100644 index 0000000..29c1c53 --- /dev/null +++ b/src/store/modules/tab-bar/types.ts @@ -0,0 +1,12 @@ +export interface TagProps { + title: string; + name: string; + fullPath: string; + query?: any; + ignoreCache?: boolean; +} + +export interface TabBarState { + tagList: TagProps[]; + cacheTabList: Set; +} diff --git a/src/store/modules/user/index.ts b/src/store/modules/user/index.ts new file mode 100644 index 0000000..4ab25d3 --- /dev/null +++ b/src/store/modules/user/index.ts @@ -0,0 +1,126 @@ +import { defineStore } from 'pinia'; +import { + AccountLoginReq, + EmailLoginReq, + PhoneLoginReq, + accountLogin as userAccountLogin, + emailLogin as userEmailLogin, + phoneLogin as userPhoneLogin, + socialLogin as userSocialLogin, + logout as userLogout, + getUserInfo, +} from '@/api/auth'; +import { getImageCaptcha as getCaptcha } from '@/api/common/captcha'; +import { setToken, clearToken, clearTimer } from '@/utils/auth'; +import { removeRouteListener } from '@/utils/route-listener'; +import { UserState } from './types'; +import useAppStore from '../app'; + +const useUserStore = defineStore('user', { + state: (): UserState => ({ + id: '', + username: '', + nickname: '', + gender: 0, + phone: undefined, + email: '', + avatar: undefined, + description: undefined, + pwdResetTime: undefined, + registrationDate: undefined, + deptId: '', + deptName: '', + permissions: [], + roles: [], + }), + + getters: { + userInfo(state: UserState): UserState { + return { ...state }; + }, + }, + + actions: { + // 获取图片验证码 + getImgCaptcha() { + return getCaptcha(); + }, + + // 账号登录 + async accountLogin(req: AccountLoginReq) { + try { + const res = await userAccountLogin(req); + setToken(res.data.token); + } catch (err) { + clearToken(); + throw err; + } + }, + + // 邮箱登录 + async emailLogin(req: EmailLoginReq) { + try { + const res = await userEmailLogin(req); + setToken(res.data.token); + } catch (err) { + clearToken(); + throw err; + } + }, + + // 手机号登录 + async phoneLogin(req: PhoneLoginReq) { + try { + const res = await userPhoneLogin(req); + setToken(res.data.token); + } catch (err) { + clearToken(); + throw err; + } + }, + + // 三方账号身份登录 + async socialLogin(source: string, req: any) { + try { + const res = await userSocialLogin(source, req); + setToken(res.data.token); + } catch (err) { + clearToken(); + throw err; + } + }, + + // 用户退出 + async logout() { + try { + await userLogout(); + } finally { + this.logoutCallBack(); + } + }, + logoutCallBack() { + const appStore = useAppStore(); + this.resetInfo(); + clearToken(); + clearTimer(); + removeRouteListener(); + appStore.clearServerMenu(); + }, + + // 获取用户信息 + async getInfo() { + const res = await getUserInfo(); + this.setInfo(res.data); + }, + // 设置用户信息 + setInfo(partial: Partial) { + this.$patch(partial); + }, + // 重置用户信息 + resetInfo() { + this.$reset(); + }, + }, +}); + +export default useUserStore; diff --git a/src/store/modules/user/types.ts b/src/store/modules/user/types.ts new file mode 100644 index 0000000..63a6627 --- /dev/null +++ b/src/store/modules/user/types.ts @@ -0,0 +1,16 @@ +export interface UserState { + id: string; + username: string; + nickname: string; + gender: number; + phone?: string; + email: string; + avatar?: string; + description?: string; + pwdResetTime?: string; + registrationDate?: string; + deptId?: string; + deptName?: string; + permissions: Array; + roles: Array; +} diff --git a/src/types/echarts.ts b/src/types/echarts.ts new file mode 100644 index 0000000..ac4578a --- /dev/null +++ b/src/types/echarts.ts @@ -0,0 +1,10 @@ +import { CallbackDataParams } from 'echarts/types/dist/shared'; + +export interface ToolTipFormatterParams extends CallbackDataParams { + axisDim: string; + axisIndex: number; + axisType: string; + axisId: string; + axisValue: string; + axisValueLabel: string; +} diff --git a/src/types/global.ts b/src/types/global.ts new file mode 100644 index 0000000..30ac3af --- /dev/null +++ b/src/types/global.ts @@ -0,0 +1,37 @@ +export interface AnyObject { + [key: string]: unknown; +} + +export interface Options { + value: unknown; + label: string; +} + +export interface NodeOptions extends Options { + children?: NodeOptions[]; +} + +export interface GetParams { + body: null; + type: string; + url: string; +} + +export interface PostData { + body: string; + type: string; + url: string; +} + +export interface Pagination { + current: number; + pageSize: number; + total?: number; +} + +export type TimeRanger = [string, string]; + +export interface GeneralChart { + xAxis: string[]; + data: Array<{ name: string; value: number[] }>; +} diff --git a/src/types/mock.ts b/src/types/mock.ts new file mode 100644 index 0000000..9219ef4 --- /dev/null +++ b/src/types/mock.ts @@ -0,0 +1,5 @@ +export interface MockParams { + url: string; + type: string; + body: string; +} diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100644 index 0000000..5d4d5ed --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,32 @@ +const TIMER_KEY = 'timer'; +const TOKEN_KEY = 'token'; + +const isLogin = () => { + return !!localStorage.getItem(TOKEN_KEY); +}; + +const getToken = () => { + return localStorage.getItem(TOKEN_KEY); +}; + +const setToken = (token: string) => { + localStorage.setItem(TOKEN_KEY, token); +}; + +const clearToken = () => { + localStorage.removeItem(TOKEN_KEY); +}; + +const setTimer = (timer: number) => { + localStorage.setItem(TIMER_KEY, String(timer)); +}; + +const clearTimer = () => { + const timer = localStorage.getItem(TIMER_KEY); + if (timer) { + clearInterval(Number(timer)); + localStorage.removeItem(TIMER_KEY); + } +}; + +export { isLogin, getToken, setToken, clearToken, setTimer, clearTimer }; diff --git a/src/utils/avatar.ts b/src/utils/avatar.ts new file mode 100644 index 0000000..52b6ad4 --- /dev/null +++ b/src/utils/avatar.ts @@ -0,0 +1,20 @@ +import Unknown from '../assets/images/avatar/unknown.png'; +import Male from '../assets/images/avatar/male.png'; +import Female from '../assets/images/avatar/female.png'; + +export default function getAvatar( + avatar: string | undefined, + gender: number | undefined, +) { + if (avatar) { + return avatar; + } + + if (gender === 1) { + return Male; + } + if (gender === 2) { + return Female; + } + return Unknown; +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts new file mode 100644 index 0000000..f652d0d --- /dev/null +++ b/src/utils/dict.ts @@ -0,0 +1,27 @@ +import { ref, toRefs } from 'vue'; +import { listDict } from '@/api/common'; +import { useDictStore } from '@/store'; + +/** + * 获取字典数据 + * + * @param codes 字典编码列表 + */ +export default function useDict(...codes: Array) { + const res = ref({}); + return (() => { + codes.forEach((code) => { + res.value[code] = []; + const dict = useDictStore().getDict(code); + if (dict) { + res.value[code] = dict; + } else { + listDict(code).then((resp) => { + res.value[code] = resp.data; + useDictStore().setDict(code, res.value[code]); + }); + } + }); + return toRefs(res.value); + })(); +} diff --git a/src/utils/encrypt.ts b/src/utils/encrypt.ts new file mode 100644 index 0000000..0a53135 --- /dev/null +++ b/src/utils/encrypt.ts @@ -0,0 +1,26 @@ +import Base64 from 'crypto-js/enc-base64'; +import UTF8 from 'crypto-js/enc-utf8'; +import { JSEncrypt } from 'jsencrypt'; +import md5 from 'crypto-js/md5'; + +export function encodeByBase64(txt: string) { + return UTF8.parse(txt).toString(Base64); +} + +export function decodeByBase64(txt: string) { + return Base64.parse(txt).toString(UTF8); +} + +export function encryptByMd5(txt: string) { + return md5(txt).toString(); +} + +const publicKey = + 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM51dgYtMyF+tTQt80sfFOpSV27a7t9u' + + 'aUVeFrdGiVxscuizE7H8SMntYqfn9lp8a5GH5P1/GGehVjUD2gF/4kcCAwEAAQ=='; + +export function encryptByRsa(txt: string) { + const encryptor = new JSEncrypt(); + encryptor.setPublicKey(publicKey); // 设置公钥 + return encryptor.encrypt(txt); // 对数据进行加密 +} diff --git a/src/utils/env.ts b/src/utils/env.ts new file mode 100644 index 0000000..4147b35 --- /dev/null +++ b/src/utils/env.ts @@ -0,0 +1,3 @@ +const debug = import.meta.env.MODE !== 'production'; + +export default debug; diff --git a/src/utils/event.ts b/src/utils/event.ts new file mode 100644 index 0000000..4aaad0b --- /dev/null +++ b/src/utils/event.ts @@ -0,0 +1,27 @@ +export function addEventListen( + target: Window | HTMLElement, + event: string, + handler: EventListenerOrEventListenerObject, + capture = false, +) { + if ( + target.addEventListener && + typeof target.addEventListener === 'function' + ) { + target.addEventListener(event, handler, capture); + } +} + +export function removeEventListen( + target: Window | HTMLElement, + event: string, + handler: EventListenerOrEventListenerObject, + capture = false, +) { + if ( + target.removeEventListener && + typeof target.removeEventListener === 'function' + ) { + target.removeEventListener(event, handler, capture); + } +} diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..0e03384 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,25 @@ +type TargetContext = '_self' | '_parent' | '_blank' | '_top'; + +export const openWindow = ( + url: string, + opts?: { target?: TargetContext; [key: string]: any }, +) => { + const { target = '_blank', ...others } = opts || {}; + window.open( + url, + target, + Object.entries(others) + .reduce((preValue: string[], curValue) => { + const [key, value] = curValue; + return [...preValue, `${key}=${value}`]; + }, []) + .join(','), + ); +}; + +export const regexUrl = new RegExp( + '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', + 'i', +); + +export default null; diff --git a/src/utils/is.ts b/src/utils/is.ts new file mode 100644 index 0000000..99deea8 --- /dev/null +++ b/src/utils/is.ts @@ -0,0 +1,53 @@ +const opt = Object.prototype.toString; + +export function isArray(obj: any): obj is any[] { + return opt.call(obj) === '[object Array]'; +} + +export function isObject(obj: any): obj is { [key: string]: any } { + return opt.call(obj) === '[object Object]'; +} + +export function isString(obj: any): obj is string { + return opt.call(obj) === '[object String]'; +} + +export function isNumber(obj: any): obj is number { + return opt.call(obj) === '[object Number]' && obj === obj; // eslint-disable-line +} + +export function isRegExp(obj: any) { + return opt.call(obj) === '[object RegExp]'; +} + +export function isFile(obj: any): obj is File { + return opt.call(obj) === '[object File]'; +} + +export function isBlob(obj: any): obj is Blob { + return opt.call(obj) === '[object Blob]'; +} + +export function isUndefined(obj: any): obj is undefined { + return obj === undefined; +} + +export function isNull(obj: any): obj is null { + return obj === null; +} + +export function isFunction(obj: any): obj is (...args: any[]) => any { + return typeof obj === 'function'; +} + +export function isEmptyObject(obj: any): boolean { + return isObject(obj) && Object.keys(obj).length === 0; +} + +export function isExist(obj: any): boolean { + return obj || obj === 0; +} + +export function isWindow(el: any): el is Window { + return el === window; +} diff --git a/src/utils/message-error-wrapper.ts b/src/utils/message-error-wrapper.ts new file mode 100644 index 0000000..1866082 --- /dev/null +++ b/src/utils/message-error-wrapper.ts @@ -0,0 +1,11 @@ +import { Message, MessageReturn } from '@arco-design/web-vue'; + +let messageInstance: MessageReturn | null; +const messageErrorWrapper = (options: any) => { + if (messageInstance) { + messageInstance.close(); + } + messageInstance = Message.error(options); +}; + +export default messageErrorWrapper; diff --git a/src/utils/modal-error-wrapper.ts b/src/utils/modal-error-wrapper.ts new file mode 100644 index 0000000..7a8412a --- /dev/null +++ b/src/utils/modal-error-wrapper.ts @@ -0,0 +1,11 @@ +import { Modal, ModalReturn } from '@arco-design/web-vue'; + +let modalInstance: ModalReturn | null; +const modalErrorWrapper = (options: any) => { + if (modalInstance) { + modalInstance.close(); + } + modalInstance = Modal.error(options); +}; + +export default modalErrorWrapper; diff --git a/src/utils/monitor.ts b/src/utils/monitor.ts new file mode 100644 index 0000000..7b49015 --- /dev/null +++ b/src/utils/monitor.ts @@ -0,0 +1,28 @@ +import { App, ComponentPublicInstance } from 'vue'; +import axios from 'axios'; + +export default function handleError(Vue: App, baseUrl: string) { + if (!baseUrl) { + return; + } + Vue.config.errorHandler = ( + err: unknown, + instance: ComponentPublicInstance | null, + info: string + ) => { + // send error info + axios.post(`${baseUrl}/report-error`, { + err, + instance, + info, + // location: window.location.href, + // message: err.message, + // stack: err.stack, + // browserInfo: getBrowserInfo(), + // user info + // dom info + // url info + // ... + }); + }; +} diff --git a/src/utils/permission.ts b/src/utils/permission.ts new file mode 100644 index 0000000..5097170 --- /dev/null +++ b/src/utils/permission.ts @@ -0,0 +1,32 @@ +import { useUserStore } from '@/store'; + +/** + * 权限判断 + * + * @param value 权限码列表 + * @return true:有权限;false:没有权限 + */ +export default function checkPermission(value: Array) { + const userStore = useUserStore(); + const { permissions, roles } = userStore; + const superAdmin = 'admin'; + const allPermission = '*'; + + if (Array.isArray(value) && value.length > 0) { + const permissionValues = value; + // 校验权限码 + const hasPermission = permissions.some((permission: string) => { + return ( + allPermission === permission || permissionValues.includes(permission) + ); + }); + // 检验角色编码 + const hasRole = roles.some((role: string) => { + return superAdmin === role || permissionValues.includes(role); + }); + return hasPermission || hasRole; + } + throw new Error( + `need roles! Like v-permission="['admin','system:user:add']"`, + ); +} diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..4256509 --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,82 @@ +import axios from 'axios'; +import type { AxiosRequestConfig, AxiosResponse } from 'axios'; +import { useUserStore } from '@/store'; +import { getToken, clearTimer } from '@/utils/auth'; +import modalErrorWrapper from '@/utils/modal-error-wrapper'; +import messageErrorWrapper from '@/utils/message-error-wrapper'; + +// default config +if (import.meta.env.VITE_API_BASE_URL) { + axios.defaults.baseURL = import.meta.env.VITE_API_BASE_URL; + axios.defaults.timeout = 60000; // 1 分钟 +} + +export interface HttpResponse { + success: boolean; // 是否成功 + code: number; // 状态码 + msg: string; // 状态信息 + data: T; // 返回数据 + timestamp: string; // 时间戳 +} + +// request interceptors +axios.interceptors.request.use( + (config: AxiosRequestConfig) => { + const token = getToken(); + if (token) { + if (!config.headers) { + config.headers = {}; + } + config.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + (error) => { + return Promise.reject(error); + }, +); + +// response interceptors +axios.interceptors.response.use( + (response: AxiosResponse) => { + // 二进制数据则直接返回 + if ( + response.request.responseType === 'blob' || + response.request.responseType === 'arraybuffer' + ) { + return response; + } + const res = response.data; + if (res.success) { + return res; + } + if ([401].includes(res.code) && response.config.url !== '/auth/user/info') { + clearTimer(); + modalErrorWrapper({ + title: '确认退出', + content: res.msg, + maskClosable: false, + escToClose: false, + okText: '重新登录', + async onOk() { + const userStore = useUserStore(); + userStore.logoutCallBack(); + window.location.reload(); + }, + }); + } else { + messageErrorWrapper({ + content: res.msg || '网络错误', + duration: 5 * 1000, + }); + } + return Promise.reject(new Error(res.msg || '网络错误')); + }, + (error) => { + messageErrorWrapper({ + content: error.msg || '网络错误', + duration: 5 * 1000, + }); + return Promise.reject(error); + }, +); diff --git a/src/utils/route-listener.ts b/src/utils/route-listener.ts new file mode 100644 index 0000000..5072330 --- /dev/null +++ b/src/utils/route-listener.ts @@ -0,0 +1,31 @@ +/** + * Listening to routes alone would waste rendering performance. Use the publish-subscribe model for distribution management + * 单独监听路由会浪费渲染性能。使用发布订阅模式去进行分发管理。 + */ +import mitt, { Handler } from 'mitt'; +import type { RouteLocationNormalized } from 'vue-router'; + +const emitter = mitt(); + +const key = Symbol('ROUTE_CHANGE'); + +let latestRoute: RouteLocationNormalized; + +export function setRouteEmitter(to: RouteLocationNormalized) { + emitter.emit(key, to); + latestRoute = to; +} + +export function listenerRouteChange( + handler: (route: RouteLocationNormalized) => void, + immediate = true, +) { + emitter.on(key, handler as Handler); + if (immediate && latestRoute) { + handler(latestRoute); + } +} + +export function removeRouteListener() { + emitter.off(key); +} diff --git a/src/utils/setup-mock.ts b/src/utils/setup-mock.ts new file mode 100644 index 0000000..c59f029 --- /dev/null +++ b/src/utils/setup-mock.ts @@ -0,0 +1,29 @@ +// import debug from './env'; + +export default ({ mock, setup }: { mock?: boolean; setup: () => void }) => { + // 仅在开发环境启用 mock + // if (mock !== false && debug) setup(); + + // 在生产环境也启用 mock + if (mock !== false) setup(); +}; + +export const successResponseWrap = (data: unknown) => { + return { + success: true, + code: 200, + msg: '操作成功', + data, + timestamp: new Date().getTime(), + }; +}; + +export const failResponseWrap = (data: unknown, msg: string, code = 500) => { + return { + success: false, + code, + msg, + data, + timestamp: new Date().getTime(), + }; +}; diff --git a/src/views/dashboard/workplace/components/access-trend.vue b/src/views/dashboard/workplace/components/access-trend.vue new file mode 100644 index 0000000..26c80a3 --- /dev/null +++ b/src/views/dashboard/workplace/components/access-trend.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/announcement.vue b/src/views/dashboard/workplace/components/announcement.vue new file mode 100644 index 0000000..64ce683 --- /dev/null +++ b/src/views/dashboard/workplace/components/announcement.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/banner.vue b/src/views/dashboard/workplace/components/banner.vue new file mode 100644 index 0000000..5541d1e --- /dev/null +++ b/src/views/dashboard/workplace/components/banner.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/carousel.vue b/src/views/dashboard/workplace/components/carousel.vue new file mode 100644 index 0000000..6b6f2c1 --- /dev/null +++ b/src/views/dashboard/workplace/components/carousel.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/views/dashboard/workplace/components/data-panel.vue b/src/views/dashboard/workplace/components/data-panel.vue new file mode 100644 index 0000000..496678f --- /dev/null +++ b/src/views/dashboard/workplace/components/data-panel.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/docs.vue b/src/views/dashboard/workplace/components/docs.vue new file mode 100644 index 0000000..bf5517e --- /dev/null +++ b/src/views/dashboard/workplace/components/docs.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/geo-distribution.vue b/src/views/dashboard/workplace/components/geo-distribution.vue new file mode 100644 index 0000000..dd3a2b6 --- /dev/null +++ b/src/views/dashboard/workplace/components/geo-distribution.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/popular-module.vue b/src/views/dashboard/workplace/components/popular-module.vue new file mode 100644 index 0000000..4bedc7b --- /dev/null +++ b/src/views/dashboard/workplace/components/popular-module.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/quick-operation.vue b/src/views/dashboard/workplace/components/quick-operation.vue new file mode 100644 index 0000000..bfcdb7a --- /dev/null +++ b/src/views/dashboard/workplace/components/quick-operation.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/views/dashboard/workplace/components/recently-visited.vue b/src/views/dashboard/workplace/components/recently-visited.vue new file mode 100644 index 0000000..049dc79 --- /dev/null +++ b/src/views/dashboard/workplace/components/recently-visited.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/dashboard/workplace/index.vue b/src/views/dashboard/workplace/index.vue new file mode 100644 index 0000000..3dc73f4 --- /dev/null +++ b/src/views/dashboard/workplace/index.vue @@ -0,0 +1,148 @@ + + + + + + + + + diff --git a/src/views/dashboard/workplace/locale/en-US.ts b/src/views/dashboard/workplace/locale/en-US.ts new file mode 100644 index 0000000..9571503 --- /dev/null +++ b/src/views/dashboard/workplace/locale/en-US.ts @@ -0,0 +1,34 @@ +export default { + 'menu.dashboard.workplace': 'Workplace', + 'workplace.welcome': 'Welcome!', + 'workplace.balance': 'Balance (CNY)', + 'workplace.order.pending': 'Pending', + 'workplace.order.pendingRenewal': 'Renewal Order', + 'workplace.pvCount': 'Pv Count', + 'workplace.ipCount': 'Ip Count', + 'workplace.todayPvCount': 'Today Pv Count', + 'workplace.newPvFromYesterday': 'New Pv From Yesterday', + 'workplace.minute': 'Min', + 'workplace.docs': 'Documents', + 'workplace.docs.intro': 'Project Introduction', + 'workplace.docs.userGuide': 'User Guide', + 'workplace.docs.faq': 'FAQ', + 'workplace.docs.changelog': 'Change Log', + 'workplace.docs.require': 'Require', + 'workplace.docs.sponsor': 'Sponsor', + 'workplace.announcement': 'Announcement', + 'workplace.recently.visited': 'Recently Visited', + 'workplace.record.nodata': 'No data', + 'workplace.quick.operation': 'Quick Operation', + 'workplace.quickOperation.setup': 'Setup', + 'workplace.allProject': 'All', + 'workplace.loadMore': 'More', + 'workplace.viewMore': 'More', + 'workplace.accessTrend': 'Access Trend', + 'workplace.accessTrend.dateRange7': 'Last 7 Days', + 'workplace.accessTrend.dateRange30': 'Last 30 Days', + 'workplace.popularModule': 'Popular Module(Top10)', + 'workplace.geoDistribution': 'Geo Distribution(Top10)', + 'workplace.unit.pecs': 'pecs', + 'workplace.unit.times': 'times', +}; diff --git a/src/views/dashboard/workplace/locale/zh-CN.ts b/src/views/dashboard/workplace/locale/zh-CN.ts new file mode 100644 index 0000000..128d656 --- /dev/null +++ b/src/views/dashboard/workplace/locale/zh-CN.ts @@ -0,0 +1,34 @@ +export default { + 'menu.dashboard.workplace': '工作台', + 'workplace.welcome': '欢迎回来!', + 'workplace.balance': '余额(元)', + 'workplace.order.pending': '待支付', + 'workplace.order.pendingRenewal': '待续费订单', + 'workplace.pvCount': '浏览量(PV)', + 'workplace.ipCount': 'IP数', + 'workplace.todayPvCount': '今日浏览量', + 'workplace.newPvFromYesterday': '较昨日新增', + 'workplace.minute': '分钟', + 'workplace.docs': '帮助文档', + 'workplace.docs.intro': '项目简介', + 'workplace.docs.userGuide': '使用指南', + 'workplace.docs.faq': '常见问题', + 'workplace.docs.changelog': '更新日志', + 'workplace.docs.require': '需求墙', + 'workplace.docs.sponsor': '赞助支持', + 'workplace.announcement': '公告', + 'workplace.recently.visited': '最近访问', + 'workplace.record.nodata': '暂无数据', + 'workplace.quick.operation': '快捷操作', + 'workplace.quickOperation.setup': '管理', + 'workplace.allProject': '所有项目', + 'workplace.loadMore': '加载更多', + 'workplace.viewMore': '查看更多', + 'workplace.accessTrend': '访问趋势', + 'workplace.accessTrend.dateRange7': '近7天', + 'workplace.accessTrend.dateRange30': '近30天', + 'workplace.popularModule': '热门模块(Top10)', + 'workplace.geoDistribution': '访客地域分布(Top10)', + 'workplace.unit.pecs': '个', + 'workplace.unit.times': '次', +}; diff --git a/src/views/dashboard/workplace/mock.ts b/src/views/dashboard/workplace/mock.ts new file mode 100644 index 0000000..00ffb4a --- /dev/null +++ b/src/views/dashboard/workplace/mock.ts @@ -0,0 +1,129 @@ +import Mock from 'mockjs'; +import qs from 'query-string'; +import dayjs from 'dayjs'; +import { GetParams } from '@/types/global'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +const textList = [ + { + key: 1, + clickNumber: '346.3w+', + title: '经济日报:财政政策要精准提升…', + increases: 35, + }, + { + key: 2, + clickNumber: '324.2w+', + title: '双12遇冷,消费者厌倦了电商平…', + increases: 22, + }, + { + key: 3, + clickNumber: '318.9w+', + title: '致敬坚守战“疫”一线的社区工作…', + increases: 9, + }, + { + key: 4, + clickNumber: '257.9w+', + title: '普高还是职高?家长们陷入选择…', + increases: 17, + }, + { + key: 5, + clickNumber: '124.2w+', + title: '人民快评:没想到“浓眉大眼”的…', + increases: 37, + }, +]; +const imageList = [ + { + key: 1, + clickNumber: '15.3w+', + title: '杨涛接替陆慷出任外交部美大司…', + increases: 15, + }, + { + key: 2, + clickNumber: '12.2w+', + title: '图集:龙卷风袭击美国多州房屋…', + increases: 26, + }, + { + key: 3, + clickNumber: '18.9w+', + title: '52岁大姐贴钱照顾自闭症儿童八…', + increases: 9, + }, + { + key: 4, + clickNumber: '7.9w+', + title: '杭州一家三口公园宿营取暖中毒', + increases: 0, + }, + { + key: 5, + clickNumber: '5.2w+', + title: '派出所副所长威胁市民?警方调…', + increases: 4, + }, +]; +const videoList = [ + { + key: 1, + clickNumber: '367.6w+', + title: '这是今日10点的南京', + increases: 5, + }, + { + key: 2, + clickNumber: '352.2w+', + title: '立陶宛不断挑衅致经济受损民众…', + increases: 17, + }, + { + key: 3, + clickNumber: '348.9w+', + title: '韩国艺人刘在石确诊新冠', + increases: 30, + }, + { + key: 4, + clickNumber: '346.3w+', + title: '关于北京冬奥会,文在寅表态', + increases: 12, + }, + { + key: 5, + clickNumber: '271.2w+', + title: '95后现役军人荣立一等功', + increases: 2, + }, +]; +setupMock({ + setup() { + Mock.mock(new RegExp('/api/content-data'), () => { + const presetData = [58, 81, 53, 90, 64, 88, 49, 79]; + const getLineData = () => { + const count = 8; + return new Array(count).fill(0).map((el, idx) => ({ + x: dayjs() + .day(idx - 2) + .format('YYYY-MM-DD'), + y: presetData[idx], + })); + }; + return successResponseWrap([...getLineData()]); + }); + Mock.mock(new RegExp('/api/popular/list'), (params: GetParams) => { + const { type = 'text' } = qs.parseUrl(params.url).query; + if (type === 'image') { + return successResponseWrap([...videoList]); + } + if (type === 'video') { + return successResponseWrap([...imageList]); + } + return successResponseWrap([...textList]); + }); + }, +}); diff --git a/src/views/demo/exception/403/index.vue b/src/views/demo/exception/403/index.vue new file mode 100644 index 0000000..792ccdb --- /dev/null +++ b/src/views/demo/exception/403/index.vue @@ -0,0 +1,41 @@ + + + + + + + diff --git a/src/views/demo/exception/403/locale/en-US.ts b/src/views/demo/exception/403/locale/en-US.ts new file mode 100644 index 0000000..aecf6f6 --- /dev/null +++ b/src/views/demo/exception/403/locale/en-US.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.403': '403', + 'exception.result.403.description': + 'Access to this resource on the server is denied.', + 'exception.result.403.back': 'Back', +}; diff --git a/src/views/demo/exception/403/locale/zh-CN.ts b/src/views/demo/exception/403/locale/zh-CN.ts new file mode 100644 index 0000000..040d26a --- /dev/null +++ b/src/views/demo/exception/403/locale/zh-CN.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.403': '403', + 'exception.result.403.description': '对不起,您没有访问该资源的权限', + 'exception.result.403.back': '返回', +}; diff --git a/src/views/demo/exception/404/index.vue b/src/views/demo/exception/404/index.vue new file mode 100644 index 0000000..cdc3795 --- /dev/null +++ b/src/views/demo/exception/404/index.vue @@ -0,0 +1,47 @@ + + + + + + + diff --git a/src/views/demo/exception/404/locale/en-US.ts b/src/views/demo/exception/404/locale/en-US.ts new file mode 100644 index 0000000..6b8839a --- /dev/null +++ b/src/views/demo/exception/404/locale/en-US.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.404': '404', + 'exception.result.404.description': 'Whoops, this page is gone.', + 'exception.result.404.retry': 'Retry', + 'exception.result.404.back': 'Back', +}; diff --git a/src/views/demo/exception/404/locale/zh-CN.ts b/src/views/demo/exception/404/locale/zh-CN.ts new file mode 100644 index 0000000..bf4d1ec --- /dev/null +++ b/src/views/demo/exception/404/locale/zh-CN.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.404': '404', + 'exception.result.404.description': '抱歉,页面不见了~', + 'exception.result.404.retry': '重试', + 'exception.result.404.back': '返回', +}; diff --git a/src/views/demo/exception/500/index.vue b/src/views/demo/exception/500/index.vue new file mode 100644 index 0000000..e830b72 --- /dev/null +++ b/src/views/demo/exception/500/index.vue @@ -0,0 +1,41 @@ + + + + + + + diff --git a/src/views/demo/exception/500/locale/en-US.ts b/src/views/demo/exception/500/locale/en-US.ts new file mode 100644 index 0000000..4228ae3 --- /dev/null +++ b/src/views/demo/exception/500/locale/en-US.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.500': '500', + 'exception.result.500.description': 'Internal server error', + 'exception.result.500.back': 'Back', +}; diff --git a/src/views/demo/exception/500/locale/zh-CN.ts b/src/views/demo/exception/500/locale/zh-CN.ts new file mode 100644 index 0000000..590a908 --- /dev/null +++ b/src/views/demo/exception/500/locale/zh-CN.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.500': '500', + 'exception.result.500.description': '抱歉,服务器出了点问题~', + 'exception.result.500.back': '返回', +}; diff --git a/src/views/demo/form/group/index.vue b/src/views/demo/form/group/index.vue new file mode 100644 index 0000000..baa0f09 --- /dev/null +++ b/src/views/demo/form/group/index.vue @@ -0,0 +1,293 @@ + + + + + + + diff --git a/src/views/demo/form/group/locale/en-US.ts b/src/views/demo/form/group/locale/en-US.ts new file mode 100644 index 0000000..dde2786 --- /dev/null +++ b/src/views/demo/form/group/locale/en-US.ts @@ -0,0 +1,41 @@ +export default { + 'menu.form.group': 'Group Form', + 'groupForm.title.video': 'Video Parameters', + 'groupForm.title.audio': 'Audio Parameters', + 'groupForm.title.description': 'Enter Description', + 'groupForm.form.label.video.mode': 'Match Mode', + 'groupForm.form.label.video.acquisition.resolution': 'Acquisition Resolution', + 'groupForm.form.label.video.acquisition.frameRate': 'Acquisition Frame Rate', + 'groupForm.form.label.video.encoding.resolution': 'Encoding Resolution', + 'groupForm.form.label.video.encoding.rate.min': 'Encoding Min Rate', + 'groupForm.form.label.video.encoding.rate.max': 'Encoding Max Rate', + 'groupForm.form.label.video.encoding.rate.default': 'Encoding Default Rate', + 'groupForm.form.label.video.encoding.frameRate': 'Encoding Frame Rate', + 'groupForm.form.label.video.encoding.profile': 'Encoding Profile', + 'groupForm.placeholder.video.mode': 'Please Select', + 'groupForm.placeholder.video.acquisition.resolution': 'Please Select', + 'groupForm.placeholder.video.acquisition.frameRate': 'Enter Range [1, 30]', + 'groupForm.placeholder.video.encoding.resolution': 'Please Select', + 'groupForm.placeholder.video.encoding.rate.min': 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.rate.max': 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.rate.default': + 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.frameRate': 'Enter Range [1, 30]', + 'groupForm.placeholder.video.encoding.profile': 'Enter Range [150, 1800]', + 'groupForm.form.label.audio.mode': 'Match Mode', + 'groupForm.form.label.audio.acquisition.channels': 'Acquisition Channels', + 'groupForm.form.label.audio.encoding.rate': 'Encoding Rate', + 'groupForm.form.label.audio.encoding.channels': 'Encoding Channels', + 'groupForm.placeholder.audio.encoding.channels': 'Enter Range [150, 1800]', + 'groupForm.form.label.audio.encoding.profile': 'Encoding Profile', + 'groupForm.placeholder.audio.mode': 'Please Select', + 'groupForm.placeholder.audio.acquisition.channels': 'Please Select', + 'groupForm.placeholder.audio.encoding.rate': 'Enter Range [150, 1800]', + 'groupForm.placeholder.audio.encoding.profile': 'Enter Range [1, 30]', + 'groupForm.form.label.parameterDescription': 'Parameter Description', + // https://vue-i18n.intlify.dev/guide/essentials/syntax.html#list-interpolation + 'groupForm.placeholder.description': `Please fill in the parameter description with a maximum of 200 words`, + 'groupForm.submit': 'Submit', + 'groupForm.reset': 'Reset', + 'groupForm.submitSuccess': 'Submit Success', +}; diff --git a/src/views/demo/form/group/locale/zh-CN.ts b/src/views/demo/form/group/locale/zh-CN.ts new file mode 100644 index 0000000..d096bce --- /dev/null +++ b/src/views/demo/form/group/locale/zh-CN.ts @@ -0,0 +1,40 @@ +export default { + 'menu.form.group': '分组表单', + 'groupForm.title.video': '视频参数', + 'groupForm.title.audio': '音频参数', + 'groupForm.title.description': '填写说明', + 'groupForm.form.label.video.mode': '匹配模式', + 'groupForm.form.label.video.acquisition.resolution': '采集分辨率', + 'groupForm.form.label.video.acquisition.frameRate': '采集帧率', + 'groupForm.form.label.video.encoding.resolution': '编码分辨率', + 'groupForm.form.label.video.encoding.rate.min': '编码码率最小值', + 'groupForm.form.label.video.encoding.rate.max': '编码码率最大值', + 'groupForm.form.label.video.encoding.rate.default': '编码码率默认值', + 'groupForm.form.label.video.encoding.frameRate': '编码帧率', + 'groupForm.form.label.video.encoding.profile': '编码profile', + 'groupForm.placeholder.video.mode': '请选择', + 'groupForm.placeholder.video.acquisition.resolution': '请选择', + 'groupForm.placeholder.video.acquisition.frameRate': '输入范围[1, 30]', + 'groupForm.placeholder.video.encoding.resolution': '请选择', + 'groupForm.placeholder.video.encoding.rate.min': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.rate.max': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.rate.default': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.frameRate': '输入范围[1, 30]', + 'groupForm.placeholder.video.encoding.profile': '输入范围[150, 1800]', + 'groupForm.form.label.audio.mode': '匹配模式', + 'groupForm.form.label.audio.acquisition.channels': '采集声道数', + 'groupForm.form.label.audio.encoding.rate': '编码码率', + 'groupForm.form.label.audio.encoding.channels': '编码声道数', + 'groupForm.placeholder.audio.encoding.channels': '输入范围[150, 1800]', + 'groupForm.form.label.audio.encoding.profile': '编码profile', + 'groupForm.placeholder.audio.mode': '请选择', + 'groupForm.placeholder.audio.acquisition.channels': '请选择', + 'groupForm.placeholder.audio.encoding.rate': '输入范围[150, 1800]', + 'groupForm.placeholder.audio.encoding.profile': '输入范围[1, 30]', + 'groupForm.form.label.parameterDescription': '参数说明', + // https://vue-i18n.intlify.dev/guide/essentials/syntax.html#list-interpolation + 'groupForm.placeholder.description': `请填写参数说明,最多不超多200字。`, + 'groupForm.submit': '提交', + 'groupForm.reset': '重置', + 'groupForm.submitSuccess': '提交成功', +}; diff --git a/src/views/demo/form/step/components/base-info.vue b/src/views/demo/form/step/components/base-info.vue new file mode 100644 index 0000000..40ee4ee --- /dev/null +++ b/src/views/demo/form/step/components/base-info.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/views/demo/form/step/components/channel-info.vue b/src/views/demo/form/step/components/channel-info.vue new file mode 100644 index 0000000..5ded0cd --- /dev/null +++ b/src/views/demo/form/step/components/channel-info.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/views/demo/form/step/components/success.vue b/src/views/demo/form/step/components/success.vue new file mode 100644 index 0000000..c78a645 --- /dev/null +++ b/src/views/demo/form/step/components/success.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/views/demo/form/step/index.vue b/src/views/demo/form/step/index.vue new file mode 100644 index 0000000..37154ee --- /dev/null +++ b/src/views/demo/form/step/index.vue @@ -0,0 +1,118 @@ + + + + + + + diff --git a/src/views/demo/form/step/locale/en-US.ts b/src/views/demo/form/step/locale/en-US.ts new file mode 100644 index 0000000..cf1dbc0 --- /dev/null +++ b/src/views/demo/form/step/locale/en-US.ts @@ -0,0 +1,66 @@ +export default { + 'menu.form.step': 'Step Form', + 'stepForm.step.title': 'Create Channel Forms', + 'stepForm.step.title.baseInfo': 'Select Basic Information', + 'stepForm.step.subTitle.baseInfo': 'Channel creation activities', + 'stepForm.step.title.channel': 'Channel Information', + 'stepForm.step.subTitle.channel': 'Select upstream of domain', + 'stepForm.step.title.finish': 'Finish', + 'stepForm.step.subTitle.finish': 'Submit success', + 'stepForm.success.title': 'Success', + 'stepForm.success.subTitle': 'The form is submitted successfully!', + 'stepForm.button.next': 'Next', + 'stepForm.button.prev': 'Prev', + 'stepForm.button.submit': 'Submit', + 'stepForm.button.again': 'Again', + 'stepForm.button.view': 'Detail', + 'stepForm.label.type.web': 'web domain', + 'stepForm.label.type.api': 'api domain', + // form -1 + 'stepForm.form.label.activityName': 'Activity Name', + 'stepForm.placeholder.activityName': + 'Enter a maximum of 20 Chinese characters, letters, or digits', + 'stepForm.form.error.activityName.pattern': + 'Enter a maximum of 20 Chinese characters, letters, or digits', + 'stepForm.form.error.activityName.required': 'Please enter the activity name', + 'stepForm.form.label.channelType': 'Channel Type', + 'stepForm.placeholder.channelType': 'Select a channel type', + 'stepForm.form.error.channelType.required': 'Please select a channel type', + 'stepForm.form.label.promotionTime': 'Promotion Time', + 'stepForm.form.error.promotionTime.required': + 'Please select the promotion time', + 'stepForm.form.label.promoteLink': 'Promote Link', + 'stepForm.form.error.promoteLink.required': 'Please enter the promotion link', + 'stepForm.form.error.promoteLink.pattern': + 'For example, the download address of Android or iOS or the intermediate URL must start with http:// or https://', + 'stepForm.form.tip.promoteLink': + 'For example, the download address of Android or iOS or the intermediate URL must start with http:// or https://', + 'stepForm.placeholder.promoteLink': 'Please enter the promotion page Link', + + // form -1 end + // form -2 + 'stepForm.form.label.advertisingSource': 'Advertising Source', + 'stepForm.placeholder.advertisingSource': + 'Introduction source address: Sohu, Sina', + 'stepForm.form.error.advertisingSource.required': + 'Please enter the advertising source', + 'stepForm.form.label.advertisingMedia': 'Advertising Media', + 'stepForm.placeholder.advertisingMedia': 'Marketing media: CPC, Banner, EDM', + 'stepForm.form.error.advertisingMedia.required': + 'Please enter the advertising media', + 'stepForm.form.label.keyword': 'keyword', + 'stepForm.placeholder.keyword': 'Please select keyword', + 'stepForm.form.error.keyword.required': 'Please select keyword', + 'stepForm.form.label.pushNotify': 'Push Notify', + 'stepForm.form.label.advertisingContent': 'Advertising Content', + 'stepForm.placeholder.advertisingContent': + 'Please enter the description of advertisement content, the maximum is 200 words', + 'stepForm.form.error.advertisingContent.required': + 'Please enter the description of advertisement content', + 'stepForm.form.error.advertisingContent.maxLength': + 'the maximum is 200 words', + // form -2 end + 'stepForm.form.description.title': 'Channel Form Description', + 'stepForm.form.description.text': + 'Advertiser channel promotion supports tracking of users who download apps by placing ads on third-party advertisers, such as toutiao channel, and tracking users who activate apps by downloading apps through channels.', +}; diff --git a/src/views/demo/form/step/locale/zh-CN.ts b/src/views/demo/form/step/locale/zh-CN.ts new file mode 100644 index 0000000..5458b51 --- /dev/null +++ b/src/views/demo/form/step/locale/zh-CN.ts @@ -0,0 +1,52 @@ +export default { + 'menu.form.step': '分步表单', + 'stepForm.step.title': '创建渠道表单', + 'stepForm.step.title.baseInfo': '选择基本信息', + 'stepForm.step.subTitle.baseInfo': '创建渠道活动', + 'stepForm.step.title.channel': '输入渠道信息', + 'stepForm.step.subTitle.channel': '输入详细的渠道信息', + 'stepForm.step.title.finish': '完成创建', + 'stepForm.step.subTitle.finish': '创建成功', + 'stepForm.success.title': '提交成功', + 'stepForm.success.subTitle': '表单提交成功!', + 'stepForm.button.next': '下一步', + 'stepForm.button.prev': '上一步', + 'stepForm.button.submit': '提交', + 'stepForm.button.again': '再次创建', + 'stepForm.button.view': '查看详情', + 'stepForm.form.label.activityName': '活动名称', + 'stepForm.placeholder.activityName': '输入汉字、字母或数字,最多20字符', + 'stepForm.form.error.activityName.required': '请输入活动名称', + 'stepForm.form.error.activityName.pattern': + '输入汉字、字母或数字,最多20字符', + 'stepForm.form.label.channelType': '渠道类型', + 'stepForm.placeholder.channelType': '请选择渠道类型', + 'stepForm.form.error.channelType.required': '请选择渠道类型', + 'stepForm.form.label.promotionTime': '推广时间', + 'stepForm.form.error.promotionTime.required': '请选择推广时间', + 'stepForm.form.label.promoteLink': '推广地址', + 'stepForm.form.error.promoteLink.required': '请输入推广地址', + 'stepForm.form.error.promoteLink.pattern': + '如 Android 或 iOS 的下载地址、中间跳转URL,网址必须以 http:// 或 https:// 开头', + 'stepForm.form.tip.promoteLink': + '如 Android 或 iOS 的下载地址、中间跳转URL,网址必须以 http:// 或 https:// 开头', + 'stepForm.placeholder.promoteLink': '请输入推广页面地址', + 'stepForm.form.label.advertisingSource': '广告来源', + 'stepForm.placeholder.advertisingSource': '引荐来源地址:sohu、sina', + 'stepForm.form.error.advertisingSource.required': '请输入广告来源', + 'stepForm.form.label.advertisingMedia': '广告媒介', + 'stepForm.placeholder.advertisingMedia': '营销媒介:cpc、banner、edm', + 'stepForm.form.error.advertisingMedia.required': '请输入广告媒介', + 'stepForm.form.label.keyword': '关键词', + 'stepForm.placeholder.keyword': '请选择关键词', + 'stepForm.form.error.keyword.required': '请选择关键词', + 'stepForm.form.label.pushNotify': '推送提醒', + 'stepForm.form.label.advertisingContent': '广告内容', + 'stepForm.placeholder.advertisingContent': + '请输入广告内容介绍,最多不超过200字。', + 'stepForm.form.error.advertisingContent.required': '请输入广告内容', + 'stepForm.form.error.advertisingContent.maxLength': '最多不超过200字', + 'stepForm.form.description.title': '渠道表单说明', + 'stepForm.form.description.text': + '广告商渠道推广支持追踪在第三方广告商投放广告下载App用户的场景,例如在今日头条渠道投放下载App广告,追踪通过在渠道下载激活App的用户。', +}; diff --git a/src/views/demo/form/step/mock.ts b/src/views/demo/form/step/mock.ts new file mode 100644 index 0000000..c4228db --- /dev/null +++ b/src/views/demo/form/step/mock.ts @@ -0,0 +1,11 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + // submit + Mock.mock(new RegExp('/api/channel-form/submit'), () => { + return successResponseWrap('ok'); + }); + }, +}); diff --git a/src/views/demo/list/card/components/card-wrap.vue b/src/views/demo/list/card/components/card-wrap.vue new file mode 100644 index 0000000..9b876d8 --- /dev/null +++ b/src/views/demo/list/card/components/card-wrap.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/views/demo/list/card/components/quality-inspection.vue b/src/views/demo/list/card/components/quality-inspection.vue new file mode 100644 index 0000000..8fc5cad --- /dev/null +++ b/src/views/demo/list/card/components/quality-inspection.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/demo/list/card/components/rules-preset.vue b/src/views/demo/list/card/components/rules-preset.vue new file mode 100644 index 0000000..c7a3dcb --- /dev/null +++ b/src/views/demo/list/card/components/rules-preset.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/demo/list/card/components/the-service.vue b/src/views/demo/list/card/components/the-service.vue new file mode 100644 index 0000000..60dd3d3 --- /dev/null +++ b/src/views/demo/list/card/components/the-service.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/views/demo/list/card/index.vue b/src/views/demo/list/card/index.vue new file mode 100644 index 0000000..038cf87 --- /dev/null +++ b/src/views/demo/list/card/index.vue @@ -0,0 +1,92 @@ + + + + + + + diff --git a/src/views/demo/list/card/locale/en-US.ts b/src/views/demo/list/card/locale/en-US.ts new file mode 100644 index 0000000..6b0681e --- /dev/null +++ b/src/views/demo/list/card/locale/en-US.ts @@ -0,0 +1,19 @@ +export default { + 'menu.list.cardList': 'Card List', + 'cardList.tab.title.all': 'All', + 'cardList.tab.title.content': 'Quality Inspection', + 'cardList.tab.title.service': 'The service', + 'cardList.tab.title.preset': 'Rules Preset', + 'cardList.searchInput.placeholder': 'Search', + 'cardList.enable': 'Enable', + 'cardList.disable': 'Disable', + 'cardList.content.delete': 'Delete', + 'cardList.content.inspection': 'Inspection', + 'cardList.content.action': 'Click Create Qc Content queue', + 'cardList.service.open': 'Open', + 'cardList.service.cancel': 'Cancel', + 'cardList.service.renew': 'Contract of service', + 'cardList.service.tag': 'Opened', + 'cardList.service.expiresTag': 'Expired', + 'cardList.preset.tag': 'Enable', +}; diff --git a/src/views/demo/list/card/locale/zh-CN.ts b/src/views/demo/list/card/locale/zh-CN.ts new file mode 100644 index 0000000..0cd29e7 --- /dev/null +++ b/src/views/demo/list/card/locale/zh-CN.ts @@ -0,0 +1,19 @@ +export default { + 'menu.list.cardList': '卡片列表', + 'cardList.tab.title.all': '全部', + 'cardList.tab.title.content': '内容质检', + 'cardList.tab.title.service': '开通服务', + 'cardList.tab.title.preset': '规则预置', + 'cardList.searchInput.placeholder': '搜索', + // 'cardList.statistic.enable': '已启用', + // 'cardList.statistic.disable': '未启用', + 'cardList.content.delete': '删除', + 'cardList.content.inspection': '质检', + 'cardList.content.action': '点击创建质检内容队列', + 'cardList.service.open': '开通服务', + 'cardList.service.cancel': '取消服务', + 'cardList.service.renew': '续约服务', + 'cardList.service.tag': '已开通', + 'cardList.service.expiresTag': '已过期', + 'cardList.preset.tag': '已启用', +}; diff --git a/src/views/demo/list/card/mock.ts b/src/views/demo/list/card/mock.ts new file mode 100644 index 0000000..188d3d3 --- /dev/null +++ b/src/views/demo/list/card/mock.ts @@ -0,0 +1,186 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { ServiceRecord } from '@/api/demo/list'; + +const qualityInspectionList: ServiceRecord[] = [ + { + id: 1, + name: 'quality', + title: '视频类-历史导入', + description: '2021-10-12 00:00:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, + { + id: 2, + name: 'quality', + title: '图文类-图片版权', + description: '2021-12-11 18:30:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, + { + id: 3, + name: 'quality', + title: '图文类-高清图片', + description: '2021-10-15 08:10:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, +]; +const theServiceList: ServiceRecord[] = [ + { + id: 1, + icon: 'code', + title: '漏斗分析', + description: + '用户行为分析之漏斗分析模型是企业实现精细化运营、进行用户行为分析的重要数据分析模型。', + enable: true, + actionType: 'button', + }, + { + id: 2, + icon: 'edit', + title: '用户分布', + description: + '快速诊断用户人群,地域细分情况,了解数据分布的集中度,以及主要的数据分布的区间段是什么。', + enable: true, + actionType: 'button', + expires: true, + }, + { + id: 3, + icon: 'user', + title: '资源分发', + description: + '移动端动态化资源分发解决方案。提供稳定大流量服务支持、灵活定制的分发圈选规则,通过离线化预加载。', + enable: false, + actionType: 'button', + }, + { + id: 4, + icon: 'user', + title: '用户画像分析', + description: + '用户画像就是将典型用户信息标签化,根据用户特征、业务场景和用户行为等信息,构建一个标签化的用户模型。', + enable: true, + actionType: 'button', + }, +]; +const rulesPresetList: ServiceRecord[] = [ + { + id: 1, + title: '内容屏蔽规则', + description: + '用户在执行特定的内容分发任务时,可使用内容屏蔽规则根据特定标签,过滤内容集合。', + enable: true, + actionType: 'switch', + }, + { + id: 2, + title: '内容置顶规则', + description: + '该规则支持用户在执行特定内容分发任务时,对固定的几条内容置顶。', + enable: true, + actionType: 'switch', + }, + { + id: 3, + title: '内容加权规则', + description: '选定内容加权规则后可自定义从不同内容集合获取内容的概率。', + enable: false, + actionType: 'switch', + }, + { + id: 4, + title: '内容分发规则', + description: '内容分发时,对某些内容需要固定在C端展示的位置。', + enable: true, + actionType: 'switch', + }, + { + id: 5, + title: '违禁内容识别', + description: '精准识别赌博、刀枪、毒品、造假、贩假等违规物品和违规行为。', + enable: false, + actionType: 'switch', + }, + { + id: 6, + title: '多语言文字符号识别', + description: + '精准识别英语、维语、藏语、蒙古语、朝鲜语等多种语言以及emoji表情形态的语义识别。', + enable: false, + actionType: 'switch', + }, +]; + +setupMock({ + setup() { + // Quality Inspection + Mock.mock(new RegExp('/api/list/quality-inspection'), () => { + return successResponseWrap( + qualityInspectionList.map((_, index) => ({ + ...qualityInspectionList[index % qualityInspectionList.length], + id: Mock.Random.guid(), + })), + ); + }); + + // the service + Mock.mock(new RegExp('/api/list/the-service'), () => { + return successResponseWrap( + theServiceList.map((_, index) => ({ + ...theServiceList[index % theServiceList.length], + id: Mock.Random.guid(), + })), + ); + }); + + // rules preset + Mock.mock(new RegExp('/api/list/rules-preset'), () => { + return successResponseWrap( + rulesPresetList.map((_, index) => ({ + ...rulesPresetList[index % rulesPresetList.length], + id: Mock.Random.guid(), + })), + ); + }); + }, +}); diff --git a/src/views/demo/list/search-table/index.vue b/src/views/demo/list/search-table/index.vue new file mode 100644 index 0000000..8479ada --- /dev/null +++ b/src/views/demo/list/search-table/index.vue @@ -0,0 +1,514 @@ + + + + + + + diff --git a/src/views/demo/list/search-table/locale/en-US.ts b/src/views/demo/list/search-table/locale/en-US.ts new file mode 100644 index 0000000..666bc8b --- /dev/null +++ b/src/views/demo/list/search-table/locale/en-US.ts @@ -0,0 +1,47 @@ +export default { + 'menu.list.searchTable': 'Search Table', + 'searchTable.form.number': 'Set Number', + 'searchTable.form.number.placeholder': 'Please enter Set Number', + 'searchTable.form.name': 'Set Name', + 'searchTable.form.name.placeholder': 'Please enter Set Name', + 'searchTable.form.contentType': 'Content Type', + 'searchTable.form.contentType.img': 'image-text', + 'searchTable.form.contentType.horizontalVideo': 'Horizontal short video', + 'searchTable.form.contentType.verticalVideo': 'Vertical short video', + 'searchTable.form.filterType': 'Filter Type', + 'searchTable.form.filterType.artificial': 'artificial', + 'searchTable.form.filterType.rules': 'Rules', + 'searchTable.form.createdTime': 'Create Date', + 'searchTable.form.status': 'Status', + 'searchTable.form.status.online': 'Online', + 'searchTable.form.status.offline': 'Offline', + 'searchTable.form.search': 'Search', + 'searchTable.form.reset': 'Reset', + 'searchTable.form.selectDefault': 'All', + 'searchTable.operation.create': 'Create', + 'searchTable.operation.update': 'Update', + 'searchTable.operation.delete': 'Delete', + 'searchTable.operation.export': 'Export', + 'searchTable.operation.import': 'Import', + 'searchTable.operation.download': 'Download', + // columns + 'searchTable.columns.index': '#', + 'searchTable.columns.number': 'Set Number', + 'searchTable.columns.name': 'Set Name', + 'searchTable.columns.contentType': 'Content Type', + 'searchTable.columns.filterType': 'Filter Type', + 'searchTable.columns.count': 'Count', + 'searchTable.columns.createdTime': 'CreatedTime', + 'searchTable.columns.status': 'Status', + 'searchTable.columns.operations': 'Operations', + 'searchTable.columns.operations.view': 'View', + // size + 'searchTable.size.mini': 'mini', + 'searchTable.size.small': 'small', + 'searchTable.size.medium': 'middle', + 'searchTable.size.large': 'large', + // actions + 'searchTable.actions.refresh': 'refresh', + 'searchTable.actions.density': 'density', + 'searchTable.actions.columnSetting': 'columnSetting', +}; diff --git a/src/views/demo/list/search-table/locale/zh-CN.ts b/src/views/demo/list/search-table/locale/zh-CN.ts new file mode 100644 index 0000000..ef4e853 --- /dev/null +++ b/src/views/demo/list/search-table/locale/zh-CN.ts @@ -0,0 +1,48 @@ +export default { + 'menu.list.searchTable': '查询表格', + 'searchTable.form.number': '集合编号', + 'searchTable.form.number.placeholder': '请输入集合编号', + 'searchTable.form.name': '集合名称', + 'searchTable.form.name.placeholder': '请输入集合名称', + 'searchTable.form.contentType': '内容体裁', + 'searchTable.form.contentType.img': '图文', + 'searchTable.form.contentType.horizontalVideo': '横版短视频', + 'searchTable.form.contentType.verticalVideo': '竖版小视频', + 'searchTable.form.filterType': '筛选方式', + 'searchTable.form.filterType.artificial': '人工筛选', + 'searchTable.form.filterType.rules': '规则筛选', + 'searchTable.form.createdTime': '创建时间', + 'searchTable.form.status': '状态', + 'searchTable.form.status.online': '已上线', + 'searchTable.form.status.offline': '已下线', + 'searchTable.form.search': '查询', + 'searchTable.form.reset': '重置', + 'searchTable.form.selectDefault': '全部', + 'searchTable.operation.create': '新增', + 'searchTable.operation.update': '修改', + 'searchTable.operation.delete': '删除', + 'searchTable.operation.export': '导出', + 'searchTable.operation.import': '批量导入', + 'searchTable.operation.download': '下载', + // columns + 'searchTable.columns.index': '#', + 'searchTable.columns.number': '集合编号', + 'searchTable.columns.name': '集合名称', + 'searchTable.columns.contentType': '内容体裁', + 'searchTable.columns.filterType': '筛选方式', + 'searchTable.columns.count': '内容量', + 'searchTable.columns.createdTime': '创建时间', + 'searchTable.columns.status': '状态', + 'searchTable.columns.operations': '操作', + 'searchTable.columns.operations.view': '查看', + + // size + 'searchTable.size.mini': '迷你', + 'searchTable.size.small': '偏小', + 'searchTable.size.medium': '中等', + 'searchTable.size.large': '偏大', + // actions + 'searchTable.actions.refresh': '刷新', + 'searchTable.actions.density': '密度', + 'searchTable.actions.columnSetting': '列设置', +}; diff --git a/src/views/demo/list/search-table/mock.ts b/src/views/demo/list/search-table/mock.ts new file mode 100644 index 0000000..2742c1b --- /dev/null +++ b/src/views/demo/list/search-table/mock.ts @@ -0,0 +1,35 @@ +import Mock from 'mockjs'; +import qs from 'query-string'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { GetParams } from '@/types/global'; + +const { Random } = Mock; + +const data = Mock.mock({ + 'list|55': [ + { + 'id|8': /[A-Z][a-z][-][0-9]/, + 'number|2-3': /[0-9]/, + 'name|4-8': /[A-Z]/, + 'contentType|1': ['img', 'horizontalVideo', 'verticalVideo'], + 'count|2-3': /[0-9]/, + 'status|1': ['online', 'offline'], + 'filterType|1': ['artificial', 'rules'], + 'createdTime': Random.datetime(), + }, + ], +}); + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/list/policy'), (params: GetParams) => { + const { current = 1, pageSize = 10 } = qs.parseUrl(params.url).query; + const p = current as number; + const ps = pageSize as number; + return successResponseWrap({ + list: data.list.slice((p - 1) * ps, p * ps), + total: 55, + }); + }); + }, +}); diff --git a/src/views/demo/profile/basic/components/operation-log.vue b/src/views/demo/profile/basic/components/operation-log.vue new file mode 100644 index 0000000..6262be6 --- /dev/null +++ b/src/views/demo/profile/basic/components/operation-log.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/views/demo/profile/basic/components/profile-item.vue b/src/views/demo/profile/basic/components/profile-item.vue new file mode 100644 index 0000000..698f643 --- /dev/null +++ b/src/views/demo/profile/basic/components/profile-item.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/views/demo/profile/basic/index.vue b/src/views/demo/profile/basic/index.vue new file mode 100644 index 0000000..88dd80c --- /dev/null +++ b/src/views/demo/profile/basic/index.vue @@ -0,0 +1,83 @@ + + + + + + + diff --git a/src/views/demo/profile/basic/locale/en-US.ts b/src/views/demo/profile/basic/locale/en-US.ts new file mode 100644 index 0000000..38a3ad6 --- /dev/null +++ b/src/views/demo/profile/basic/locale/en-US.ts @@ -0,0 +1,39 @@ +export default { + 'menu.profile.basic': 'Basic Profile', + 'basicProfile.title.form': 'Parameter Approval Process Table', + 'basicProfile.steps.commit': 'Commit', + 'basicProfile.steps.approval': 'Approval', + 'basicProfile.steps.finish': 'Finish', + 'basicProfile.title.currentParams': 'Current Parameters', + 'basicProfile.title.originParams': 'Original Parameters', + 'basicProfile.title.video': 'Video Parameters', + 'basicProfile.title.audio': 'Audio Parameters', + 'basicProfile.title.preVideo': 'Original video parameters', + 'basicProfile.title.preAudio': 'Original audio parameters', + 'basicProfile.label.video.mode': 'Match Mode', + 'basicProfile.label.video.acquisition.resolution': 'Acquisition Resolution', + 'basicProfile.label.video.acquisition.frameRate': 'Acquisition Frame Rate', + 'basicProfile.label.video.encoding.resolution': 'Encoding Resolution', + 'basicProfile.label.video.encoding.rate.min': 'Encoding Min Rate', + 'basicProfile.label.video.encoding.rate.max': 'Encoding Max Rate', + 'basicProfile.label.video.encoding.rate.default': 'Encoding Default Rate', + 'basicProfile.label.video.encoding.frameRate': 'Encoding Frame Rate', + 'basicProfile.label.video.encoding.profile': 'Encoding Profile', + 'basicProfile.label.audio.mode': 'Match Mode', + 'basicProfile.label.audio.acquisition.channels': 'Acquisition Channels', + 'basicProfile.label.audio.encoding.channels': 'Encoding Channels', + 'basicProfile.label.audio.encoding.rate': 'Encoding Rate', + 'basicProfile.label.audio.encoding.profile': 'Encoding Profile', + 'basicProfile.unit.audio.channels': 'channels', + 'basicProfile.goBack': 'GoBack', + 'basicProfile.cancel': 'Cancel Process', + 'basicProfile.title.operationLog': 'Operation Log', + 'basicProfile.column.contentNumber': 'Content Number', + 'basicProfile.column.updateContent': 'Update Content', + 'basicProfile.column.status': 'Status', + 'basicProfile.column.updateTime': 'Update Time', + 'basicProfile.column.operation': 'Operation', + 'basicProfile.cell.pass': 'Pass', + 'basicProfile.cell.auditing': 'Auditing', + 'basicProfile.cell.view': 'View', +}; diff --git a/src/views/demo/profile/basic/locale/zh-CN.ts b/src/views/demo/profile/basic/locale/zh-CN.ts new file mode 100644 index 0000000..1715e96 --- /dev/null +++ b/src/views/demo/profile/basic/locale/zh-CN.ts @@ -0,0 +1,39 @@ +export default { + 'menu.profile.basic': '基础详情页', + 'basicProfile.title.form': '参数审批流程表', + 'basicProfile.steps.commit': '提交修改', + 'basicProfile.steps.approval': '审批中', + 'basicProfile.steps.finish': '修改完成', + 'basicProfile.title.currentParams': '修改后参数', + 'basicProfile.title.originParams': '原参数', + 'basicProfile.title.video': '现视频参数', + 'basicProfile.title.preVideo': '原视频参数', + 'basicProfile.title.audio': '现音频参数', + 'basicProfile.title.preAudio': '原音频参数', + 'basicProfile.label.video.mode': '匹配模式', + 'basicProfile.label.video.acquisition.resolution': '采集分辨率', + 'basicProfile.label.video.acquisition.frameRate': '采集帧率', + 'basicProfile.label.video.encoding.resolution': '编码分辨率', + 'basicProfile.label.video.encoding.rate.min': '编码码率最小值', + 'basicProfile.label.video.encoding.rate.max': '编码码率最大值', + 'basicProfile.label.video.encoding.rate.default': '编码码率默认值', + 'basicProfile.label.video.encoding.frameRate': '编码帧率', + 'basicProfile.label.video.encoding.profile': '编码profile', + 'basicProfile.label.audio.mode': '匹配模式', + 'basicProfile.label.audio.acquisition.channels': '采集声道数', + 'basicProfile.label.audio.encoding.channels': '编码声道数', + 'basicProfile.label.audio.encoding.rate': '编码码率', + 'basicProfile.label.audio.encoding.profile': '编码 profile', + 'basicProfile.unit.audio.channels': '声道', + 'basicProfile.goBack': '返回', + 'basicProfile.cancel': '取消流程', + 'basicProfile.title.operationLog': '参数调整记录', + 'basicProfile.column.contentNumber': '内容编号', + 'basicProfile.column.updateContent': '调整内容', + 'basicProfile.column.status': '当前状态', + 'basicProfile.column.updateTime': '修改时间', + 'basicProfile.column.operation': '操作', + 'basicProfile.cell.pass': '已通过', + 'basicProfile.cell.auditing': '审核中', + 'basicProfile.cell.view': '查看', +}; diff --git a/src/views/demo/profile/basic/mock.ts b/src/views/demo/profile/basic/mock.ts new file mode 100644 index 0000000..ea0bb1a --- /dev/null +++ b/src/views/demo/profile/basic/mock.ts @@ -0,0 +1,58 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/profile/basic'), () => { + return successResponseWrap({ + status: 2, + video: { + mode: '自定义', + acquisition: { + resolution: '720*1280', + frameRate: 15, + }, + encoding: { + resolution: '720*1280', + rate: { + min: 300, + max: 800, + default: 1500, + }, + frameRate: 15, + profile: 'high', + }, + }, + audio: { + mode: '自定义', + acquisition: { + channels: 8, + }, + encoding: { + channels: 8, + rate: 128, + profile: 'ACC-LC', + }, + }, + }); + }); + Mock.mock(new RegExp('/api/operation/log'), () => { + return successResponseWrap([ + { + key: '1', + contentNumber: '视频类001003', + updateContent: '视频参数变更', + status: 0, + updateTime: '2021-02-28 10:30:50', + }, + { + key: '2', + contentNumber: '视频类058212', + updateContent: '视频参数变更;音频参数变更', + status: 1, + updateTime: '2020-05-13 08:00:00', + }, + ]); + }); + }, +}); diff --git a/src/views/demo/result/error/index.vue b/src/views/demo/result/error/index.vue new file mode 100644 index 0000000..bf56264 --- /dev/null +++ b/src/views/demo/result/error/index.vue @@ -0,0 +1,77 @@ + + + + + + + diff --git a/src/views/demo/result/error/locale/en-US.ts b/src/views/demo/result/error/locale/en-US.ts new file mode 100644 index 0000000..a1dab33 --- /dev/null +++ b/src/views/demo/result/error/locale/en-US.ts @@ -0,0 +1,13 @@ +export default { + 'menu.result.error': 'Error', + 'error.result.title': 'Submit Error', + 'error.result.subTitle': 'Submit form error', + 'error.result.goBack': 'Go Back', + 'error.result.retry': 'return for correction', + 'error.detailTitle': 'Details of Error', + 'error.detailLine.record': + 'The current domain name has not been registered, please check the registration process: ', + 'error.detailLine.record.link': 'Registration Process', + 'error.detailLine.auth': + 'Your user group does not have the authority to perform this operation;', +}; diff --git a/src/views/demo/result/error/locale/zh-CN.ts b/src/views/demo/result/error/locale/zh-CN.ts new file mode 100644 index 0000000..3e64cdb --- /dev/null +++ b/src/views/demo/result/error/locale/zh-CN.ts @@ -0,0 +1,11 @@ +export default { + 'menu.result.error': '失败页', + 'error.result.title': '提交失败', + 'error.result.subTitle': '表单提交失败,请重试。', + 'error.result.goBack': '回到首页', + 'error.result.retry': '返回修改', + 'error.detailTitle': '错误详情', + 'error.detailLine.record': '当前域名未备案,备案流程请查看:', + 'error.detailLine.record.link': '备案流程', + 'error.detailLine.auth': '你的用户组不具有进行此操作的权限;', +}; diff --git a/src/views/demo/result/success/index.vue b/src/views/demo/result/success/index.vue new file mode 100644 index 0000000..3ae92b5 --- /dev/null +++ b/src/views/demo/result/success/index.vue @@ -0,0 +1,99 @@ + + + + + + + + + diff --git a/src/views/demo/result/success/locale/en-US.ts b/src/views/demo/result/success/locale/en-US.ts new file mode 100644 index 0000000..a3d8af0 --- /dev/null +++ b/src/views/demo/result/success/locale/en-US.ts @@ -0,0 +1,15 @@ +export default { + 'menu.result.success': 'Success', + 'success.result.title': 'Submit Success', + 'success.result.subTitle': 'Submit form success!', + 'success.result.printResult': 'Print result', + 'success.result.projectList': 'Project List', + 'success.result.progress': 'Progress', + 'success.submitApplication': 'Submit Application', + 'success.leaderReview': 'Leader Review', + 'success.purchaseCertificate': 'Purchase Certificate', + 'success.safetyTest': 'Safety Test', + 'success.launched': 'Officially launched', + 'success.waiting': 'Waiting', + 'success.processing': 'Processing', +}; diff --git a/src/views/demo/result/success/locale/zh-CN.ts b/src/views/demo/result/success/locale/zh-CN.ts new file mode 100644 index 0000000..24dbe32 --- /dev/null +++ b/src/views/demo/result/success/locale/zh-CN.ts @@ -0,0 +1,15 @@ +export default { + 'menu.result.success': '成功页', + 'success.result.title': '提交成功', + 'success.result.subTitle': '表单提交成功!', + 'success.result.printResult': '打印结果', + 'success.result.projectList': '返回项目列表', + 'success.result.progress': '当前进度', + 'success.submitApplication': '提交申请', + 'success.leaderReview': '直属领导审核', + 'success.purchaseCertificate': '购买证书', + 'success.safetyTest': '安全测试', + 'success.launched': '正式上线', + 'success.waiting': '未开始', + 'success.processing': '进行中', +}; diff --git a/src/views/demo/visualization/data-analysis/components/chain-item.vue b/src/views/demo/visualization/data-analysis/components/chain-item.vue new file mode 100644 index 0000000..e3ee786 --- /dev/null +++ b/src/views/demo/visualization/data-analysis/components/chain-item.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/src/views/demo/visualization/data-analysis/components/content-period-analysis.vue b/src/views/demo/visualization/data-analysis/components/content-period-analysis.vue new file mode 100644 index 0000000..bdd2454 --- /dev/null +++ b/src/views/demo/visualization/data-analysis/components/content-period-analysis.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/views/demo/visualization/data-analysis/components/content-publish-ratio.vue b/src/views/demo/visualization/data-analysis/components/content-publish-ratio.vue new file mode 100644 index 0000000..73a650d --- /dev/null +++ b/src/views/demo/visualization/data-analysis/components/content-publish-ratio.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/demo/visualization/data-analysis/components/popular-author.vue b/src/views/demo/visualization/data-analysis/components/popular-author.vue new file mode 100644 index 0000000..006214d --- /dev/null +++ b/src/views/demo/visualization/data-analysis/components/popular-author.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/src/views/demo/visualization/data-analysis/components/public-opinion.vue b/src/views/demo/visualization/data-analysis/components/public-opinion.vue new file mode 100644 index 0000000..c0c59b9 --- /dev/null +++ b/src/views/demo/visualization/data-analysis/components/public-opinion.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/views/demo/visualization/data-analysis/index.vue b/src/views/demo/visualization/data-analysis/index.vue new file mode 100644 index 0000000..1151dd6 --- /dev/null +++ b/src/views/demo/visualization/data-analysis/index.vue @@ -0,0 +1,65 @@ + + + + + + + diff --git a/src/views/demo/visualization/data-analysis/locale/en-US.ts b/src/views/demo/visualization/data-analysis/locale/en-US.ts new file mode 100644 index 0000000..476af0d --- /dev/null +++ b/src/views/demo/visualization/data-analysis/locale/en-US.ts @@ -0,0 +1,16 @@ +export default { + 'menu.visualization.dataAnalysis': 'Analysis', + 'dataAnalysis.title.publicOpinion': 'Public Opinion Analysis', + 'dataAnalysis.card.title.allVisitors': 'All Visitors', + 'dataAnalysis.card.title.contentPublished': 'Content Published', + 'dataAnalysis.card.title.totalComment': 'Total Comment', + 'dataAnalysis.card.title.totalShare': 'Total Share', + 'dataAnalysis.card.yesterday': 'Yesterday', + 'dataAnalysis.contentPublishRatio': 'Content Publishing Ratio', + 'dataAnalysis.popularAuthor': 'Popular Author', + 'dataAnalysis.popularAuthor.column.ranking': 'ranking', + 'dataAnalysis.popularAuthor.column.author': 'author', + 'dataAnalysis.popularAuthor.column.content': 'Content Number', + 'dataAnalysis.popularAuthor.column.click': 'Click Number', + 'dataAnalysis.contentPeriodAnalysis': 'Content Period Analysis', +}; diff --git a/src/views/demo/visualization/data-analysis/locale/zh-CN.ts b/src/views/demo/visualization/data-analysis/locale/zh-CN.ts new file mode 100644 index 0000000..7003ebc --- /dev/null +++ b/src/views/demo/visualization/data-analysis/locale/zh-CN.ts @@ -0,0 +1,16 @@ +export default { + 'menu.visualization.dataAnalysis': '分析页', + 'dataAnalysis.title.publicOpinion': '舆情分析', + 'dataAnalysis.card.title.allVisitors': '访问总人次', + 'dataAnalysis.card.title.contentPublished': '内容发布量', + 'dataAnalysis.card.title.totalComment': '评论总量', + 'dataAnalysis.card.title.totalShare': '分享总量', + 'dataAnalysis.card.yesterday': '较昨日', + 'dataAnalysis.contentPublishRatio': '内容发布比例', + 'dataAnalysis.popularAuthor': '热门作者榜单', + 'dataAnalysis.popularAuthor.column.ranking': '排名', + 'dataAnalysis.popularAuthor.column.author': '作者', + 'dataAnalysis.popularAuthor.column.content': '内容量', + 'dataAnalysis.popularAuthor.column.click': '点击量', + 'dataAnalysis.contentPeriodAnalysis': '内容时段分析', +}; diff --git a/src/views/demo/visualization/data-analysis/mock.ts b/src/views/demo/visualization/data-analysis/mock.ts new file mode 100644 index 0000000..7ecc891 --- /dev/null +++ b/src/views/demo/visualization/data-analysis/mock.ts @@ -0,0 +1,108 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { PostData } from '@/types/global'; + +setupMock({ + setup() { + Mock.mock( + new RegExp('/api/public-opinion-analysis'), + (params: PostData) => { + const { quota = 'visitors' } = JSON.parse(params.body); + if (['visitors', 'comment'].includes(quota)) { + const year = new Date().getFullYear(); + const getLineData = (name: number) => { + return new Array(12).fill(0).map((_item, index) => ({ + x: `${index + 1}月`, + y: Mock.Random.natural(0, 100), + name: String(name), + })); + }; + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [...getLineData(year), ...getLineData(year - 1)], + }); + } + if (['published'].includes(quota)) { + const year = new Date().getFullYear(); + const getLineData = (name: number) => { + return new Array(12).fill(0).map((_item, index) => ({ + x: `${index + 1}日`, + y: Mock.Random.natural(20, 100), + name: String(name), + })); + }; + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [...getLineData(year)], + }); + } + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [ + // itemStyle for demo + { name: '文本类', value: 25, itemStyle: { color: '#8D4EDA' } }, + { name: '图文类', value: 35, itemStyle: { color: '#165DFF' } }, + { name: '视频类', value: 40, itemStyle: { color: '#00B2FF' } }, + ], + }); + }, + ); + + Mock.mock(new RegExp('/api/content-period-analysis'), () => { + const getLineData = (name: string) => { + return { + name, + value: new Array(12).fill(0).map(() => Mock.Random.natural(30, 90)), + }; + }; + return successResponseWrap({ + xAxis: new Array(12).fill(0).map((_item, index) => `${index * 2}:00`), + data: [ + getLineData('纯文本'), + getLineData('图文类'), + getLineData('视频类'), + ], + }); + }); + + Mock.mock(new RegExp('/api/content-publish'), () => { + const generateLineData = (name: string) => { + const result = { + name, + x: [] as string[], + y: [] as number[], + }; + new Array(12).fill(0).forEach((_item, index) => { + result.x.push(`${index * 2}:00`); + result.y.push(Mock.Random.natural(1000, 3000)); + }); + return result; + }; + return successResponseWrap([ + generateLineData('纯文本'), + generateLineData('图文类'), + generateLineData('视频类'), + ]); + }); + + Mock.mock(new RegExp('/api/popular-author/list'), () => { + const generateData = () => { + const list = new Array(7).fill(0).map((_item, index) => ({ + ranking: index + 1, + author: Mock.mock('@ctitle(5)'), + contentCount: Mock.mock(/[0-9]{4}/), + clickCount: Mock.mock(/[0-9]{4}/), + })); + return { + list, + }; + }; + return successResponseWrap({ + ...generateData(), + }); + }); + }, +}); diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/chain-item.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/chain-item.vue new file mode 100644 index 0000000..fff45f9 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/chain-item.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue new file mode 100644 index 0000000..c549e34 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue new file mode 100644 index 0000000..850b524 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue new file mode 100644 index 0000000..168d9d0 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/data-overview.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/data-overview.vue new file mode 100644 index 0000000..078f0c3 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/data-overview.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/components/user-actions.vue b/src/views/demo/visualization/multi-dimension-data-analysis/components/user-actions.vue new file mode 100644 index 0000000..60949c7 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/components/user-actions.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/index.vue b/src/views/demo/visualization/multi-dimension-data-analysis/index.vue new file mode 100644 index 0000000..d52296c --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/index.vue @@ -0,0 +1,55 @@ + + + + + + + diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/locale/en-US.ts b/src/views/demo/visualization/multi-dimension-data-analysis/locale/en-US.ts new file mode 100644 index 0000000..6d1ed02 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/locale/en-US.ts @@ -0,0 +1,18 @@ +export default { + 'menu.visualization.multiDimensionDataAnalysis': 'Multi-D Analysis', + 'multiDAnalysis.card.title.dataOverview': 'Overview', + 'multiDAnalysis.dataOverview.contentProduction': 'Content Production', + 'multiDAnalysis.dataOverview.contentClick': 'Content Click', + 'multiDAnalysis.dataOverview.contentExposure': 'Content Exposure', + 'multiDAnalysis.dataOverview.activeUsers': 'Active Users', + 'multiDAnalysis.card.title.userActions': 'User Actions', + 'multiDAnalysis.card.title.contentTypeDistribution': + 'Content Type Distribution', + 'multiDAnalysis.card.title.retentionTrends': 'Retention Trends', + 'multiDAnalysis.card.title.userRetention': 'User Retention', + 'multiDAnalysis.card.title.contentConsumptionTrends': + 'Content Consumption Trends', + 'multiDAnalysis.card.title.contentConsumption': 'Content Consumption', + 'multiDAnalysis.card.title.contentPublishingSource': + 'Content Publishing Source', +}; diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/locale/zh-CN.ts b/src/views/demo/visualization/multi-dimension-data-analysis/locale/zh-CN.ts new file mode 100644 index 0000000..d61edb5 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/locale/zh-CN.ts @@ -0,0 +1,15 @@ +export default { + 'menu.visualization.multiDimensionDataAnalysis': '多维数据分析', + 'multiDAnalysis.card.title.dataOverview': '数据总览', + 'multiDAnalysis.dataOverview.contentProduction': '内容生产量', + 'multiDAnalysis.dataOverview.contentClick': '内容点击量', + 'multiDAnalysis.dataOverview.contentExposure': '内容曝光量', + 'multiDAnalysis.dataOverview.activeUsers': '活跃用户数', + 'multiDAnalysis.card.title.userActions': '今日转评赞统计', + 'multiDAnalysis.card.title.contentTypeDistribution': '内容题材分布', + 'multiDAnalysis.card.title.retentionTrends': '用户留存趋势', + 'multiDAnalysis.card.title.userRetention': '用户留存量', + 'multiDAnalysis.card.title.contentConsumptionTrends': '内容消费趋势', + 'multiDAnalysis.card.title.contentConsumption': '内容消费量', + 'multiDAnalysis.card.title.contentPublishingSource': '内容发布来源', +}; diff --git a/src/views/demo/visualization/multi-dimension-data-analysis/mock.ts b/src/views/demo/visualization/multi-dimension-data-analysis/mock.ts new file mode 100644 index 0000000..3f233d1 --- /dev/null +++ b/src/views/demo/visualization/multi-dimension-data-analysis/mock.ts @@ -0,0 +1,49 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { PostData } from '@/types/global'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/data-chain-growth'), (params: PostData) => { + const { quota } = JSON.parse(params.body); + const getLineData = () => { + return { + xAxis: new Array(12).fill(0).map((_item, index) => `${index + 1}日`), + data: { + name: quota, + value: new Array(12) + .fill(0) + .map(() => Mock.Random.natural(1000, 3000)), + }, + }; + }; + return successResponseWrap({ + count: Mock.Random.natural(1000, 3000), + growth: Mock.Random.float(20, 100, 2, 2), + chartData: getLineData(), + }); + }); + // v2 + Mock.mock(new RegExp('/api/data-overview'), () => { + const generateLineData = (name: string) => { + return { + name, + count: Mock.Random.natural(20, 2000), + value: new Array(8).fill(0).map(() => Mock.Random.natural(800, 4000)), + }; + }; + const xAxis = new Array(8).fill(0).map((_item, index) => { + return `12.1${index}`; + }); + return successResponseWrap({ + xAxis, + data: [ + generateLineData('内容生产量'), + generateLineData('内容点击量'), + generateLineData('内容曝光量'), + generateLineData('活跃用户数'), + ], + }); + }); + }, +}); diff --git a/src/views/demo/visualization/real-time-monitor/components/chat-item.vue b/src/views/demo/visualization/real-time-monitor/components/chat-item.vue new file mode 100644 index 0000000..073e0ce --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/chat-item.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/chat-list.vue b/src/views/demo/visualization/real-time-monitor/components/chat-list.vue new file mode 100644 index 0000000..6d9c287 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/chat-list.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/chat-panel.vue b/src/views/demo/visualization/real-time-monitor/components/chat-panel.vue new file mode 100644 index 0000000..6d9a17f --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/chat-panel.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/data-statistic-list.vue b/src/views/demo/visualization/real-time-monitor/components/data-statistic-list.vue new file mode 100644 index 0000000..64e2eab --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/data-statistic-list.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/data-statistic.vue b/src/views/demo/visualization/real-time-monitor/components/data-statistic.vue new file mode 100644 index 0000000..f1b4132 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/data-statistic.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/quick-operation.vue b/src/views/demo/visualization/real-time-monitor/components/quick-operation.vue new file mode 100644 index 0000000..5797989 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/quick-operation.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/studio-information.vue b/src/views/demo/visualization/real-time-monitor/components/studio-information.vue new file mode 100644 index 0000000..60e7210 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/studio-information.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/studio-status.vue b/src/views/demo/visualization/real-time-monitor/components/studio-status.vue new file mode 100644 index 0000000..5c7e6bb --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/studio-status.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/components/studio.vue b/src/views/demo/visualization/real-time-monitor/components/studio.vue new file mode 100644 index 0000000..742e774 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/components/studio.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/index.vue b/src/views/demo/visualization/real-time-monitor/index.vue new file mode 100644 index 0000000..604066b --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/index.vue @@ -0,0 +1,87 @@ + + + + + + + + + diff --git a/src/views/demo/visualization/real-time-monitor/locale/en-US.ts b/src/views/demo/visualization/real-time-monitor/locale/en-US.ts new file mode 100644 index 0000000..41c94f3 --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/locale/en-US.ts @@ -0,0 +1,49 @@ +export default { + 'menu.dashboard.realTimeMonitor': 'Real-time Monitor', + 'realTimeMonitor.title.chatPanel': 'Chat Window', + 'realTimeMonitor.title.quickOperation': 'Quick Operation', + 'realTimeMonitor.title.studioInfo': 'Studio Information', + 'realTimeMonitor.title.studioPreview': 'Studio Preview', + 'realTimeMonitor.chat.options.all': 'All', + 'realTimeMonitor.chat.placeholder.searchCategory': 'Search Category', + 'realTimeMonitor.chat.update': 'Update', + 'realTimeMonitor.list.title.order': 'Order', + 'realTimeMonitor.list.title.cover': 'Cover', + 'realTimeMonitor.list.title.name': 'Name', + 'realTimeMonitor.list.title.duration': 'Duration', + 'realTimeMonitor.list.title.id': 'ID', + 'realTimeMonitor.list.tip.rotations': 'Rotations ', + 'realTimeMonitor.list.tip.rest': + ', The program list is not visible to viewers', + 'realTimeMonitor.list.tag.auditFailed': 'Audit Failed', + 'realTimeMonitor.tab.title.liveMethod': 'Live Method', + 'realTimeMonitor.tab.title.onlinePopulation': 'Online Population', + 'realTimeMonitor.liveMethod.normal': 'Normal Live', + 'realTimeMonitor.liveMethod.flowControl': 'Flow Control Live', + 'realTimeMonitor.liveMethod.video': 'Video Live', + 'realTimeMonitor.liveMethod.web': 'Web Live', + 'realTimeMonitor.editCarousel': 'Edit', + 'realTimeMonitor.startCarousel': 'Start', + 'realTimeMonitor.quickOperation.changeClarity': 'Change the Clarity', + 'realTimeMonitor.quickOperation.switchStream': 'Switch Stream', + 'realTimeMonitor.quickOperation.removeClarity': 'Remove the Clarity', + 'realTimeMonitor.quickOperation.pushFlowGasket': 'Push Flow Gasket', + 'realTimeMonitor.studioInfo.label.studioTitle': 'Studio Title', + 'realTimeMonitor.studioInfo.label.onlineNotification': 'Online Notification', + 'realTimeMonitor.studioInfo.label.studioCategory': 'Studio Category', + 'realTimeMonitor.studioInfo.placeholder.studioTitle': "'s Studio", + 'realTimeMonitor.studioInfo.btn.fresh': 'Fresh', + 'realTimeMonitor.studioStatus.title.studioStatus': 'Studio Status', + 'realTimeMonitor.studioStatus.title.pictureInfo': 'Picture Information', + 'realTimeMonitor.studioStatus.smooth': 'Smooth', + 'realTimeMonitor.studioStatus.frameRate': 'Frame', + 'realTimeMonitor.studioStatus.bitRate': 'Bit', + 'realTimeMonitor.studioStatus.mainstream': 'Main', + 'realTimeMonitor.studioStatus.hotStandby': 'Hot', + 'realTimeMonitor.studioStatus.coldStandby': 'Cold', + 'realTimeMonitor.studioStatus.line': 'Line', + 'realTimeMonitor.studioStatus.play': 'Format', + 'realTimeMonitor.studioStatus.pictureQuality': 'Quality', + 'realTimeMonitor.studioPreview.studio': 'Studio', + 'realTimeMonitor.studioPreview.watching': 'watching', +}; diff --git a/src/views/demo/visualization/real-time-monitor/locale/zh-CN.ts b/src/views/demo/visualization/real-time-monitor/locale/zh-CN.ts new file mode 100644 index 0000000..be37fea --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/locale/zh-CN.ts @@ -0,0 +1,48 @@ +export default { + 'menu.dashboard.realTimeMonitor': '实时监控', + 'realTimeMonitor.title.chatPanel': '聊天窗口', + 'realTimeMonitor.title.quickOperation': '快捷操作', + 'realTimeMonitor.title.studioInfo': '直播信息', + 'realTimeMonitor.title.studioPreview': '直播预览', + 'realTimeMonitor.chat.options.all': '全部', + 'realTimeMonitor.chat.placeholder.searchCategory': '搜索类目', + 'realTimeMonitor.chat.update': '更新', + 'realTimeMonitor.list.title.order': '序号', + 'realTimeMonitor.list.title.cover': '封面', + 'realTimeMonitor.list.title.name': '名称', + 'realTimeMonitor.list.title.duration': '视频时长', + 'realTimeMonitor.list.title.id': '视频Id', + 'realTimeMonitor.list.tip.rotations': '轮播次数', + 'realTimeMonitor.list.tip.rest': ',节目单观众不可见', + 'realTimeMonitor.list.tag.auditFailed': '审核未通过', + 'realTimeMonitor.tab.title.liveMethod': '直播方式', + 'realTimeMonitor.tab.title.onlinePopulation': '在线人数', + 'realTimeMonitor.liveMethod.normal': '普通直播', + 'realTimeMonitor.liveMethod.flowControl': '控流直播', + 'realTimeMonitor.liveMethod.video': '视频直播', + 'realTimeMonitor.liveMethod.web': '网页开播', + 'realTimeMonitor.editCarousel': '编辑轮播', + 'realTimeMonitor.startCarousel': '开始轮播', + 'realTimeMonitor.quickOperation.changeClarity': '切换清晰度', + 'realTimeMonitor.quickOperation.switchStream': '主备流切换', + 'realTimeMonitor.quickOperation.removeClarity': '摘除清晰度', + 'realTimeMonitor.quickOperation.pushFlowGasket': '推流垫片', + 'realTimeMonitor.studioInfo.label.studioTitle': '直播标题', + 'realTimeMonitor.studioInfo.label.onlineNotification': '上线通知', + 'realTimeMonitor.studioInfo.label.studioCategory': '直播类目', + 'realTimeMonitor.studioInfo.placeholder.studioTitle': '的直播间', + 'realTimeMonitor.studioInfo.btn.fresh': '更新', + 'realTimeMonitor.studioStatus.title.studioStatus': '直播状态', + 'realTimeMonitor.studioStatus.title.pictureInfo': '画面信息', + 'realTimeMonitor.studioStatus.smooth': '流畅', + 'realTimeMonitor.studioStatus.frameRate': '帧率', + 'realTimeMonitor.studioStatus.bitRate': '码率', + 'realTimeMonitor.studioStatus.mainstream': '主流', + 'realTimeMonitor.studioStatus.hotStandby': '热备', + 'realTimeMonitor.studioStatus.coldStandby': '冷备', + 'realTimeMonitor.studioStatus.line': '线路', + 'realTimeMonitor.studioStatus.play': '播放格式', + 'realTimeMonitor.studioStatus.pictureQuality': '画质', + 'realTimeMonitor.studioPreview.studio': '直播间', + 'realTimeMonitor.studioPreview.watching': '在看', +}; diff --git a/src/views/demo/visualization/real-time-monitor/mock.ts b/src/views/demo/visualization/real-time-monitor/mock.ts new file mode 100644 index 0000000..47bee2d --- /dev/null +++ b/src/views/demo/visualization/real-time-monitor/mock.ts @@ -0,0 +1,26 @@ +import Mock from 'mockjs'; + +import setupMock, { + successResponseWrap, + // failResponseWrap, +} from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/chat/list'), () => { + // return failResponseWrap(null, '重新登陆', 50008); + const data = Mock.mock({ + 'data|4-6': [ + { + 'id|+1': 1, + 'username': '用户7352772', + 'content': '马上就开始了,好激动!', + 'time': '13:09:12', + 'isCollect|2': true, + }, + ], + }); + return successResponseWrap(data.data); + }); + }, +}); diff --git a/src/views/login/components/account-login.vue b/src/views/login/components/account-login.vue new file mode 100644 index 0000000..1823c90 --- /dev/null +++ b/src/views/login/components/account-login.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/views/login/components/email-login.vue b/src/views/login/components/email-login.vue new file mode 100644 index 0000000..d8195d1 --- /dev/null +++ b/src/views/login/components/email-login.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/login/components/phone-login.vue b/src/views/login/components/phone-login.vue new file mode 100644 index 0000000..621225d --- /dev/null +++ b/src/views/login/components/phone-login.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100644 index 0000000..23866fe --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,295 @@ + + + + + diff --git a/src/views/login/locale/en-US.ts b/src/views/login/locale/en-US.ts new file mode 100644 index 0000000..6162ec5 --- /dev/null +++ b/src/views/login/locale/en-US.ts @@ -0,0 +1,39 @@ +export default { + 'login.welcome': 'Welcome to', + 'login.account': 'Account Login', + 'login.phone': 'Phone Login', + 'login.email': 'Email Login', + 'login.other': 'Other Login', + 'login.ing': 'Login...', + 'bind.ing': 'Bind...', + + 'login.account.placeholder.username': 'Please enter username', + 'login.account.placeholder.password': 'Please enter password', + 'login.account.placeholder.captcha': 'Please enter captcha', + 'login.phone.placeholder.phone': 'Please enter phone', + 'login.phone.placeholder.captcha': 'Please enter captcha', + 'login.email.placeholder.email': 'Please enter email', + 'login.email.placeholder.captcha': 'Please enter captcha', + 'login.captcha.get': 'Get captcha', + 'login.captcha.ing': 'Sending...', + + 'login.account.error.required.username': 'Please enter username', + 'login.account.error.required.password': 'Please enter password', + 'login.account.error.required.captcha': 'Please enter captcha', + 'login.phone.error.required.phone': 'Please enter phone', + 'login.phone.error.match.phone': + 'Please enter the correct mobile phone number', + 'login.phone.error.required.captcha': 'Please enter captcha', + 'login.email.error.required.email': 'Please enter email', + 'login.email.error.required.captcha': 'Please enter captcha', + + 'login.captcha': 'Captcha', + 'login.rememberMe': 'Remember me', + 'login.button': 'Login', + 'login.email.txt': 'Email', + 'login.account.txt': 'Account/Phone Login', + + 'login.success': 'Welcome to use', + 'login.error': 'Login error, refresh and try again', + 'login.logout.success': 'Logout success', +}; diff --git a/src/views/login/locale/zh-CN.ts b/src/views/login/locale/zh-CN.ts new file mode 100644 index 0000000..96277e4 --- /dev/null +++ b/src/views/login/locale/zh-CN.ts @@ -0,0 +1,38 @@ +export default { + 'login.welcome': '欢迎来到', + 'login.account': '账号登录', + 'login.phone': '手机号登录', + 'login.email': '邮箱登录', + 'login.other': '其他登录方式', + 'login.ing': '登录中...', + 'bind.ing': '绑定中...', + + 'login.account.placeholder.username': '请输入用户名', + 'login.account.placeholder.password': '请输入密码', + 'login.account.placeholder.captcha': '请输入验证码', + 'login.phone.placeholder.phone': '请输入手机号', + 'login.phone.placeholder.captcha': '请输入验证码', + 'login.email.placeholder.email': '请输入邮箱', + 'login.email.placeholder.captcha': '请输入验证码', + 'login.captcha.get': '获取验证码', + 'login.captcha.ing': '发送中...', + + 'login.account.error.required.username': '请输入用户名', + 'login.account.error.required.password': '请输入密码', + 'login.account.error.required.captcha': '请输入验证码', + 'login.phone.error.required.phone': '请输入手机号', + 'login.phone.error.match.phone': '请输入正确的手机号', + 'login.phone.error.required.captcha': '请输入验证码', + 'login.email.error.required.email': '请输入邮箱', + 'login.email.error.required.captcha': '请输入验证码', + + 'login.captcha': '验证码', + 'login.rememberMe': '记住我', + 'login.button': '立即登录', + 'login.email.txt': '邮箱', + 'login.account.txt': '账号/手机号登录', + + 'login.success': '欢迎使用', + 'login.error': '登录出错,请刷新重试', + 'login.logout.success': '退出成功', +}; diff --git a/src/views/login/social/index.vue b/src/views/login/social/index.vue new file mode 100644 index 0000000..f9d6f00 --- /dev/null +++ b/src/views/login/social/index.vue @@ -0,0 +1,104 @@ + + + + + + + diff --git a/src/views/monitor/log/login/index.vue b/src/views/monitor/log/login/index.vue new file mode 100644 index 0000000..db198a9 --- /dev/null +++ b/src/views/monitor/log/login/index.vue @@ -0,0 +1,175 @@ + + + + + + + diff --git a/src/views/monitor/log/login/locale/en-US.ts b/src/views/monitor/log/login/locale/en-US.ts new file mode 100644 index 0000000..f976d79 --- /dev/null +++ b/src/views/monitor/log/login/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.login.list': 'Login log', +}; diff --git a/src/views/monitor/log/login/locale/zh-CN.ts b/src/views/monitor/log/login/locale/zh-CN.ts new file mode 100644 index 0000000..c036115 --- /dev/null +++ b/src/views/monitor/log/login/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.login.list': '登录日志', +}; diff --git a/src/views/monitor/log/operation/index.vue b/src/views/monitor/log/operation/index.vue new file mode 100644 index 0000000..161081c --- /dev/null +++ b/src/views/monitor/log/operation/index.vue @@ -0,0 +1,185 @@ + + + + + + + diff --git a/src/views/monitor/log/operation/locale/en-US.ts b/src/views/monitor/log/operation/locale/en-US.ts new file mode 100644 index 0000000..e7c267f --- /dev/null +++ b/src/views/monitor/log/operation/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.operation.list': 'Operation log', +}; diff --git a/src/views/monitor/log/operation/locale/zh-CN.ts b/src/views/monitor/log/operation/locale/zh-CN.ts new file mode 100644 index 0000000..6af1b67 --- /dev/null +++ b/src/views/monitor/log/operation/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.operation.list': '操作日志', +}; diff --git a/src/views/monitor/log/system/index.vue b/src/views/monitor/log/system/index.vue new file mode 100644 index 0000000..1bdb9f1 --- /dev/null +++ b/src/views/monitor/log/system/index.vue @@ -0,0 +1,435 @@ + + + + + + + diff --git a/src/views/monitor/log/system/locale/en-US.ts b/src/views/monitor/log/system/locale/en-US.ts new file mode 100644 index 0000000..f6b1a4f --- /dev/null +++ b/src/views/monitor/log/system/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.system.list': 'System log', +}; diff --git a/src/views/monitor/log/system/locale/zh-CN.ts b/src/views/monitor/log/system/locale/zh-CN.ts new file mode 100644 index 0000000..6d88a88 --- /dev/null +++ b/src/views/monitor/log/system/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.log.system.list': '系统日志', +}; diff --git a/src/views/monitor/online/index.vue b/src/views/monitor/online/index.vue new file mode 100644 index 0000000..fac0244 --- /dev/null +++ b/src/views/monitor/online/index.vue @@ -0,0 +1,199 @@ + + + + + + + diff --git a/src/views/monitor/online/locale/en-US.ts b/src/views/monitor/online/locale/en-US.ts new file mode 100644 index 0000000..ea23c97 --- /dev/null +++ b/src/views/monitor/online/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.online.user.list': 'Online user', +}; diff --git a/src/views/monitor/online/locale/zh-CN.ts b/src/views/monitor/online/locale/zh-CN.ts new file mode 100644 index 0000000..bab3974 --- /dev/null +++ b/src/views/monitor/online/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.online.user.list': '在线用户', +}; diff --git a/src/views/other/not-found/index.vue b/src/views/other/not-found/index.vue new file mode 100644 index 0000000..1aacfab --- /dev/null +++ b/src/views/other/not-found/index.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue new file mode 100644 index 0000000..59930af --- /dev/null +++ b/src/views/redirect/index.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/views/system/announcement/index.vue b/src/views/system/announcement/index.vue new file mode 100644 index 0000000..6cb180e --- /dev/null +++ b/src/views/system/announcement/index.vue @@ -0,0 +1,625 @@ + + + + + + + diff --git a/src/views/system/announcement/locale/en-US.ts b/src/views/system/announcement/locale/en-US.ts new file mode 100644 index 0000000..469dcd7 --- /dev/null +++ b/src/views/system/announcement/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.announcement.list': 'Announcement management', +}; diff --git a/src/views/system/announcement/locale/zh-CN.ts b/src/views/system/announcement/locale/zh-CN.ts new file mode 100644 index 0000000..2bcb332 --- /dev/null +++ b/src/views/system/announcement/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.announcement.list': '公告管理', +}; diff --git a/src/views/system/config/components/basic-setting.vue b/src/views/system/config/components/basic-setting.vue new file mode 100644 index 0000000..9ab4450 --- /dev/null +++ b/src/views/system/config/components/basic-setting.vue @@ -0,0 +1,436 @@ + + + + + diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue new file mode 100644 index 0000000..a2d6aff --- /dev/null +++ b/src/views/system/config/index.vue @@ -0,0 +1,29 @@ + + + + + + + diff --git a/src/views/system/config/locale/en-US.ts b/src/views/system/config/locale/en-US.ts new file mode 100644 index 0000000..d5243f9 --- /dev/null +++ b/src/views/system/config/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.config': 'System config', +}; diff --git a/src/views/system/config/locale/zh-CN.ts b/src/views/system/config/locale/zh-CN.ts new file mode 100644 index 0000000..4eae1c2 --- /dev/null +++ b/src/views/system/config/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.config': '系统配置', +}; diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue new file mode 100644 index 0000000..dd6a48b --- /dev/null +++ b/src/views/system/dept/index.vue @@ -0,0 +1,616 @@ + + + + + + + diff --git a/src/views/system/dept/locale/en-US.ts b/src/views/system/dept/locale/en-US.ts new file mode 100644 index 0000000..a8107bc --- /dev/null +++ b/src/views/system/dept/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.dept.list': 'Department management', +}; diff --git a/src/views/system/dept/locale/zh-CN.ts b/src/views/system/dept/locale/zh-CN.ts new file mode 100644 index 0000000..b27ef70 --- /dev/null +++ b/src/views/system/dept/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.dept.list': '部门管理', +}; diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue new file mode 100644 index 0000000..5b43617 --- /dev/null +++ b/src/views/system/dict/index.vue @@ -0,0 +1,488 @@ + + + + + + + diff --git a/src/views/system/dict/item.vue b/src/views/system/dict/item.vue new file mode 100644 index 0000000..a2ff1cc --- /dev/null +++ b/src/views/system/dict/item.vue @@ -0,0 +1,346 @@ + + + + + + + diff --git a/src/views/system/dict/locale/en-US.ts b/src/views/system/dict/locale/en-US.ts new file mode 100644 index 0000000..5ef3718 --- /dev/null +++ b/src/views/system/dict/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.dict.list': 'Dictionary management', +}; diff --git a/src/views/system/dict/locale/zh-CN.ts b/src/views/system/dict/locale/zh-CN.ts new file mode 100644 index 0000000..dff22b6 --- /dev/null +++ b/src/views/system/dict/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.dict.list': '字典管理', +}; diff --git a/src/views/system/file/components/FileDetailModal/index.vue b/src/views/system/file/components/FileDetailModal/index.vue new file mode 100644 index 0000000..af28df2 --- /dev/null +++ b/src/views/system/file/components/FileDetailModal/index.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/src/views/system/file/components/FileRenameModal/index.vue b/src/views/system/file/components/FileRenameModal/index.vue new file mode 100644 index 0000000..4d9d60d --- /dev/null +++ b/src/views/system/file/components/FileRenameModal/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/views/system/file/components/PreviewAudioModal/index.vue b/src/views/system/file/components/PreviewAudioModal/index.vue new file mode 100644 index 0000000..bcfd926 --- /dev/null +++ b/src/views/system/file/components/PreviewAudioModal/index.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/views/system/file/components/PreviewVideoModal/index.vue b/src/views/system/file/components/PreviewVideoModal/index.vue new file mode 100644 index 0000000..43d9c40 --- /dev/null +++ b/src/views/system/file/components/PreviewVideoModal/index.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/views/system/file/components/index.ts b/src/views/system/file/components/index.ts new file mode 100644 index 0000000..6cc24c9 --- /dev/null +++ b/src/views/system/file/components/index.ts @@ -0,0 +1,70 @@ +import type { Component } from 'vue'; +import { createApp } from 'vue'; +import ArcoVueIcon from '@arco-design/web-vue/es/icon'; +import ArcoVue from '@arco-design/web-vue'; +import { FileItem } from '@/api/system/file'; + +import FileRenameModal from './FileRenameModal/index.vue'; +import FileDetailModal from './FileDetailModal/index.vue'; +import PreviewVideoModal from './PreviewVideoModal/index.vue'; +import PreviewAudioModal from './PreviewAudioModal/index.vue'; + +function createModal void }>( + component: Component, + options?: T, +) { + // 创建一个挂载容器 + const el: HTMLElement = document.createElement('div'); + // 挂载组件 + document.body.appendChild(el); + + // 实例化组件, createApp 第二个参数是 props + const instance = createApp(component, { + ...options, + onClose: () => { + setTimeout(() => { + instance.unmount(); + document.body.removeChild(el); + // options?.callback && options?.callback(); + }, 350); + }, + }); + + instance.use(ArcoVue); + instance.use(ArcoVueIcon); + instance.mount(el); +} + +type TFileOptions = { fileInfo: FileItem; callback?: () => void }; + +/** 打开 文件重命名 弹窗 */ +export function openFileRenameModal(fileItem: FileItem) { + return createModal(FileRenameModal, { fileInfo: fileItem }); +} + +/** 打开 详情 弹窗 */ +export function openFileDetailModal(fileItem: FileItem) { + return createModal(FileDetailModal, { fileInfo: fileItem }); +} + +/** 预览 视频文件 弹窗 */ +export function previewFileVideoModal(fileItem: FileItem) { + return createModal(PreviewVideoModal, { fileInfo: fileItem }); +} + +/** 预览 音频文件 弹窗 */ +let fileAudioId: string = ''; +export function previewFileAudioModal(fileItem: FileItem) { + if (fileAudioId) { + fileAudioId = ''; + } + fileAudioId = fileItem.id; + // eslint-disable-next-line consistent-return + return createModal(PreviewAudioModal, { + fileInfo: fileItem, + // 关闭的回调 + callback: () => { + fileAudioId = ''; + }, + }); +} diff --git a/src/views/system/file/index.vue b/src/views/system/file/index.vue new file mode 100644 index 0000000..e7554b9 --- /dev/null +++ b/src/views/system/file/index.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/views/system/file/locale/en-US.ts b/src/views/system/file/locale/en-US.ts new file mode 100644 index 0000000..605b728 --- /dev/null +++ b/src/views/system/file/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.file.list': 'File management', +}; diff --git a/src/views/system/file/locale/zh-CN.ts b/src/views/system/file/locale/zh-CN.ts new file mode 100644 index 0000000..e43b850 --- /dev/null +++ b/src/views/system/file/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.file.list': '文件管理', +}; diff --git a/src/views/system/file/main/FileAside.vue b/src/views/system/file/main/FileAside.vue new file mode 100644 index 0000000..729742f --- /dev/null +++ b/src/views/system/file/main/FileAside.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/system/file/main/FileMain/FileGrid.vue b/src/views/system/file/main/FileMain/FileGrid.vue new file mode 100644 index 0000000..be9e212 --- /dev/null +++ b/src/views/system/file/main/FileMain/FileGrid.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/views/system/file/main/FileMain/FileImg.vue b/src/views/system/file/main/FileMain/FileImg.vue new file mode 100644 index 0000000..338fd0b --- /dev/null +++ b/src/views/system/file/main/FileMain/FileImg.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/system/file/main/FileMain/FileList.vue b/src/views/system/file/main/FileMain/FileList.vue new file mode 100644 index 0000000..06b4667 --- /dev/null +++ b/src/views/system/file/main/FileMain/FileList.vue @@ -0,0 +1,138 @@ + + + + + + + diff --git a/src/views/system/file/main/FileMain/FileRightMenu.vue b/src/views/system/file/main/FileMain/FileRightMenu.vue new file mode 100644 index 0000000..a57a695 --- /dev/null +++ b/src/views/system/file/main/FileMain/FileRightMenu.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/views/system/file/main/FileMain/index.vue b/src/views/system/file/main/FileMain/index.vue new file mode 100644 index 0000000..cc7d426 --- /dev/null +++ b/src/views/system/file/main/FileMain/index.vue @@ -0,0 +1,806 @@ + + + + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue new file mode 100644 index 0000000..3c5e153 --- /dev/null +++ b/src/views/system/menu/index.vue @@ -0,0 +1,662 @@ + + + + + + + diff --git a/src/views/system/menu/locale/en-US.ts b/src/views/system/menu/locale/en-US.ts new file mode 100644 index 0000000..544a7c2 --- /dev/null +++ b/src/views/system/menu/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.menu.list': 'Menu management', +}; diff --git a/src/views/system/menu/locale/zh-CN.ts b/src/views/system/menu/locale/zh-CN.ts new file mode 100644 index 0000000..0c5abf9 --- /dev/null +++ b/src/views/system/menu/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.menu.list': '菜单管理', +}; diff --git a/src/views/system/message/index.vue b/src/views/system/message/index.vue new file mode 100644 index 0000000..09ab22d --- /dev/null +++ b/src/views/system/message/index.vue @@ -0,0 +1,431 @@ + + + + + + + diff --git a/src/views/system/message/locale/en-US.ts b/src/views/system/message/locale/en-US.ts new file mode 100644 index 0000000..1af2926 --- /dev/null +++ b/src/views/system/message/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.message.list': 'Message management', +}; diff --git a/src/views/system/message/locale/zh-CN.ts b/src/views/system/message/locale/zh-CN.ts new file mode 100644 index 0000000..6e4fbd6 --- /dev/null +++ b/src/views/system/message/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.message.list': '消息管理', +}; diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue new file mode 100644 index 0000000..c3865e5 --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,843 @@ + + + + + + + diff --git a/src/views/system/role/locale/en-US.ts b/src/views/system/role/locale/en-US.ts new file mode 100644 index 0000000..a76ceb3 --- /dev/null +++ b/src/views/system/role/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.role.list': 'Role management', +}; diff --git a/src/views/system/role/locale/zh-CN.ts b/src/views/system/role/locale/zh-CN.ts new file mode 100644 index 0000000..8f59ef6 --- /dev/null +++ b/src/views/system/role/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.role.list': '角色管理', +}; diff --git a/src/views/system/user/center/components/basic-info.vue b/src/views/system/user/center/components/basic-info.vue new file mode 100644 index 0000000..ea73936 --- /dev/null +++ b/src/views/system/user/center/components/basic-info.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/views/system/user/center/components/operation-log.vue b/src/views/system/user/center/components/operation-log.vue new file mode 100644 index 0000000..26d3ffd --- /dev/null +++ b/src/views/system/user/center/components/operation-log.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/views/system/user/center/components/security-settings.vue b/src/views/system/user/center/components/security-settings.vue new file mode 100644 index 0000000..11b4530 --- /dev/null +++ b/src/views/system/user/center/components/security-settings.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/src/views/system/user/center/components/security-settings/bind-social.vue b/src/views/system/user/center/components/security-settings/bind-social.vue new file mode 100644 index 0000000..4feb132 --- /dev/null +++ b/src/views/system/user/center/components/security-settings/bind-social.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/views/system/user/center/components/security-settings/update-email.vue b/src/views/system/user/center/components/security-settings/update-email.vue new file mode 100644 index 0000000..2cf1470 --- /dev/null +++ b/src/views/system/user/center/components/security-settings/update-email.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/views/system/user/center/components/security-settings/update-phone.vue b/src/views/system/user/center/components/security-settings/update-phone.vue new file mode 100644 index 0000000..11577c7 --- /dev/null +++ b/src/views/system/user/center/components/security-settings/update-phone.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/views/system/user/center/components/security-settings/update-pwd.vue b/src/views/system/user/center/components/security-settings/update-pwd.vue new file mode 100644 index 0000000..908c06e --- /dev/null +++ b/src/views/system/user/center/components/security-settings/update-pwd.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/views/system/user/center/components/user-panel.vue b/src/views/system/user/center/components/user-panel.vue new file mode 100644 index 0000000..567d807 --- /dev/null +++ b/src/views/system/user/center/components/user-panel.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/src/views/system/user/center/index.vue b/src/views/system/user/center/index.vue new file mode 100644 index 0000000..88444fd --- /dev/null +++ b/src/views/system/user/center/index.vue @@ -0,0 +1,73 @@ + + + + + + + diff --git a/src/views/system/user/center/locale/en-US.ts b/src/views/system/user/center/locale/en-US.ts new file mode 100644 index 0000000..b342ff3 --- /dev/null +++ b/src/views/system/user/center/locale/en-US.ts @@ -0,0 +1,134 @@ +export default { + 'menu.user.center': 'User Center', + 'userCenter.tab.basicInfo': 'Basic Information', + 'userCenter.tab.securitySettings': 'Security Settings', + 'userCenter.tab.operationLog': 'Operation Log', + + // user-panel + 'userCenter.panel.avatar': 'Avatar', + 'userCenter.panel.avatar.upload': 'Upload Avatar', + 'userCenter.panel.label.nickname': 'Nick Name :', + 'userCenter.panel.label.gender': 'Gender :', + 'userCenter.panel.label.phone': 'Phone :', + 'userCenter.panel.label.email': 'Email :', + 'userCenter.panel.label.deptName': 'Dept Name :', + 'userCenter.panel.label.registrationDate': 'Registration Date :', + 'userCenter.panel.male': 'male', + 'userCenter.panel.female': 'female', + 'userCenter.panel.unknown': 'unknown', + + // basic-info + 'userCenter.basicInfo.form.label.username': 'Username', + 'userCenter.basicInfo.form.label.nickname': 'Nickname', + 'userCenter.basicInfo.form.label.gender': 'Gender', + + 'userCenter.basicInfo.form.placeholder.username': 'Please enter username', + 'userCenter.basicInfo.form.placeholder.nickname': 'Please enter nickname', + + 'userCenter.basicInfo.form.error.required.username': 'Please enter username', + 'userCenter.basicInfo.form.error.required.nickname': 'Please enter nickname', + 'userCenter.basicInfo.form.error.match.nickname': + 'Nickname are 2 to 30 digits long and can contain Chinese, letters, numbers, underscores, dashes', + + 'userCenter.basicInfo.form.save': 'Save', + 'userCenter.basicInfo.form.save.success': 'Save success', + 'userCenter.basicInfo.form.reset': 'Reset', + + // security-settings + // update-pwd + 'userCenter.securitySettings.password.label': 'Login Password', + 'userCenter.securitySettings.password.tip': + 'The password you need to enter when logging in to your account', + 'userCenter.securitySettings.password.content': 'Not set', + + 'userCenter.securitySettings.updatePwd.modal.title': 'Update login password', + 'userCenter.securitySettings.updatePwd.form.label.oldPassword': + 'Old password', + 'userCenter.securitySettings.updatePwd.form.label.newPassword': + 'New password', + 'userCenter.securitySettings.updatePwd.form.label.rePassword': + 'Confirm password', + + 'userCenter.securitySettings.updatePwd.form.placeholder.oldPassword': + 'Please enter old password', + 'userCenter.securitySettings.updatePwd.form.placeholder.newPassword': + 'Password contains 6 to 32 digits and letters', + 'userCenter.securitySettings.updatePwd.form.placeholder.rePassword': + 'Please enter new password again', + + 'userCenter.securitySettings.updatePwd.form.error.required.oldPassword': + 'Please enter old password', + 'userCenter.securitySettings.updatePwd.form.error.required.newPassword': + 'Please enter new password', + 'userCenter.securitySettings.updatePwd.form.error.match.newPassword': + 'Password contains 6 to 32 digits and letters', + 'userCenter.securitySettings.updatePwd.form.error.validator.newPassword': + 'New password cannot be the same as the old password', + 'userCenter.securitySettings.updatePwd.form.error.required.rePassword': + 'Please enter new password again', + 'userCenter.securitySettings.updatePwd.form.error.validator.rePassword': + 'Two passwords are different', + + // update-phone + 'userCenter.securitySettings.phone.label': 'Phone', + 'userCenter.securitySettings.phone.tip': + 'It is used to receive messages, verify identity, and support mobile phone verification code login after binding', + 'userCenter.securitySettings.phone.content': 'Unbound', + + 'userCenter.securitySettings.updatePhone.modal.title': 'Update phone', + 'userCenter.securitySettings.updatePhone.form.label.newPhone': 'New phone', + 'userCenter.securitySettings.updatePhone.form.label.captcha': 'Captcha', + 'userCenter.securitySettings.updatePhone.form.label.currentPassword': + 'Current password', + + 'userCenter.securitySettings.updatePhone.form.placeholder.newPhone': + 'Please enter new phone', + 'userCenter.securitySettings.updatePhone.form.placeholder.currentPassword': + 'Please enter current password', + + 'userCenter.securitySettings.updatePhone.form.error.required.newPhone': + 'Please enter new phone', + 'userCenter.securitySettings.updatePhone.form.error.match.newPhone': + 'Please enter the correct phone', + 'userCenter.securitySettings.updatePhone.form.error.required.currentPassword': + 'Please enter current password', + + // update-email + 'userCenter.securitySettings.email.label': 'Email', + 'userCenter.securitySettings.email.tip': + 'It is used to receive messages, verify identity, and support email login after binding', + 'userCenter.securitySettings.email.content': 'Unbound', + + 'userCenter.securitySettings.updateEmail.modal.title': 'Update email', + 'userCenter.securitySettings.updateEmail.form.label.newEmail': 'New email', + 'userCenter.securitySettings.updateEmail.form.label.captcha': 'Captcha', + 'userCenter.securitySettings.updateEmail.form.label.currentPassword': + 'Current password', + + 'userCenter.securitySettings.updateEmail.form.placeholder.newEmail': + 'Please enter new email', + 'userCenter.securitySettings.updateEmail.form.placeholder.currentPassword': + 'Please enter current password', + + 'userCenter.securitySettings.updateEmail.form.error.required.newEmail': + 'Please enter new email', + 'userCenter.securitySettings.updateEmail.form.error.match.newEmail': + 'Please enter the correct email', + 'userCenter.securitySettings.updateEmail.form.error.required.currentPassword': + 'Please enter current password', + + // bind-social + 'userCenter.securitySettings.social.label': 'Three-party login', + 'userCenter.securitySettings.social.tip': + 'Support quick login of third-party accounts', + 'userCenter.securitySettings.social.content': 'Unbound', + + 'userCenter.securitySettings.content.hasBeenSet': 'Has been set', + 'userCenter.securitySettings.button.update': 'Update', + 'userCenter.securitySettings.captcha.get': 'Get captcha', + 'userCenter.securitySettings.captcha.ing': 'Sending...', + 'userCenter.securitySettings.form.placeholder.captcha': + 'Please enter captcha', + 'userCenter.securitySettings.form.error.required.captcha': + 'Please enter captcha', +}; diff --git a/src/views/system/user/center/locale/zh-CN.ts b/src/views/system/user/center/locale/zh-CN.ts new file mode 100644 index 0000000..7fb3807 --- /dev/null +++ b/src/views/system/user/center/locale/zh-CN.ts @@ -0,0 +1,128 @@ +export default { + 'menu.user.center': '个人中心', + 'userCenter.tab.basicInfo': '基础信息', + 'userCenter.tab.securitySettings': '安全设置', + 'userCenter.tab.operationLog': '操作日志', + + // user-panel + 'userCenter.panel.avatar': '头像', + 'userCenter.panel.avatar.upload': '上传头像', + 'userCenter.panel.label.nickname': '昵称 :', + 'userCenter.panel.label.gender': '性别 :', + 'userCenter.panel.label.phone': '手机号码 :', + 'userCenter.panel.label.email': '邮箱 :', + 'userCenter.panel.label.deptName': '所属部门 :', + 'userCenter.panel.label.registrationDate': '注册日期 :', + 'userCenter.panel.male': '男', + 'userCenter.panel.female': '女', + 'userCenter.panel.unknown': '未知', + + // basic-info + 'userCenter.basicInfo.form.label.username': '用户名', + 'userCenter.basicInfo.form.label.nickname': '昵称', + 'userCenter.basicInfo.form.label.gender': '性别', + + 'userCenter.basicInfo.form.placeholder.username': '请输入用户名', + 'userCenter.basicInfo.form.placeholder.nickname': '请输入昵称', + + 'userCenter.basicInfo.form.error.required.username': '请输入用户名', + 'userCenter.basicInfo.form.error.required.nickname': '请输入昵称', + 'userCenter.basicInfo.form.error.match.nickname': + '长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线', + + 'userCenter.basicInfo.form.save': '保存', + 'userCenter.basicInfo.form.save.success': '保存成功', + 'userCenter.basicInfo.form.reset': '重置', + + // security-settings + // update-pwd + 'userCenter.securitySettings.password.label': '登录密码', + 'userCenter.securitySettings.password.tip': '登录账号时需要输入的密码', + 'userCenter.securitySettings.password.content': '未设置', + + 'userCenter.securitySettings.updatePwd.modal.title': '修改登录密码', + 'userCenter.securitySettings.updatePwd.form.label.oldPassword': '当前密码', + 'userCenter.securitySettings.updatePwd.form.label.newPassword': '新密码', + 'userCenter.securitySettings.updatePwd.form.label.rePassword': '确认新密码', + + 'userCenter.securitySettings.updatePwd.form.placeholder.oldPassword': + '请输入当前密码', + 'userCenter.securitySettings.updatePwd.form.placeholder.newPassword': + '长度为 6 到 32 位,同时包含字母和数字', + 'userCenter.securitySettings.updatePwd.form.placeholder.rePassword': + '请再次输入新密码', + + 'userCenter.securitySettings.updatePwd.form.error.required.oldPassword': + '请输入当前密码', + 'userCenter.securitySettings.updatePwd.form.error.required.newPassword': + '请输入新密码', + 'userCenter.securitySettings.updatePwd.form.error.match.newPassword': + '长度为 6 到 32 位,同时包含字母和数字', + 'userCenter.securitySettings.updatePwd.form.error.validator.newPassword': + '新密码不能与当前密码相同', + 'userCenter.securitySettings.updatePwd.form.error.required.rePassword': + '请再次输入新密码', + 'userCenter.securitySettings.updatePwd.form.error.validator.rePassword': + '两次输入的密码不一致', + + // update-phone + 'userCenter.securitySettings.phone.label': '安全手机', + 'userCenter.securitySettings.phone.tip': + '用于接收消息、验证身份,绑定后可支持手机验证码登录', + 'userCenter.securitySettings.phone.content': '未绑定', + + 'userCenter.securitySettings.updatePhone.modal.title': '修改手机号', + 'userCenter.securitySettings.updatePhone.form.label.newPhone': '新手机号', + 'userCenter.securitySettings.updatePhone.form.label.captcha': '验证码', + 'userCenter.securitySettings.updatePhone.form.label.currentPassword': + '当前密码', + + 'userCenter.securitySettings.updatePhone.form.placeholder.newPhone': + '请输入新手机号', + 'userCenter.securitySettings.updatePhone.form.placeholder.currentPassword': + '请输入当前密码', + + 'userCenter.securitySettings.updatePhone.form.error.required.newPhone': + '请输入新手机号', + 'userCenter.securitySettings.updatePhone.form.error.match.newPhone': + '请输入正确的手机号', + + 'userCenter.securitySettings.updatePhone.form.error.required.currentPassword': + '请输入当前密码', + + // update-email + 'userCenter.securitySettings.email.label': '安全邮箱', + 'userCenter.securitySettings.email.tip': + '用于接收消息、验证身份,绑定后可支持邮箱登录', + 'userCenter.securitySettings.email.content': '未绑定', + + 'userCenter.securitySettings.updateEmail.modal.title': '修改邮箱', + 'userCenter.securitySettings.updateEmail.form.label.newEmail': '新邮箱', + 'userCenter.securitySettings.updateEmail.form.label.captcha': '验证码', + 'userCenter.securitySettings.updateEmail.form.label.currentPassword': + '当前密码', + + 'userCenter.securitySettings.updateEmail.form.placeholder.newEmail': + '请输入新邮箱', + 'userCenter.securitySettings.updateEmail.form.placeholder.currentPassword': + '请输入当前密码', + + 'userCenter.securitySettings.updateEmail.form.error.required.newEmail': + '请输入新邮箱', + 'userCenter.securitySettings.updateEmail.form.error.match.newEmail': + '请输入正确的邮箱', + 'userCenter.securitySettings.updateEmail.form.error.required.currentPassword': + '请输入当前密码', + + // bind-social + 'userCenter.securitySettings.social.label': '三方登录', + 'userCenter.securitySettings.social.tip': '支持三方账号快速登录', + 'userCenter.securitySettings.social.content': '未绑定', + + 'userCenter.securitySettings.content.hasBeenSet': '已设置', + 'userCenter.securitySettings.button.update': '修改', + 'userCenter.securitySettings.captcha.get': '获取验证码', + 'userCenter.securitySettings.captcha.ing': '发送中...', + 'userCenter.securitySettings.form.placeholder.captcha': '请输入验证码', + 'userCenter.securitySettings.form.error.required.captcha': '请输入验证码', +}; diff --git a/src/views/system/user/center/mock.ts b/src/views/system/user/center/mock.ts new file mode 100644 index 0000000..0fec54a --- /dev/null +++ b/src/views/system/user/center/mock.ts @@ -0,0 +1,42 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/user/save-info'), () => { + return successResponseWrap('ok'); + }); + Mock.mock(new RegExp('/api/user/certification'), () => { + return successResponseWrap({ + enterpriseInfo: { + accountType: '企业账号', + status: 0, + time: '2022-12-27 20:00:00', + legalPerson: '张**', + certificateType: '中国身份证', + authenticationNumber: '110************123', + enterpriseName: '低调有实力的企业', + enterpriseCertificateType: '企业营业执照', + organizationCode: '7*******9', + }, + record: [ + { + certificationType: 1, + certificationContent: '企业实名认证,法人姓名:张**', + status: 0, + time: '2022-12-27 20:00:00', + }, + { + certificationType: 1, + certificationContent: '企业实名认证,法人姓名:张**', + status: 1, + time: '2022-12-27 20:00:00', + }, + ], + }); + }); + Mock.mock(new RegExp('/api/user/upload'), () => { + return successResponseWrap('ok'); + }); + }, +}); diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..e670033 --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,934 @@ + + + + + + + diff --git a/src/views/system/user/locale/en-US.ts b/src/views/system/user/locale/en-US.ts new file mode 100644 index 0000000..6cfd9ff --- /dev/null +++ b/src/views/system/user/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.user.list': 'User management', +}; diff --git a/src/views/system/user/locale/zh-CN.ts b/src/views/system/user/locale/zh-CN.ts new file mode 100644 index 0000000..f9a4028 --- /dev/null +++ b/src/views/system/user/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.system.user.list': '用户管理', +}; diff --git a/src/views/tool/generator/index.vue b/src/views/tool/generator/index.vue new file mode 100644 index 0000000..15d2b0e --- /dev/null +++ b/src/views/tool/generator/index.vue @@ -0,0 +1,591 @@ + + + + + + + diff --git a/src/views/tool/generator/locale/en-US.ts b/src/views/tool/generator/locale/en-US.ts new file mode 100644 index 0000000..62e8e07 --- /dev/null +++ b/src/views/tool/generator/locale/en-US.ts @@ -0,0 +1,3 @@ +export default { + 'menu.tool.generator.list': 'Code generate', +}; diff --git a/src/views/tool/generator/locale/zh-CN.ts b/src/views/tool/generator/locale/zh-CN.ts new file mode 100644 index 0000000..b118d67 --- /dev/null +++ b/src/views/tool/generator/locale/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + 'menu.tool.generator.list': '代码生成', +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1186c8d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "lib": ["es2020", "dom"], + "skipLibCheck": true, + "allowJs": true + }, + "include": ["src/**/*", "src/**/*.vue"], + "exclude": ["node_modules"] +}