From e80cd5fe41abed5dd36c7a90c968b860ff435295 Mon Sep 17 00:00:00 2001 From: hu177768073 <177768073@qq.com> Date: Mon, 15 Sep 2025 15:41:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 16 + .gitignore | 8 + angular.json | 141 + package-lock.json | 12938 +++++++++++++++ package.json | 46 + server.ts | 56 + src/app/app.component.html | 1 + src/app/app.component.less | 0 src/app/app.component.ts | 13 + src/app/app.config.server.ts | 11 + src/app/app.config.ts | 31 + src/app/app.routes.ts | 42 + src/app/data/common/button.namespace.ts | 12 + src/app/data/common/dictionary.namespace.ts | 13 + src/app/data/login/localStorage.namespace.ts | 5 + src/app/data/login/login.namespace.ts | 5 + src/app/data/menu/menu.namespace.ts | 9 + src/app/model/discount.interface.ts | 25 + src/app/pages/account/account.module.ts | 12 + src/app/pages/account/account.routes.ts | 8 + .../sys-account/sys-account.component.html | 136 + .../sys-account/sys-account.component.less | 15 + .../sys-account/sys-account.component.ts | 322 + .../account/sys-role/sys-role.component.html | 101 + .../account/sys-role/sys-role.component.less | 12 + .../account/sys-role/sys-role.component.ts | 291 + src/app/pages/body/body.module.ts | 10 + src/app/pages/body/index/index.component.html | 103 + src/app/pages/body/index/index.component.less | 69 + src/app/pages/body/index/index.component.ts | 246 + src/app/pages/body/menu/menu.module.ts | 12 + src/app/pages/body/tab/tab.component.html | 9 + src/app/pages/body/tab/tab.component.less | 34 + src/app/pages/body/tab/tab.component.ts | 116 + .../cms/cms-list/cms-list.component.html | 176 + .../cms/cms-list/cms-list.component.less | 12 + .../pages/cms/cms-list/cms-list.component.ts | 333 + src/app/pages/error/error.module.ts | 12 + src/app/pages/error/error.routes.ts | 15 + .../error/error401/error401.component.html | 5 + .../error/error401/error401.component.less | 0 .../error/error401/error401.component.ts | 44 + .../error/error403/error403.component.html | 5 + .../error/error403/error403.component.less | 0 .../error/error403/error403.component.ts | 29 + .../error/error404/error404.component.html | 5 + .../error/error404/error404.component.less | 0 .../error/error404/error404.component.ts | 27 + .../error/error500/error500.component.html | 5 + .../error/error500/error500.component.less | 0 .../error/error500/error500.component.ts | 27 + src/app/pages/index/index.module.ts | 10 + src/app/pages/index/index.routes.ts | 6 + .../pages/index/index/index.component.html | 5 + .../pages/index/index/index.component.less | 0 src/app/pages/index/index/index.component.ts | 21 + src/app/pages/login/login.module.ts | 12 + src/app/pages/login/login.routes.ts | 6 + .../pages/login/login/login.component.html | 65 + .../pages/login/login/login.component.less | 78 + src/app/pages/login/login/login.component.ts | 126 + src/app/pages/system/menu/menu.component.html | 106 + src/app/pages/system/menu/menu.component.less | 6 + src/app/pages/system/menu/menu.component.ts | 253 + src/app/pages/system/system.module.ts | 12 + src/app/pages/system/system.routes.ts | 8 + src/app/pipes/common/button.pipe.ts | 38 + .../pipes/common/date-minutes-diff.pipe.ts | 19 + src/app/pipes/common/dictionary.pipe.ts | 39 + .../services/account/sys-account.service.ts | 127 + src/app/services/cms/cms.service.ts | 72 + src/app/services/common/common.service.ts | 104 + src/app/services/common/validators.service.ts | 47 + src/app/services/login/login.service.ts | 38 + src/app/services/menu/menu.service.ts | 120 + src/app/services/role/role.service.ts | 73 + src/app/utils/Interceptor.service.ts | 88 + src/app/utils/dateUtils.service.ts | 139 + src/app/utils/initGuard.service.ts | 28 + src/app/utils/localStorage.service.ts | 32 + src/app/utils/mathUtils.service.ts | 13 + src/app/utils/objectData.service.ts | 24 + src/app/utils/routeReuseStrategy.ts | 63 + src/app/utils/validators.service.ts | 65 + src/assets/.gitkeep | 0 src/assets/data/region.json | 13266 ++++++++++++++++ src/assets/login/1.png | Bin 0 -> 69175 bytes src/assets/login/2.png | Bin 0 -> 78137 bytes src/assets/login/3.png | Bin 0 -> 69465 bytes src/assets/logo.jpg | Bin 0 -> 14351 bytes src/environments/environment.dev.ts | 5 + src/environments/environment.prod.ts | 5 + src/environments/environment.ts | 18 + src/favicon.ico | Bin 0 -> 62142 bytes src/index.html | 13 + src/main.server.ts | 7 + src/main.ts | 6 + src/styles.less | 15 + tsconfig.app.json | 18 + tsconfig.json | 33 + tsconfig.spec.json | 14 + 101 files changed, 30806 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 angular.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 server.ts create mode 100644 src/app/app.component.html create mode 100644 src/app/app.component.less create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.config.server.ts create mode 100644 src/app/app.config.ts create mode 100644 src/app/app.routes.ts create mode 100644 src/app/data/common/button.namespace.ts create mode 100644 src/app/data/common/dictionary.namespace.ts create mode 100644 src/app/data/login/localStorage.namespace.ts create mode 100644 src/app/data/login/login.namespace.ts create mode 100644 src/app/data/menu/menu.namespace.ts create mode 100644 src/app/model/discount.interface.ts create mode 100644 src/app/pages/account/account.module.ts create mode 100644 src/app/pages/account/account.routes.ts create mode 100644 src/app/pages/account/sys-account/sys-account.component.html create mode 100644 src/app/pages/account/sys-account/sys-account.component.less create mode 100644 src/app/pages/account/sys-account/sys-account.component.ts create mode 100644 src/app/pages/account/sys-role/sys-role.component.html create mode 100644 src/app/pages/account/sys-role/sys-role.component.less create mode 100644 src/app/pages/account/sys-role/sys-role.component.ts create mode 100644 src/app/pages/body/body.module.ts create mode 100644 src/app/pages/body/index/index.component.html create mode 100644 src/app/pages/body/index/index.component.less create mode 100644 src/app/pages/body/index/index.component.ts create mode 100644 src/app/pages/body/menu/menu.module.ts create mode 100644 src/app/pages/body/tab/tab.component.html create mode 100644 src/app/pages/body/tab/tab.component.less create mode 100644 src/app/pages/body/tab/tab.component.ts create mode 100644 src/app/pages/cms/cms-list/cms-list.component.html create mode 100644 src/app/pages/cms/cms-list/cms-list.component.less create mode 100644 src/app/pages/cms/cms-list/cms-list.component.ts create mode 100644 src/app/pages/error/error.module.ts create mode 100644 src/app/pages/error/error.routes.ts create mode 100644 src/app/pages/error/error401/error401.component.html create mode 100644 src/app/pages/error/error401/error401.component.less create mode 100644 src/app/pages/error/error401/error401.component.ts create mode 100644 src/app/pages/error/error403/error403.component.html create mode 100644 src/app/pages/error/error403/error403.component.less create mode 100644 src/app/pages/error/error403/error403.component.ts create mode 100644 src/app/pages/error/error404/error404.component.html create mode 100644 src/app/pages/error/error404/error404.component.less create mode 100644 src/app/pages/error/error404/error404.component.ts create mode 100644 src/app/pages/error/error500/error500.component.html create mode 100644 src/app/pages/error/error500/error500.component.less create mode 100644 src/app/pages/error/error500/error500.component.ts create mode 100644 src/app/pages/index/index.module.ts create mode 100644 src/app/pages/index/index.routes.ts create mode 100644 src/app/pages/index/index/index.component.html create mode 100644 src/app/pages/index/index/index.component.less create mode 100644 src/app/pages/index/index/index.component.ts create mode 100644 src/app/pages/login/login.module.ts create mode 100644 src/app/pages/login/login.routes.ts create mode 100644 src/app/pages/login/login/login.component.html create mode 100644 src/app/pages/login/login/login.component.less create mode 100644 src/app/pages/login/login/login.component.ts create mode 100644 src/app/pages/system/menu/menu.component.html create mode 100644 src/app/pages/system/menu/menu.component.less create mode 100644 src/app/pages/system/menu/menu.component.ts create mode 100644 src/app/pages/system/system.module.ts create mode 100644 src/app/pages/system/system.routes.ts create mode 100644 src/app/pipes/common/button.pipe.ts create mode 100644 src/app/pipes/common/date-minutes-diff.pipe.ts create mode 100644 src/app/pipes/common/dictionary.pipe.ts create mode 100644 src/app/services/account/sys-account.service.ts create mode 100644 src/app/services/cms/cms.service.ts create mode 100644 src/app/services/common/common.service.ts create mode 100644 src/app/services/common/validators.service.ts create mode 100644 src/app/services/login/login.service.ts create mode 100644 src/app/services/menu/menu.service.ts create mode 100644 src/app/services/role/role.service.ts create mode 100644 src/app/utils/Interceptor.service.ts create mode 100644 src/app/utils/dateUtils.service.ts create mode 100644 src/app/utils/initGuard.service.ts create mode 100644 src/app/utils/localStorage.service.ts create mode 100644 src/app/utils/mathUtils.service.ts create mode 100644 src/app/utils/objectData.service.ts create mode 100644 src/app/utils/routeReuseStrategy.ts create mode 100644 src/app/utils/validators.service.ts create mode 100644 src/assets/.gitkeep create mode 100644 src/assets/data/region.json create mode 100644 src/assets/login/1.png create mode 100644 src/assets/login/2.png create mode 100644 src/assets/login/3.png create mode 100644 src/assets/logo.jpg create mode 100644 src/environments/environment.dev.ts create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts create mode 100644 src/favicon.ico create mode 100644 src/index.html create mode 100644 src/main.server.ts create mode 100644 src/main.ts create mode 100644 src/styles.less create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.spec.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e9aeeaf --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.git/ +.idea/ +node_modules/ +dist/ +.angular/ + + + diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..62edc2b --- /dev/null +++ b/angular.json @@ -0,0 +1,141 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "oa-web": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "less" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/oa-web", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "less", + "assets": [ + "src/favicon.ico", + "src/assets", + { + "glob": "**/*", + "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/", + "output": "/assets/" + } + ], + "styles": [ + "src/styles.less" + ], + "scripts": [], + "server": "src/main.server.ts", + "prerender": true, + "ssr": { + "entry": "server.ts" + } + }, + "configurations": { + "prod": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all", + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] + }, + "dev": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all", + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.dev.ts" + } + ] + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "oa-web:build:production" + }, + "development": { + "buildTarget": "oa-web:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "oa-web:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "less", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.less" + ], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": "a81abb26-556d-44f1-a3d7-6e52625f6794" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e9dafba --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12938 @@ +{ + "name": "hai-oil-web", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hai-oil-web", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/router": "^17.0.0", + "@angular/ssr": "^17.0.7", + "express": "^4.18.2", + "ng-zorro-antd": "^17.1.0", + "qqmap": "^1.0.1", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/express": "^4.17.17", + "@types/jasmine": "~5.1.0", + "@types/node": "^18.18.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.7.tgz", + "integrity": "sha512-32uitQKsYLGXAKoXBsmOnPsTt9pS+b9cnFI9ZvBFVhJ31I2EOM7vGcMFalhTxdB/DkVHk4TyO78efV0V26DwCA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.7.tgz", + "integrity": "sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/build-webpack": "0.1700.7", + "@angular-devkit/core": "17.0.7", + "@babel/core": "7.23.2", + "@babel/generator": "7.23.0", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.2", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.23.2", + "@babel/preset-env": "7.23.2", + "@babel/runtime": "7.23.2", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.0.7", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browser-sync": "2.29.3", + "browserslist": "^4.21.5", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.5", + "fast-glob": "3.3.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.1.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "semver": "7.5.4", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.24.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "5.27.2", + "vite": "4.5.1", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.19.5" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.3" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.7.tgz", + "integrity": "sha512-B9Mg/qYDpE5my8PJ3VPQyRSUV0Oq1bFUzU8s0ZpqEZl1URKc04pm0LtLmebrMIcUZgDiGk0RHaD+O1E9IV/bdQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.7", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.7.tgz", + "integrity": "sha512-vATobHo5O5tJba424hJfQWLb40GzvZPNsI74dcgSUTgrDph8ksmk5xB9OvEvf0INorQZ2IMphj/VIWj4/+JqSA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.7.tgz", + "integrity": "sha512-BY11OkJkM3xyXcvyD7x5kGY/c8Ufd4AfPvI0D9imhVxbns45Q48b1DlvCQvSnCJ/s+OwnkrYb/Efa70ZiaGu8A==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.7.tgz", + "integrity": "sha512-IjZjPGMxvi2a9o7fzjwNO44FvhTZlVSgcPtqM6Glq0+WVeQcnZxf1Onj68M/FGx2AunS8elRbrgPxTexVeSo7A==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7" + } + }, + "node_modules/@angular/cdk": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.4.tgz", + "integrity": "sha512-mh/EuIR0NPfpNqAXBSZWuJeBMXUvUDYdKhiFWZet5NLO1bDgFe1MGLBjtW4us95k4BZsMLbCKNxJgc+4JqwUvg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.7.tgz", + "integrity": "sha512-oSa0GVAQNA7wFbLJYeaO3kV4iUcbKEqXDLxcIE8s1GfHddBOlXH2P1T4fXonCBl5qvV+joP0G0+fs7I0w2utZQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", + "@schematics/angular": "17.0.7", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.4", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.7.tgz", + "integrity": "sha512-bPPL6x0KOAOTxKSE2j4EWmEUOnqZYzOYiHzroa5b9UEyA9NvGkd9bm3zIxw8xcndRj1Ehcmvpi6KBLcYBBbWfg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.7.tgz", + "integrity": "sha512-QHPuLti2c2tGZmOGZ0cfCHo4LxiHUkC27I0aZFDyQSSQqEI5obQGVlEREHysw0nsS3sYIcLvqcwcKcRtXlXtxQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.7.tgz", + "integrity": "sha512-YnL38idjIYtl3BXYpv+sVJKWGbUjHT6eyQSQVAfO/1AwWqVa21K9hnE+Q37VmUKEcKFMnQembeuErA+KVsGI6A==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.0.7", + "typescript": ">=5.2 <5.3" + } + }, + "node_modules/@angular/core": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.7.tgz", + "integrity": "sha512-mEkelXkzEi6+A9GjdKOSGGzQAfo1iAjVTn6YsplNUeGE5JgDZYZ7sXGQqs0Lin7dzJxnPAgGjCOl7SpWLXIPSQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.7.tgz", + "integrity": "sha512-28BxRxEmgZIofGwVp6s2v3ri/kuWW+/EY/ZXhavlWKJEh4ATJl72k0RkRWNcQi4wnvn0Qb8tFdnVJnvRZvvKEw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.7.tgz", + "integrity": "sha512-bm9/wt51nc/MPjft/FlRNIgFSeLjDtfJOT7M32Rt6kOHhNKSK7ZTPWdMe9ahuHSbAhLzd0G/4NsT5sKrWSeVZg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.0.7", + "@angular/common": "17.0.7", + "@angular/core": "17.0.7" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.7.tgz", + "integrity": "sha512-OquwUX9fLWA2JUZW5Jm6atk0CPt0sA7Tg24eGLsr6g1XfTS7jRZprlGaa72NgPLnQVV6m84o/ZiNYS6yPmq1Gg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/compiler": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7" + } + }, + "node_modules/@angular/platform-server": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-17.0.7.tgz", + "integrity": "sha512-ezEOqcPw/2Naqb+L0Qq1eVCnN5Wrd9ACBTlBny6eOvYh/SVcmZlU2vdPX4aUKKu/Mq5CHNAaHHqqfwKCoDYnBw==", + "dependencies": { + "tslib": "^2.3.0", + "xhr2": "^0.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.0.7", + "@angular/common": "17.0.7", + "@angular/compiler": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7" + } + }, + "node_modules/@angular/router": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.7.tgz", + "integrity": "sha512-rUFPe1uDlYYw6+3Gq68czW7WxBH7zT/D3UsT1otqwUV4RnQQsVze4fIit9FqJh7tuP4y3WpB4XBNf7p7Oi6TJw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/ssr": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-17.0.7.tgz", + "integrity": "sha512-CV7xJEHAZ6PaA866E9+gHtLit8Lv7uqg2AYnh51ct5Jl9am0CIjbnf9bPUFq0iiCPnZ3uB0FMMjkFDup3Kl1Og==", + "dependencies": { + "critters": "0.0.20", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^17.0.0", + "@angular/core": "^17.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz", + "integrity": "sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/icons-angular": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-angular/-/icons-angular-17.0.0.tgz", + "integrity": "sha512-MNEh3UbkSl6gkdb5MQRNHEuWI1DnU1dME9zSymnWCipEXN7MB0mcYHSfyYTqKL1j45ftp6l1UnsLvhokRYyhXA==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^17.0.1", + "@angular/core": "^17.0.1", + "@angular/platform-browser": "^17.0.1", + "rxjs": "^6.4.0 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", + "dev": true, + "dependencies": { + "@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/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dev": true, + "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.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.7.tgz", + "integrity": "sha512-gwhUhpwXn0trwwKdSu9WlJbEcLt+s/2fPwoD9lZ0y3wXfrOogsfcNBJKeO5BZf1h+A3AWt7ePmgrZXSJM+865Q==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.3", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@schematics/angular": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.7.tgz", + "integrity": "sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", + "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/bonjour-service/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "dependencies": { + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", + "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/express/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/karma/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/karma/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/karma/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/karma/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/localtunnel/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/localtunnel/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ng-zorro-antd": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/ng-zorro-antd/-/ng-zorro-antd-17.1.0.tgz", + "integrity": "sha512-1lpknv5QXTeXk9k01GLbmxuXLyfRCGF91hVl3NF6Fedef7OJIstOmLy2VxvXoAQxrRyuYsDkEke2GJRC33mxhw==", + "dependencies": { + "@angular/cdk": "^17.0.0", + "@ant-design/icons-angular": "^17.0.0", + "date-fns": "^2.16.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/router": "^17.0.0" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz", + "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.1.0.tgz", + "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qqmap": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/qqmap/-/qqmap-1.0.1.tgz", + "integrity": "sha512-fg9WrQj+sB5+gHt4i0TTg9ySB4PxZX8MCX5CRpuNpWBwRuPS58gZP3WkvVrOql2vz2JpYjlxV+52T3H7WLRMOQ==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/resp-modifier/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "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 + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "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" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", + "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "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.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.2.tgz", + "integrity": "sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..eaa4104 --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "oa-web", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "serve:ssr:hai-oil-web": "node dist/hai-oil-web/server/server.mjs" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/router": "^17.0.0", + "@angular/ssr": "^17.0.7", + "express": "^4.18.2", + "ng-zorro-antd": "^17.1.0", + "qqmap": "^1.0.1", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/express": "^4.17.17", + "@types/jasmine": "~5.1.0", + "@types/node": "^18.18.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } +} diff --git a/server.ts b/server.ts new file mode 100644 index 0000000..7083b14 --- /dev/null +++ b/server.ts @@ -0,0 +1,56 @@ +import { APP_BASE_HREF } from '@angular/common'; +import { CommonEngine } from '@angular/ssr'; +import express from 'express'; +import { fileURLToPath } from 'node:url'; +import { dirname, join, resolve } from 'node:path'; +import bootstrap from './src/main.server'; + +// The Express app is exported so that it can be used by serverless Functions. +export function app(): express.Express { + const server = express(); + const serverDistFolder = dirname(fileURLToPath(import.meta.url)); + const browserDistFolder = resolve(serverDistFolder, '../browser'); + const indexHtml = join(serverDistFolder, 'index.server.html'); + + const commonEngine = new CommonEngine(); + + server.set('view engine', 'html'); + server.set('views', browserDistFolder); + + // Example Express Rest API endpoints + // server.get('/api/**', (req, res) => { }); + // Serve static files from /browser + server.get('*.*', express.static(browserDistFolder, { + maxAge: '1y' + })); + + // All regular routes use the Angular engine + server.get('*', (req, res, next) => { + const { protocol, originalUrl, baseUrl, headers } = req; + + commonEngine + .render({ + bootstrap, + documentFilePath: indexHtml, + url: `${protocol}://${headers.host}${originalUrl}`, + publicPath: browserDistFolder, + providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], + }) + .then((html) => res.send(html)) + .catch((err) => next(err)); + }); + + return server; +} + +function run(): void { + const port = process.env['PORT'] || 4000; + + // Start up the Node server + const server = app(); + server.listen(port, () => { + console.log(`Node Express server listening on http://localhost:${port}`); + }); +} + +run(); diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..0680b43 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/src/app/app.component.less b/src/app/app.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..bf3c0e0 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [CommonModule, RouterOutlet], + templateUrl: './app.component.html', + styleUrl: './app.component.less' +}) +export class AppComponent { +} diff --git a/src/app/app.config.server.ts b/src/app/app.config.server.ts new file mode 100644 index 0000000..b4d57c9 --- /dev/null +++ b/src/app/app.config.server.ts @@ -0,0 +1,11 @@ +import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; +import { provideServerRendering } from '@angular/platform-server'; +import { appConfig } from './app.config'; + +const serverConfig: ApplicationConfig = { + providers: [ + provideServerRendering() + ] +}; + +export const config = mergeApplicationConfig(appConfig, serverConfig); diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 0000000..6b9ccc8 --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,31 @@ +import { ApplicationConfig, importProvidersFrom } from '@angular/core'; +import {provideRouter, RouteReuseStrategy} from '@angular/router'; + +import { routes } from './app.routes'; +import { provideClientHydration } from '@angular/platform-browser'; +import { zh_CN, provideNzI18n } from 'ng-zorro-antd/i18n'; +import { registerLocaleData } from '@angular/common'; +import zh from '@angular/common/locales/zh'; +import { FormsModule } from '@angular/forms'; +import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; +import {BrowserAnimationsModule, provideAnimations} from '@angular/platform-browser/animations'; +import {InitGuardService} from "./utils/initGuard.service"; +import {InterceptorService} from "./utils/Interceptor.service"; +import {AiRouteReuseStrategy} from "./utils/routeReuseStrategy"; + +registerLocaleData(zh); + +export const appConfig: ApplicationConfig = { + providers: [ + provideRouter(routes), + provideClientHydration(), + provideNzI18n(zh_CN), + importProvidersFrom(FormsModule), + importProvidersFrom(HttpClientModule), + provideAnimations(), + BrowserAnimationsModule, + InitGuardService, // 校验登录 + { provide: HTTP_INTERCEPTORS, useClass: InterceptorService, multi: true}, +/* { provide: RouteReuseStrategy, useClass: AiRouteReuseStrategy }*/ + ] +}; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts new file mode 100644 index 0000000..3e85376 --- /dev/null +++ b/src/app/app.routes.ts @@ -0,0 +1,42 @@ +import { Routes } from '@angular/router'; +import {IndexComponent} from "./pages/body/index/index.component"; +import {InitGuardService} from "./utils/initGuard.service"; +import {Error404Component} from "./pages/error/error404/error404.component"; +export const routes: Routes = [ + {path: '', pathMatch: 'full', redirectTo: 'admin/index'}, + { + path: 'login', + loadChildren: () => import('./pages/login/login.routes').then(m => m.LOGIN_ROUTES) + }, + { + path: 'index', + loadChildren: () => import('./pages/login/login.routes').then(m => m.LOGIN_ROUTES) + }, + { + path: 'admin', component: IndexComponent, + children: [ + { + path: 'index', + loadChildren: () => import('./pages/index/index.routes').then(m => m.INDEX_ROUTES), + canActivate: [InitGuardService] + }, + { + path: 'account', + loadChildren: () => import('./pages/account/account.routes').then(m => m.ACCOUNT_ROUTES), + canActivate: [InitGuardService] + }, + { + path: 'system', + loadChildren: () => import('./pages/system/system.routes').then(m => m.SYSTEM_ROUTES), + canActivate: [InitGuardService] + }, + ] + }, + { + path: 'error', + loadChildren: () => import('./pages/error/error.routes').then(m => m.ERROR_ROUTES), + }, + { + path: '**', component: Error404Component + }, +]; diff --git a/src/app/data/common/button.namespace.ts b/src/app/data/common/button.namespace.ts new file mode 100644 index 0000000..47a7466 --- /dev/null +++ b/src/app/data/common/button.namespace.ts @@ -0,0 +1,12 @@ +export interface Button { + menuName: string; + menuType: string; + menuUrl: string; + menuUrlImg: string; + menuPSid: number; + menuSort: string; + menuDesc: string; +} + +export let buttonData: Button[] = []; + diff --git a/src/app/data/common/dictionary.namespace.ts b/src/app/data/common/dictionary.namespace.ts new file mode 100644 index 0000000..eb18c1c --- /dev/null +++ b/src/app/data/common/dictionary.namespace.ts @@ -0,0 +1,13 @@ +export interface Dictionary { + codeType: string; + codeValue: string; + codeName: string; + codeDesc: string; + sortId: number; + ext1: string; + ext2: string; + ext3: string; +} + +export let dictionaryData: Dictionary[] = []; + diff --git a/src/app/data/login/localStorage.namespace.ts b/src/app/data/login/localStorage.namespace.ts new file mode 100644 index 0000000..26c5e97 --- /dev/null +++ b/src/app/data/login/localStorage.namespace.ts @@ -0,0 +1,5 @@ +export const USER_TOKEN = 'userToken'; +export const INIT_FLAG = 'initFlag'; +export const DATA = 'DATA'; +export const LOGIN_DATA = 'loginData'; + diff --git a/src/app/data/login/login.namespace.ts b/src/app/data/login/login.namespace.ts new file mode 100644 index 0000000..da61583 --- /dev/null +++ b/src/app/data/login/login.namespace.ts @@ -0,0 +1,5 @@ +export const backgroundImage = [ + "./assets/login/1.png", + "./assets/login/2.png", + "./assets/login/3.png"]; + diff --git a/src/app/data/menu/menu.namespace.ts b/src/app/data/menu/menu.namespace.ts new file mode 100644 index 0000000..f198a81 --- /dev/null +++ b/src/app/data/menu/menu.namespace.ts @@ -0,0 +1,9 @@ +export const menuData = [ + {title: "首页" , selected: true} , + {title: "商户管理" , selected: false} , + {title: "数据交易" , selected: false} , + {title: "产品中心" , selected: false} , + {title: "账号管理" , selected: false} , + {title: "营销工具" , selected: false} +]; + diff --git a/src/app/model/discount.interface.ts b/src/app/model/discount.interface.ts new file mode 100644 index 0000000..137c62a --- /dev/null +++ b/src/app/model/discount.interface.ts @@ -0,0 +1,25 @@ +export interface DiscountData { + id: number; + name: string; + img: string; + type: number; + condition: string; + price: string; + percentage: string; + effectiveDay: number; + effectiveNum: number; + createTime: string; + updateTime: string; + salesEndTime: string; +} + +export interface NodesDiscountGoods { + id: number; + discountId: number; + specsId: string; + specsName: string; + createTime: string; + goodsName: string; + SpecsName: string; + salePrice: string; +} diff --git a/src/app/pages/account/account.module.ts b/src/app/pages/account/account.module.ts new file mode 100644 index 0000000..20ac55b --- /dev/null +++ b/src/app/pages/account/account.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class AccountModule { } diff --git a/src/app/pages/account/account.routes.ts b/src/app/pages/account/account.routes.ts new file mode 100644 index 0000000..a988e79 --- /dev/null +++ b/src/app/pages/account/account.routes.ts @@ -0,0 +1,8 @@ +import { Routes } from '@angular/router'; +import {SysAccountComponent} from "./sys-account/sys-account.component"; +import {SysRoleComponent} from "./sys-role/sys-role.component"; + +export const ACCOUNT_ROUTES: Routes = [ + { path: 'sys_account', component: SysAccountComponent}, + { path: 'sys_role', component: SysRoleComponent}, +]; diff --git a/src/app/pages/account/sys-account/sys-account.component.html b/src/app/pages/account/sys-account/sys-account.component.html new file mode 100644 index 0000000..d2d21e6 --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.html @@ -0,0 +1,136 @@ +
+
+
+ + 用户名 + + + + +
+
+ + 登录账户 + + + + +
+
+ + 联系方式 + + + + +
+
+ + 账户状态 + + + + + + +
+
+ + + +
+
+
+ + + + + 用户名 + 登录账户 + 联系方式 + 账户状态 + 创建时间 + 更新时间 + 操作 + + + + + {{data.userName}} + {{data.loginName}} + {{data.telephone}} + {{data.status | dictionary: 'SEC_USER_STATUS'}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + {{data.updateTime | date: 'yyyy-MM-dd HH:mm'}} + + 修改 + + + 更多 + + + + + + + + + 总计 {{ total }} 条 + + + + + +
+ + + 用户名 + + + + + + + 登录账户 + + + + + + + 联系方式 + + + + + + + 角色权限 + + + + + + + +
+ +
+ +
+
+
diff --git a/src/app/pages/account/sys-account/sys-account.component.less b/src/app/pages/account/sys-account/sys-account.component.less new file mode 100644 index 0000000..cae9ae7 --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.less @@ -0,0 +1,15 @@ +[nz-form-label] { + overflow: visible; +} +button { + margin-right: 8px; +} +.search-area { + text-align: left; +} +.submit-btn { + width: 150px; +} +.search_form { + margin-bottom: 15px; +} diff --git a/src/app/pages/account/sys-account/sys-account.component.ts b/src/app/pages/account/sys-account/sys-account.component.ts new file mode 100644 index 0000000..231577d --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.ts @@ -0,0 +1,322 @@ +import { Component } from '@angular/core'; +import {FormGroup, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import { + NzTableCellDirective, + NzTableComponent, NzTableModule, + NzTbodyComponent, + NzTheadComponent, + NzThMeasureDirective, NzTrDirective +} from "ng-zorro-antd/table"; +import {NzTreeComponent} from "ng-zorro-antd/tree"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzDropDownModule} from "ng-zorro-antd/dropdown"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {Dictionary} from "../../../data/common/dictionary.namespace"; +import {SysAccountService} from "../../../services/account/sys-account.service"; +import {RoleService} from "../../../services/role/role.service"; + +@Component({ + selector: 'app-sys-account', + standalone: true, + imports: [ + DatePipe, + NgForOf, + NgIf, + NzButtonComponent, + NzColDirective, + NzDividerComponent, + NzFlexDirective, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzInputDirective, + NzModalComponent, + NzRowDirective, + NzTableCellDirective, + NzTableComponent, + NzTbodyComponent, + NzThMeasureDirective, + NzTheadComponent, + NzTrDirective, + NzTreeComponent, + ReactiveFormsModule, + NzTableModule, + NzModalModule, + NzSelectComponent, + NzOptionComponent, + NzDropDownModule, + NzIconDirective, + DictionaryPipe, + ], + templateUrl: './sys-account.component.html', + styleUrl: './sys-account.component.less' +}) +export class SysAccountComponent { + // 表单页数 + tablePageNum = 1; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + accountStatus: Dictionary[] = [] + // 角色数据 + roleData: any = []; + // 搜索表单 + searchForm: FormGroup; + // 编辑账户弹出框 + editAccountVisible = false; + // 编辑账户表单 + editAccountForm: FormGroup; + // 编辑账户标题 + editAccountTitle = ''; + + constructor(private fb: NonNullableFormBuilder, + private sysAccountService: SysAccountService, + private roleService: RoleService, + private message: NzMessageService, + private modal: NzModalService) { + // 初始化搜索框 + this.searchForm = this.fb.group({ + userName: [''], + loginName: [''], + telephone: [''], + status: [''], + }); + + // 初始化账户表单 + this.editAccountForm = this.fb.group({ + id: [''], + userName: ['', [Validators.required]], + loginName: ['', [Validators.required]], + telephone: [''], + roleId: ['', [Validators.required]], + }); + this.accountStatus = new DictionaryPipe().getDictionaryList("SEC_USER_STATUS"); + this.queryAllRole(); + this.queryData(); + } + + /** + * 获取角色 + */ + queryAllRole() { + this.roleService.queryAllRole((data: any) => { + if (data['return_code'] == '000000') { + this.roleData = data['return_data']; + } + }); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = 10; + this.searchForm.value.objectType = 1; + this.searchForm.value.time = new Date().getTime(); + this.sysAccountService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 打开编辑账户模态框 + * @param edit 编辑荒唐 true:增加 false:修改 + * @param data + */ + showEditAccount(edit: boolean, data: any) { + if (edit) { + this.editAccountTitle = '创建账户'; + } else { + this.editAccountTitle = '修改账户'; + data['roleId'] = ""+data['roleId'] + this.editAccountForm.patchValue(data); + } + this.editAccountVisible = true; + } + + /** + * 提交表单 + */ + submitEditAccountForm() { + if (this.editAccountForm.valid) { + this.sysAccountService.editUser(this.editAccountForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditAccount(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editAccountForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑账户模态框 + */ + closeEditAccount() { + this.editAccountForm.reset(); + this.editAccountVisible = false; + } + + /** + * 打开禁用账户确认框 + */ + showRestore(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定恢复账户状态?', + nzOnOk: () => this.restore(dataId) + }); + } + + /** + * 恢复 + */ + restore(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.restore(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.success("操作成功"); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开禁用账户确认框 + */ + showDisable(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定禁用账户吗?禁用后无法登录!', + nzOnOk: () => this.disable(dataId) + }); + } + + /** + * 禁用 + */ + disable(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.disable(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.success("操作成功"); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开密码重置确认框 + */ + showResetPwd(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定重置账户登录密码吗?', + nzOnOk: () => this.resetPwd(dataId) + }); + } + + /** + * 密码重置 + */ + resetPwd(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.resetPwd(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.modal.success({ + nzTitle: '提示', + nzContent: '密码重置成功,新密码:123456' + }); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 展示删除数据 + */ + showDelData(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除该账户数据?', + nzOnOk: () => this.delData(dataId) + }); + } + + /** + * 删除数据 + */ + delData(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.delete(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/account/sys-role/sys-role.component.html b/src/app/pages/account/sys-role/sys-role.component.html new file mode 100644 index 0000000..f1b1c68 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.html @@ -0,0 +1,101 @@ +
+
+
+ + 角色名称 + + + + +
+
+ + + +
+
+
+ + + + + 角色名称 + 角色描述 + 创建时间 + 更新时间 + 操作 + + + + + {{data.roleName}} + {{data.roleDesc}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + {{data.updateTime | date: 'yyyy-MM-dd HH:mm'}} + + 修改 + + 分配菜单 + + 删除 + + + + 总计 {{ total }} 条 + + + + + +
+ + 角色名称 + + + + + + + 角色描述 + + + + + +
+ +
+ +
+
+
+ + + + + + +
+ +
+
+
diff --git a/src/app/pages/account/sys-role/sys-role.component.less b/src/app/pages/account/sys-role/sys-role.component.less new file mode 100644 index 0000000..6d5c351 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.less @@ -0,0 +1,12 @@ +[nz-form-label] { + overflow: visible; +} +button { + margin-left: 8px; +} +.submit-btn { + width: 150px; +} +.search-area { + margin-top: 30px; +} diff --git a/src/app/pages/account/sys-role/sys-role.component.ts b/src/app/pages/account/sys-role/sys-role.component.ts new file mode 100644 index 0000000..a1c22f1 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.ts @@ -0,0 +1,291 @@ +import {Component, ViewChild} from '@angular/core'; +import { + NzTableComponent, + NzTableModule, + NzTbodyComponent, + NzTheadComponent, + NzThMeasureDirective +} from "ng-zorro-antd/table"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzFormDirective, NzFormModule} from "ng-zorro-antd/form"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import { + FormGroup, + NonNullableFormBuilder, + ReactiveFormsModule, Validators, +} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzInputNumberComponent} from "ng-zorro-antd/input-number"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzTreeComponent, NzTreeNodeOptions} from "ng-zorro-antd/tree"; +import {RoleService} from "../../../services/role/role.service"; +import {MenuService} from "../../../services/menu/menu.service"; + +@Component({ + selector: 'app-sys-role', + standalone: true, + imports: [ + NzTableComponent, + NzTheadComponent, + NzDividerComponent, + NzTbodyComponent, + NzFormDirective, + NzRowDirective, + ReactiveFormsModule, + NzColDirective, + NzButtonComponent, + NzIconDirective, + NzInputDirective, + NzFormModule, + NzFlexDirective, + NgForOf, + DatePipe, + NzThMeasureDirective, + NzInputNumberComponent, + NzModalComponent, + NzOptionComponent, + NzSelectComponent, + NzModalModule, + NgIf, + NzTreeComponent, + NzTableModule + ], + templateUrl: './sys-role.component.html', + styleUrl: './sys-role.component.less' +}) +export class SysRoleComponent { + // 表单页数 + tablePageNum = 1; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + // 搜索表单 + searchForm: FormGroup; + // 编辑角色弹出框 + editRoleVisible = false; + // 编辑角色表单 + editRoleForm: FormGroup; + // 编辑角色标题 + editRoleTitle = ''; + // 分配角色菜单弹出框 + assignRoleMenuVisible = false; + + // 当前需要分配权限角色 + currentAssignRoleId: any = null; + // 菜单树 + menuTree: NzTreeNodeOptions[] = []; + // 菜单已勾选数据 + menuTreeCheckedKeys = []; + + @ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent; + + constructor(private fb: NonNullableFormBuilder, + private roleService: RoleService, + private menuService: MenuService, + private message: NzMessageService, + private modal: NzModalService) { + // 初始化搜索框 + this.searchForm = this.fb.group({ + roleName: [''], + }); + + // 初始化表单 + this.editRoleForm = this.fb.group({ + id: [''], + roleName: ['', [Validators.required]], + roleDesc: [''], + }); + + this.menuService.queryMenuTree((data: any) => { + this.menuTree = data['return_data']; + }); + + this.queryData(); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = 10; + this.searchForm.value.time = new Date().getTime(); + this.roleService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 打开编辑角色模态框 + * @param edit 编辑状态 ture:新增 false:修改 + * @param data 数据 + */ + showEditRole(edit: boolean, data: any) { + if (edit) { + this.editRoleTitle = '创建角色'; + } else { + this.editRoleTitle = '修改角色'; + this.editRoleForm.patchValue(data); + } + this.editRoleVisible = true; + } + + /** + * 打开编辑角色模态框 + * @param edit + */ + submitEditRoleForm() { + if (this.editRoleForm.valid) { + this.roleService.editRole(this.editRoleForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditRole(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editRoleForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑角色模态框 + */ + closeEditRole() { + this.editRoleForm.reset(); + this.editRoleVisible = false; + } + + /** + * 展示删除数据 + */ + showDelData(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除数据?', + nzOnOk: () => this.delData(dataId) + }); + } + + /** + * 删除数据 + */ + delData(dataId: number) { + const param = { + id: dataId + } + this.roleService.delRole(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开分配角色菜单模态框 + * @param roleId + */ + showAssignRoleMenu(roleId: number) { + this.currentAssignRoleId = roleId; + this.menuService.queryRoleMenuArray(roleId, (data: any) => { + this.menuTreeCheckedKeys = data['return_data']; + }); + this.assignRoleMenuVisible = true; + } + + /** + * 菜单递归 + * @param data + * @param merIds + */ + recursionData(data: any, merIds: any): any { + for (let node of data.children) { + merIds.push(node.key) + if (node.children != null) { + this.recursionData(node,merIds); + } + } + } + + /** + * 提交分配角色菜单权限 + */ + submitAssignRoleMenu() { + let menuIds: any = []; + // 已勾选的菜单 + const checkedNodeList = this.nzTreeComponent.getCheckedNodeList(); + for (let node of checkedNodeList) { + menuIds.push(node.origin.key); + /*if (node.origin.children != null) { + menuIds.concat(this.recursionData(node.origin, menuIds)) + }*/ + }; + + // 半选状态的菜单 + const halfCheckedNodeList = this.nzTreeComponent.getHalfCheckedNodeList(); + for (let node of halfCheckedNodeList) { + menuIds.push(node.key); + } + + const param= { + roleId: this.currentAssignRoleId, + menuIds: menuIds + }; + this.menuService.assignMenu(param, (data: any) => { + if (data['return_code'] == '000000') { + this.message.create('success', '操作成功'); + this.closeAssignRoleMenu(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 关闭分配角色菜单模态框 + */ + closeAssignRoleMenu() { + this.menuTreeCheckedKeys = []; + this.assignRoleMenuVisible = false; + } +} diff --git a/src/app/pages/body/body.module.ts b/src/app/pages/body/body.module.ts new file mode 100644 index 0000000..0b3e9e5 --- /dev/null +++ b/src/app/pages/body/body.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class BodyModule { } diff --git a/src/app/pages/body/index/index.component.html b/src/app/pages/body/index/index.component.html new file mode 100644 index 0000000..c7b630f --- /dev/null +++ b/src/app/pages/body/index/index.component.html @@ -0,0 +1,103 @@ + + + +
+ + + + + +
+
+ {{userInfo['userName']}} + +
    +
  • 修改密码
  • +
  • 退出登录
  • +
+
+
+
+
+
+ + + + +
+ +
+ +
+ +
+ +
+ + + + + + +
+
+ + + +
+ + + 旧密码 + + + + + + + 新密码 + + + + + + + 确认新密码 + + + + @if (control.errors?.['confirm']) { + 两次密码输入不一致! + } + + + + +
+ +
+
+
+
diff --git a/src/app/pages/body/index/index.component.less b/src/app/pages/body/index/index.component.less new file mode 100644 index 0000000..735b7cf --- /dev/null +++ b/src/app/pages/body/index/index.component.less @@ -0,0 +1,69 @@ +nz-header { + background: #181f47; + padding: 0 26px; + .logo { + h2 { + color: white; + } + } + .menu { + width: 52%; + display: flex; + justify-content: center; + ul { + li { + height: 56px; + float: left; + color: #fff; + opacity: .65; + font-size: 14px; + padding: 0 20px; + cursor: pointer; + } + .li-selected { + opacity: 1; + border-bottom: 2px solid #1890ff; + } + li:hover { + opacity: 1; + border-bottom: 2px solid #1890ff; + } + list-style-type: none; /* 移除列表的标记,如果需要的话 */ + padding: 0; /* 移除padding,如果需要的话 */ + } + } +} + +nz-sider { + background: #fff; + box-shadow: 2px 0 8px rgba(0,0,0,.15); + height: calc(100vh - 64px);; + + .trigger { + font-size: 18px; + line-height: 50px; + padding: 0 24px; + cursor: pointer; + transition: color 0.3s; + } + + .trigger:hover { + color: #1890ff; + } +} +nz-content { + padding: 0 0 0 4px; +} +.user { + div { + cursor: pointer; + float: right; + margin-right: 30px; + color: white; + white-space: nowrap; + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + } + +} diff --git a/src/app/pages/body/index/index.component.ts b/src/app/pages/body/index/index.component.ts new file mode 100644 index 0000000..84366e7 --- /dev/null +++ b/src/app/pages/body/index/index.component.ts @@ -0,0 +1,246 @@ +import {Component, OnInit} from '@angular/core'; +import {Router, RouterLink, RouterOutlet} from "@angular/router"; +import { + NzContentComponent, + NzFooterComponent, + NzHeaderComponent, + NzLayoutComponent, + NzSiderComponent +} from "ng-zorro-antd/layout"; +import {NzBreadCrumbComponent, NzBreadCrumbItemComponent} from "ng-zorro-antd/breadcrumb"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzMenuDirective, NzMenuGroupComponent, NzMenuItemComponent, NzSubMenuComponent} from "ng-zorro-antd/menu"; +import {NgClass, NgForOf, NgIf} from "@angular/common"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {TabComponent} from "../tab/tab.component"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; +import {NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {Dictionary, dictionaryData} from "../../../data/common/dictionary.namespace"; +import {CommonService} from "../../../services/common/common.service"; +import {LoginService} from "../../../services/login/login.service"; +import {NzConfigService} from "ng-zorro-antd/core/config"; +import {buttonData} from "../../../data/common/button.namespace"; +import {SysAccountService} from "../../../services/account/sys-account.service"; +import { + AbstractControl, + FormGroup, + FormsModule, + NonNullableFormBuilder, + ReactiveFormsModule, ValidationErrors, ValidatorFn, + Validators +} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzDatePickerComponent} from "ng-zorro-antd/date-picker"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzModalModule} from "ng-zorro-antd/modal"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzUploadComponent} from "ng-zorro-antd/upload"; +import {ValidatorsService} from "../../../utils/validators.service"; + +@Component({ + selector: 'app-index', + standalone: true, + imports: [ + RouterOutlet, + NzLayoutComponent, + NzHeaderComponent, + NzBreadCrumbComponent, + NzBreadCrumbItemComponent, + NzContentComponent, + NzFooterComponent, + NzRowDirective, + NzColDirective, + NzMenuItemComponent, + NzMenuDirective, + RouterLink, + NzSubMenuComponent, + NgForOf, + NgClass, + NzIconDirective, + NzTabComponent, + NzTabSetComponent, + TabComponent, + NzSiderComponent, + NzMenuGroupComponent, + NzDropDownDirective, + NzDropdownMenuComponent, + FormsModule, + NgIf, + NzButtonComponent, + NzDatePickerComponent, + NzFlexDirective, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzInputDirective, + NzOptionComponent, + NzSelectComponent, + NzUploadComponent, + ReactiveFormsModule, + NzModalModule, + ], + templateUrl: './index.component.html', + styleUrl: './index.component.less', +}) +export class IndexComponent implements OnInit { + // 菜单数据 + menuData: any = [{ + 'menuName' : '首页', + 'selected' : true, + }]; + userInfo: any; + // 左侧菜单栏数据 + leftMenuData: any = []; + // 侧边菜单展示开关 + isCollapse = true; + // 当前顶级菜单 + currentParentMenu: any = {}; + + updatePwdModal = false; + updatePwdForm: FormGroup; + + ngOnInit(): void { + // 缓存数据字典 + this.commonService.queryDictionary('','',(data: any) => { + dictionaryData.length = 0; + for (let item of data['return_data']) { + dictionaryData.push( + { + codeType: item.codeType, + codeValue: item.codeValue, + codeName: item.codeName, + codeDesc: item.codeDesc, + sortId: item.sortId, + ext1: item.ext1, + ext2: item.ext2, + ext3: item.ext3 + } + ); + } + }); + } + + constructor( + private commonService: CommonService, + private storage: BrowserStorageService, + private nzConfigService: NzConfigService, + private message: NzMessageService, + private fb: NonNullableFormBuilder, + private sysAccountService: SysAccountService, + private router: Router, // 路由 + private login: LoginService + ) { + // 缓存角色按钮权限 + for (let item of this.storage.get(DATA)['button']) { + buttonData.push( + { + menuName: item.menuName, + menuType: item.menuType, + menuUrl: item.menuUrl, + menuUrlImg: item.menuUrlImg, + menuPSid: item.menuPSid, + menuSort: item.menuSort, + menuDesc: item.menuDesc, + } + ); + } + + this.updatePwdForm = this.fb.group({ + userId: [ this.storage.get(DATA)['account']['id']], + oldPassword: ['', [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], + newPassword: ['', [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], + confirmPassword: ['', [Validators.required, this.confirmationValidator]], + }); + + this.menuData = this.menuData.concat(this.storage.get(DATA)['menuTree']); + this.userInfo = this.storage.get(DATA)['account']; + } + + /** + * 两次密码是否一致 + * @param control + */ + confirmationValidator: ValidatorFn = (control: AbstractControl): { [s: string]: boolean } => { + if (!control.value) { + return { required: true }; + } else if (control.value !== this.updatePwdForm.controls['newPassword'].value) { + return { confirm: true, error: true }; + } + return {}; + }; + + // 选择操作 + isSelected(item: any) { + this.menuData.map((data: any) => { + data.selected = data.menuName === item.menuName; + }); + if (item.menuName === '首页') { + // 激活首页路由 + this.router.navigateByUrl('/admin/index').finally(); + } + + this.currentParentMenu = item; + this.leftMenuData = item['childMenuList']; + this.isCollapse = item['menuName'] === '首页'; + + } + + /** + * 展示修改密码模态框 + */ + public showUpdatePwd() { + this.updatePwdModal = true; + } + + /** + * 提交修改密码表单 + */ + public submitUpdatePwd() { + if (this.updatePwdForm.valid) { + this.sysAccountService.updatePwd(this.updatePwdForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.message.success("修改成功,请重新登录"); + // 登出 + this.loginOut(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.updatePwdForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭修改密码表单 + */ + public closeUpdatePwd() { + this.updatePwdModal = false; + } + + // 退出登录 + public loginOut(): void { + this.login.loginOut( (data: any) => { + if (data['return_code'] === '000000') { + this.storage.remove(LOGIN_DATA); + this.storage.remove(DATA); + this.storage.remove(USER_TOKEN); + this.storage.remove(INIT_FLAG); + this.router.navigateByUrl('/login').then(); + } else { + this.message.error(data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/body/menu/menu.module.ts b/src/app/pages/body/menu/menu.module.ts new file mode 100644 index 0000000..ff80347 --- /dev/null +++ b/src/app/pages/body/menu/menu.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class MenuModule { } diff --git a/src/app/pages/body/tab/tab.component.html b/src/app/pages/body/tab/tab.component.html new file mode 100644 index 0000000..02b4239 --- /dev/null +++ b/src/app/pages/body/tab/tab.component.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/app/pages/body/tab/tab.component.less b/src/app/pages/body/tab/tab.component.less new file mode 100644 index 0000000..bb0c823 --- /dev/null +++ b/src/app/pages/body/tab/tab.component.less @@ -0,0 +1,34 @@ +:host { + background: white; + overflow: hidden; + display: block; + height: 100%; +} + +.card-container ::ng-deep p { + margin: 0; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-content { + + margin-top: -16px; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-content > .ant-tabs-tabpane { + background: #f5f5f5; + padding: 16px; +} +.card-container ::ng-deep > .ant-tabs-card > .ant-tabs-nav::before { + display: none; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-tab { + border-color: transparent; + background: transparent; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-tab-active { + border-color: #f5f5f5; + background: #f5f5f5; +} + +nz-card { + height: calc(100vh - 114px); + overflow: auto; +} diff --git a/src/app/pages/body/tab/tab.component.ts b/src/app/pages/body/tab/tab.component.ts new file mode 100644 index 0000000..30f598c --- /dev/null +++ b/src/app/pages/body/tab/tab.component.ts @@ -0,0 +1,116 @@ +import { Component } from '@angular/core'; +import {NgForOf} from "@angular/common"; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {ActivationEnd, Router, RouterOutlet} from "@angular/router"; +import {filter} from "rxjs"; +import {NzCardComponent} from "ng-zorro-antd/card"; + +@Component({ + selector: 'app-tab', + standalone: true, + imports: [ + NgForOf, + NzTabComponent, + NzTabSetComponent, + RouterOutlet, + NzCardComponent + ], + templateUrl: './tab.component.html', + styleUrl: './tab.component.less' +}) +export class TabComponent { + // 当前打开的Tab页 + activatedMenuIndex = -1; + // 存放已打开的Tab页信息 + tabs: { path: string, title: string }[] = [{ path: '/admin/index', title: '首页' }]; + constructor(private router: Router) { + // 激活首页路由 + this.router.navigateByUrl('/admin/index').finally(); + + // 监听路由事件,只订阅 ActivationEnd 事件 + this.router.events.pipe(filter(e => e instanceof ActivationEnd)) + .subscribe((e) => { + const thisEvt = e; + if (thisEvt.snapshot.routeConfig?.loadChildren) { + // 当前激活的路由 + // const activatedRoutePath = thisEvt.snapshot.routeConfig?.path; + const activatedRoutePath = this.router.url; + const routeData = thisEvt.snapshot.queryParams; + let menuTitle = '新标签页'; + if(routeData) { + menuTitle = routeData['title']; + } + + // 该路由是否已激活,激活过则直接打开 + let isExist = false; + this.tabs.every((t, i) => { + if(activatedRoutePath === t.path) { + this.activatedMenuIndex = i; + isExist = true; + return false; + } + return true; + }); + + // 指定路由不在tabs中存在(未激活或激活后关闭) + if(!isExist) { + this.activeMenu(activatedRoutePath, menuTitle); + } + } + }); + } + + // 点击菜单激活指定路由并保存tab页签 + activeMenu(menuPath: string | undefined, menuTitle: string): void { + if(!menuPath) return; + let menuIndex = -1; + this.tabs.every((t, i) => { + if(menuPath === t.path) { + menuIndex = i; + return false; + } + return true; + }); + + if(menuIndex === -1) { + this.tabs.push({path: menuPath, title: menuTitle}); + menuIndex = this.tabs.length - 1; + this.activatedMenuIndex = menuIndex; + } + } + // 激活路由 + activeRoute(path: string): void { + this.router.navigateByUrl(path).finally(); + } + + // 切换tab,激活对应路由 + toggleTab(path: string): void { + this.activeRoute(path); + } + + // tab页签关闭,从缓存中删除对应信息 + closeTab(tabsObj: any): void { + if (1 === this.tabs.length) return; + const path = this.tabs[tabsObj['index']]['path']; + + let selectedIndex = -1; + this.tabs.every((t, i) => { + if(t.path === path) { + selectedIndex = i; + return false; + } + + return true; + }); + this.tabs.splice(selectedIndex, 1); + + if(selectedIndex === this.activatedMenuIndex) { + let prevIndex = this.activatedMenuIndex - 1; + this.activatedMenuIndex = prevIndex > 0 ? prevIndex : 0; + this.activeRoute(this.tabs[this.activatedMenuIndex].path); + }else if (this.activatedMenuIndex > selectedIndex) { + this.activatedMenuIndex -= 1; + } + } + +} diff --git a/src/app/pages/cms/cms-list/cms-list.component.html b/src/app/pages/cms/cms-list/cms-list.component.html new file mode 100644 index 0000000..21d91bf --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.html @@ -0,0 +1,176 @@ +
+
+ +
+ + 轮播图类型 + + + + + + +
+ +
+ + 状态 + + + + + + +
+ +
+ + + + + + + + +
+
+
+ + + + + 轮播类型 + 跳转类型 + 跳转地址 + 图片 + 状态 + 定时上线时间 + 定时下线时间 + 创建时间 + 操作 + + + + + {{data.type | dictionary : 'CMS_TYPE'}} + + 内链 + 外链 + + {{data.jumpUrl}} + + {{data.status | dictionary : 'CMS_STATUS'}} + + 未设置 + {{data.startTime | date : 'yyyy-MM-dd HH:mm'}} + + + 未设置 + {{data.endTime | date : 'yyyy-MM-dd HH:mm'}} + + {{data.createTime | date : 'yyyy-MM-dd HH:mm:ss'}} + + + 操作列表 + + + + + + + + 总计 {{ total }} 条 + + + + +
+ + + 轮播图类型 + + + + + + + + + 轮播图图片 + + + + +
上传
+
+ +
+
+
+ + + 跳转类型 + + + + + + + + + + 跳转地址 + + + + + + + 定时上线时间 + + + + + + + 定时下线时间 + + + + + +
+ +
+
+
+
diff --git a/src/app/pages/cms/cms-list/cms-list.component.less b/src/app/pages/cms/cms-list/cms-list.component.less new file mode 100644 index 0000000..91e13b5 --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.less @@ -0,0 +1,12 @@ +nz-input-number { + width: 100%; +} +nz-date-picker { + width: 100%; +} +.submit-btn { + width: 150px; +} +nz-range-picker { + width: 100%; +} diff --git a/src/app/pages/cms/cms-list/cms-list.component.ts b/src/app/pages/cms/cms-list/cms-list.component.ts new file mode 100644 index 0000000..00ffced --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.ts @@ -0,0 +1,333 @@ +import { Component } from '@angular/core'; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import { + NzCellFixedDirective, + NzTableCellDirective, + NzTableComponent, NzTableModule, + NzTbodyComponent, NzTheadComponent, + NzThMeasureDirective, NzTrDirective +} from "ng-zorro-antd/table"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzDatePickerComponent} from "ng-zorro-antd/date-picker"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputNumberComponent, NzInputNumberModule} from "ng-zorro-antd/input-number"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {CommonService} from "../../../services/common/common.service"; +import {DATA} from "../../../data/login/localStorage.namespace"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu"; +import {NzDescriptionsModule} from "ng-zorro-antd/descriptions"; +import {NzUploadComponent, NzUploadFile} from "ng-zorro-antd/upload"; +import {NzAvatarModule} from "ng-zorro-antd/avatar"; +import {NzImageModule} from "ng-zorro-antd/image"; +import {NzSwitchComponent} from "ng-zorro-antd/switch"; +import {environment} from "../../../../environments/environment"; +import {CmsService} from "../../../services/cms/cms.service"; +import {Observable, Observer} from "rxjs"; + +@Component({ + selector: 'app-cms-list', + standalone: true, + imports: [ + DatePipe, + DictionaryPipe, + FormsModule, + NgForOf, + NgIf, + NzButtonComponent, + NzCellFixedDirective, + NzColDirective, + NzDividerComponent, + NzDropDownADirective, + NzDropDownDirective, + NzDropdownMenuComponent, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzIconDirective, + NzInputDirective, + NzMenuDirective, + NzMenuItemComponent, + NzOptionComponent, + NzRowDirective, + NzSelectComponent, + NzTableCellDirective, + NzTableComponent, + NzTbodyComponent, + NzThMeasureDirective, + NzTheadComponent, + NzTrDirective, + ReactiveFormsModule, + NzTableModule, + NzModalModule, + NzFlexDirective, + NzDescriptionsModule, + NzUploadComponent, + NzAvatarModule, + NzImageModule, + NzSwitchComponent, + NzDatePickerComponent, + NzInputNumberModule + ], + templateUrl: './cms-list.component.html', + styleUrl: './cms-list.component.less' +}) +export class CmsListComponent { + BASE_URL = environment.baseUrl; + IMAGE_URL = environment.imageUrl; + loading = false; + logoUrl?: string; + // 表单页数 + tablePageNum = 1; + // 每页数量 + tablePageSize = 10; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + accountType = null; + // 搜索表单 + searchForm: FormGroup; + // 编辑表单 + editCmsForm: FormGroup; + editCmsModal = false; + // 轮播图类型 + cmsTypeArray = new DictionaryPipe().getDictionaryList('CMS_TYPE'); + // 轮播图状态 + cmsStatusArray = new DictionaryPipe().getDictionaryList('CMS_STATUS'); + constructor(private fb: NonNullableFormBuilder, + private message: NzMessageService, + private storage: BrowserStorageService, + private cmsService: CmsService, + private commonService: CommonService, + private modal: NzModalService) { + this.accountType = this.storage.get(DATA)['account']['objectType']; + + // 初始化搜索框 + this.searchForm = this.fb.group({ + type: [null], + status: [null], + }); + + this.editCmsForm = this.fb.group({ + id: [''], + type: ['', [Validators.required]], + imgUrl: ['', [Validators.required]], + jumpType: [''], + jumpUrl: [''], + startTime: [''], + endTime: [''], + }); + // 查询数据 + this.queryData(); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = this.tablePageSize; + this.searchForm.value.time = new Date().getTime(); + this.cmsService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 删除 + */ + delCms(id: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除吗?', + nzOnOk: () => + this.cmsService.delete({id: id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 下线 + */ + offline(id: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定轮播图下线吗?', + nzOnOk: () => + this.cmsService.offline({id: id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 上线 + */ + online(data: any) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: data.startTime!=null?'已设置自动上线时间,确定需要提前上线吗?':'确定立即上线吗?', + nzOnOk: () => + this.cmsService.online({id: data.id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 打开编辑模态框 + */ + showEditCmsModal(data: any) { + if (data != null) { + this.logoUrl = this.IMAGE_URL + data['imgUrl']; + data['type'] = ''+data['type']; + data['jumpType'] = ''+data['jumpType']; + } + this.editCmsForm.patchValue(data); + this.editCmsModal = true; + } + + /** + * 提交数据 + */ + submitData() { + if (this.editCmsForm.valid) { + if (this.editCmsForm.value.startTime != null && this.editCmsForm.value.startTime != '') { + console.log(this.editCmsForm.value.startTime); + let startTime = new Date(this.editCmsForm.value.startTime); + startTime.setSeconds(0,0); + console.log(startTime.getTime()) + this.editCmsForm.controls['startTime'].setValue(startTime.getTime()); + } + if (this.editCmsForm.value.endTime != null && this.editCmsForm.value.endTime != '') { + let endTime = new Date(this.editCmsForm.value.endTime); + endTime.setSeconds(0,0); + this.editCmsForm.controls['endTime'].setValue(endTime.getTime()); + } + this.cmsService.edit(this.editCmsForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.message.create('success', '操作成功'); + // 刷新数据 + this.queryData(); + // 关闭弹窗 + this.closeEditModal(); + // 表单重置 + this.editCmsForm.reset(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editCmsForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑任务模态框 + */ + closeEditModal() { + this.editCmsForm.reset(); + this.logoUrl = ''; + this.editCmsModal = false; + } + + private getBase64(img: File, callback: (img: string) => void): void { + const reader = new FileReader(); + reader.addEventListener('load', () => callback(reader.result!.toString())); + reader.readAsDataURL(img); + } + + handleChange(info: { file: NzUploadFile }): void { + switch (info.file.status) { + case 'uploading': + this.loading = true; + break; + case 'done': + // Get this url from response in real world. + this.getBase64(info.file!.originFileObj!, (img: string) => { + this.loading = false; + this.logoUrl = img; + }); + // 不是自建站,拼接绝对路径访问链接 + this.editCmsForm.patchValue({ imgUrl: info.file.response['return_data'][0]}); + break; + case 'error': + this.message.error('网络错误!'); + this.loading = false; + break; + } + } + + beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => { + return new Observable((observer: Observer) => { + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; + if (!isJpgOrPng) { + this.message.error('只能上传JPG文件!'); + observer.complete(); + return; + } + const isLt2M = file.size! / 1024 / 1024 < 2; + if (!isLt2M) { + this.message.error('图片必须小于2MB!'); + observer.complete(); + return; + } + observer.next(isJpgOrPng && isLt2M); + observer.complete(); + }); + }; +} diff --git a/src/app/pages/error/error.module.ts b/src/app/pages/error/error.module.ts new file mode 100644 index 0000000..d4b3183 --- /dev/null +++ b/src/app/pages/error/error.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class ErrorModule { } diff --git a/src/app/pages/error/error.routes.ts b/src/app/pages/error/error.routes.ts new file mode 100644 index 0000000..b150546 --- /dev/null +++ b/src/app/pages/error/error.routes.ts @@ -0,0 +1,15 @@ +import { Routes } from '@angular/router'; +import {Error403Component} from "./error403/error403.component"; +import {Error404Component} from "./error404/error404.component"; +import {Error500Component} from "./error500/error500.component"; +import {Error401Component} from "./error401/error401.component"; + + + +export const ERROR_ROUTES: Routes = [ + + { path: '401', component: Error401Component }, + { path: '403', component: Error403Component }, + { path: '404', component: Error404Component }, + { path: '500', component: Error500Component }, +]; diff --git a/src/app/pages/error/error401/error401.component.html b/src/app/pages/error/error401/error401.component.html new file mode 100644 index 0000000..727e860 --- /dev/null +++ b/src/app/pages/error/error401/error401.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error401/error401.component.less b/src/app/pages/error/error401/error401.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error401/error401.component.ts b/src/app/pages/error/error401/error401.component.ts new file mode 100644 index 0000000..deb3ba9 --- /dev/null +++ b/src/app/pages/error/error401/error401.component.ts @@ -0,0 +1,44 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {Router} from "@angular/router"; +import {LoginService} from "../../../services/login/login.service"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; + + +@Component({ + selector: 'app-error401', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error401.component.html', + styleUrl: './error401.component.less' +}) +export class Error401Component { + constructor( + private storage: BrowserStorageService, + private message: NzMessageService, + private router: Router, // 路由 + private login: LoginService + ) {} + + + // 退出登录 + public loginOut(): void { + this.login.loginOut( (data: any) => { + if (data['return_code'] === '000000') { + this.storage.remove(LOGIN_DATA); + this.storage.remove(DATA); + this.storage.remove(USER_TOKEN); + this.storage.remove(INIT_FLAG); + this.router.navigateByUrl('/login').then(); + } else { + this.message.error(data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/error/error403/error403.component.html b/src/app/pages/error/error403/error403.component.html new file mode 100644 index 0000000..46c2520 --- /dev/null +++ b/src/app/pages/error/error403/error403.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error403/error403.component.less b/src/app/pages/error/error403/error403.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error403/error403.component.ts b/src/app/pages/error/error403/error403.component.ts new file mode 100644 index 0000000..118fdfd --- /dev/null +++ b/src/app/pages/error/error403/error403.component.ts @@ -0,0 +1,29 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; + +import {Router} from "@angular/router"; + + +@Component({ + selector: 'app-error403', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error403.component.html', + styleUrl: './error403.component.less' +}) +export class Error403Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/error/error404/error404.component.html b/src/app/pages/error/error404/error404.component.html new file mode 100644 index 0000000..39d6250 --- /dev/null +++ b/src/app/pages/error/error404/error404.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error404/error404.component.less b/src/app/pages/error/error404/error404.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error404/error404.component.ts b/src/app/pages/error/error404/error404.component.ts new file mode 100644 index 0000000..3cdfe47 --- /dev/null +++ b/src/app/pages/error/error404/error404.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import {Router} from "@angular/router"; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; + +@Component({ + selector: 'app-error404', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error404.component.html', + styleUrl: './error404.component.less' +}) +export class Error404Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/error/error500/error500.component.html b/src/app/pages/error/error500/error500.component.html new file mode 100644 index 0000000..fdb4e3f --- /dev/null +++ b/src/app/pages/error/error500/error500.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error500/error500.component.less b/src/app/pages/error/error500/error500.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error500/error500.component.ts b/src/app/pages/error/error500/error500.component.ts new file mode 100644 index 0000000..16a98f7 --- /dev/null +++ b/src/app/pages/error/error500/error500.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {Router} from "@angular/router"; + +@Component({ + selector: 'app-error500', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error500.component.html', + styleUrl: './error500.component.less' +}) +export class Error500Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/index/index.module.ts b/src/app/pages/index/index.module.ts new file mode 100644 index 0000000..08c8bb0 --- /dev/null +++ b/src/app/pages/index/index.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class IndexModule { } diff --git a/src/app/pages/index/index.routes.ts b/src/app/pages/index/index.routes.ts new file mode 100644 index 0000000..ae99859 --- /dev/null +++ b/src/app/pages/index/index.routes.ts @@ -0,0 +1,6 @@ +import { Routes } from '@angular/router'; +import {IndexComponent} from "./index/index.component"; + +export const INDEX_ROUTES: Routes = [ + { path: '', component: IndexComponent} +]; diff --git a/src/app/pages/index/index/index.component.html b/src/app/pages/index/index/index.component.html new file mode 100644 index 0000000..94839c3 --- /dev/null +++ b/src/app/pages/index/index/index.component.html @@ -0,0 +1,5 @@ + + diff --git a/src/app/pages/index/index/index.component.less b/src/app/pages/index/index/index.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/index/index/index.component.ts b/src/app/pages/index/index/index.component.ts new file mode 100644 index 0000000..c75d7da --- /dev/null +++ b/src/app/pages/index/index/index.component.ts @@ -0,0 +1,21 @@ +import { Component } from '@angular/core'; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {NgForOf, NgOptimizedImage} from "@angular/common"; +import {NzResultComponent} from "ng-zorro-antd/result"; + +@Component({ + selector: 'app-index', + standalone: true, + imports: [ + NzTabSetComponent, + NzTabComponent, + NgForOf, + NgOptimizedImage, + NzResultComponent + ], + templateUrl: './index.component.html', + styleUrl: './index.component.less' +}) +export class IndexComponent { + +} diff --git a/src/app/pages/login/login.module.ts b/src/app/pages/login/login.module.ts new file mode 100644 index 0000000..0fd089f --- /dev/null +++ b/src/app/pages/login/login.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { NzSliderModule } from 'ng-zorro-antd/slider'; +@NgModule({ + declarations: [], + imports: [ + CommonModule, + NzSliderModule, + ] +}) +export class LoginModule { } diff --git a/src/app/pages/login/login.routes.ts b/src/app/pages/login/login.routes.ts new file mode 100644 index 0000000..4adcd2e --- /dev/null +++ b/src/app/pages/login/login.routes.ts @@ -0,0 +1,6 @@ +import { Routes } from '@angular/router'; +import {LoginComponent} from "./login/login.component"; + +export const LOGIN_ROUTES: Routes = [ + { path: '', component: LoginComponent} +]; diff --git a/src/app/pages/login/login/login.component.html b/src/app/pages/login/login/login.component.html new file mode 100644 index 0000000..ffc91d8 --- /dev/null +++ b/src/app/pages/login/login/login.component.html @@ -0,0 +1,65 @@ +
+ + + + +
+ diff --git a/src/app/pages/login/login/login.component.less b/src/app/pages/login/login/login.component.less new file mode 100644 index 0000000..5781420 --- /dev/null +++ b/src/app/pages/login/login/login.component.less @@ -0,0 +1,78 @@ +.bg { + //背景图 + width: 100%; + height: 100%; + background: linear-gradient(126deg, #0f75ff, #2cd8d4); + overflow: hidden; + //登录框 + .login-box { + width: 1000px; + height: 660px; + background: white; + margin: 200px auto 0; + border-radius: 10px; + //盒子大小 + .login-box-size { + width: 50%; + height: 660px; + float: left; + border-radius: 10px; + //盒子中图片 + + [nz-carousel-content] { + text-align: center; + height: 450px; + margin-top: 100px; + color: #fff; + overflow: hidden; + } + h1 { + margin-top: 70px; + color: #0f75ff; + font-weight: bold; + letter-spacing: 4px; + } + } + .box-left { + background: #f2f5fa; + } + .box-center { + text-align: center; + } + + } + .footer { + text-align: center; + width: 100%; + height: 50px; + line-height: 50px; + position: fixed; + bottom: 0; + background: white; + } +} +.login-form { + margin-top: 50px; + margin-left: 40px; + max-width: 400px; + .take_care { + color: red; + font-size: 20px; + } + input { + height: 32px; + } + nz-form-control { + margin-top: 10px; + } +} + +.login-form-margin { + margin-bottom: 16px; + float: right; +} + +.login-form-button { + margin-top: 20px; + width: 100%; +} diff --git a/src/app/pages/login/login/login.component.ts b/src/app/pages/login/login/login.component.ts new file mode 100644 index 0000000..e86e249 --- /dev/null +++ b/src/app/pages/login/login/login.component.ts @@ -0,0 +1,126 @@ +import {Component} from '@angular/core'; +import {NzCarouselComponent, NzCarouselContentDirective} from "ng-zorro-antd/carousel"; +import {NgForOf, NgOptimizedImage} from "@angular/common"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent} from "ng-zorro-antd/form"; +import { + FormControl, + FormGroup, + NonNullableFormBuilder, + ReactiveFormsModule, + Validators +} from "@angular/forms"; +import {NzInputDirective, NzInputGroupComponent} from "ng-zorro-antd/input"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzCheckboxComponent} from "ng-zorro-antd/checkbox"; +import {backgroundImage} from "../../../data/login/login.namespace"; +import {NzSliderComponent} from "ng-zorro-antd/slider"; +import {MathUtils} from "../../../utils/mathUtils.service"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; +import {Router} from "@angular/router"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {LoginService} from "../../../services/login/login.service"; +import {dictionaryData} from "../../../data/common/dictionary.namespace"; +import {buttonData} from "../../../data/common/button.namespace"; + + + +@Component({ + selector: 'app-login', + standalone: true, + templateUrl: './login.component.html', + host: {ngSkipHydration: 'true'}, + imports: [ + NzCarouselComponent, + NzCarouselContentDirective, + NgForOf, + NgOptimizedImage, + NzInputGroupComponent, + NzFormItemComponent, + ReactiveFormsModule, + NzFormControlComponent, + NzColDirective, + NzButtonComponent, + NzCheckboxComponent, + NzInputDirective, + NzRowDirective, + NzFormDirective, + NzSliderComponent, + + ], + + styleUrl: './login.component.less' +}) +export class LoginComponent { + + constructor( + private fb: NonNullableFormBuilder, + private message: NzMessageService, + private router: Router, // 路由 + private storage: BrowserStorageService, + private login: LoginService + ) { + this.validateForm.patchValue(this.storage.get(LOGIN_DATA)); + } + + // 背景图片 + backgroundImage = backgroundImage; + // 验证随机数 + randomNumber = MathUtils.generateRandomNumber(100); + + // 表单 + validateForm: FormGroup<{ + loginName: FormControl; + password: FormControl; + slider: FormControl; + remember: FormControl; + }> = this.fb.group({ + loginName: ['', [Validators.required]], + password: ['', [Validators.required]], + slider: ['', [Validators.required]], + remember: [true] + }); + + + + // 登录 + submitForm(): void { + if (this.validateForm.valid) { + if (Number(this.validateForm.value.slider) !== this.randomNumber) { + this.message.warning('验证不通过!') + this.randomNumber = MathUtils.generateRandomNumber(100) + return; + } + // 发起登录 + this.login.userLogin(this.validateForm.value , (data: any) => { + if (data['return_code'] === '000000') { + this.storage.set(LOGIN_DATA, this.validateForm.value); + this.storage.set(DATA, data['return_data']['object']); + this.storage.set(USER_TOKEN, data['return_data']['token']); + this.storage.set(INIT_FLAG, true); + this.router.navigateByUrl('/admin/index'); + } else { + this.message.error(data['return_msg']); + } + }); + + this.randomNumber = MathUtils.generateRandomNumber(100) + + } else { + Object.values(this.validateForm.controls).forEach(control => { + if (control.invalid) { + // 表单脏检查 + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + + + + + +} diff --git a/src/app/pages/system/menu/menu.component.html b/src/app/pages/system/menu/menu.component.html new file mode 100644 index 0000000..e97f270 --- /dev/null +++ b/src/app/pages/system/menu/menu.component.html @@ -0,0 +1,106 @@ +
+ +
+ + + + +
+ +
+ + + {{menuDetail?.parentMenu?menuDetail.parentMenu.menuName:'无'}} + {{menuDetail.menuName?menuDetail.menuName:'无'}} + {{menuDetail.menuType | dictionary: '菜单类型'}} + {{menuDetail.menuUrl?menuDetail.menuUrl:'无'}} + {{menuDetail.menuUrlImg?menuDetail.menuUrlImg:'无'}} + {{menuDetail.menuDesc?menuDetail.menuDesc:'无'}} + + + +
+
+
+
+
+
+
+
+ + + +
+ + 父级菜单 + + + + + + + 菜单名称 + + + + + + + 菜单类型 + + + + + + + + + 菜单URL + + + + + + + 菜单顺序 + + + + + + + 图标URL + + + + + + + 菜单描述 + + + + + +
+ +
+ +
+
+
diff --git a/src/app/pages/system/menu/menu.component.less b/src/app/pages/system/menu/menu.component.less new file mode 100644 index 0000000..749f89a --- /dev/null +++ b/src/app/pages/system/menu/menu.component.less @@ -0,0 +1,6 @@ +.submit-btn { + width: 150px; +} +nz-input-number { + width: 100%; +} diff --git a/src/app/pages/system/menu/menu.component.ts b/src/app/pages/system/menu/menu.component.ts new file mode 100644 index 0000000..0018b57 --- /dev/null +++ b/src/app/pages/system/menu/menu.component.ts @@ -0,0 +1,253 @@ +import {Component} from '@angular/core'; +import {NzTreeComponent} from "ng-zorro-antd/tree"; +import {NgForOf, NgIf} from "@angular/common"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import { + NzTreeNodeCheckboxComponent, + NzTreeNodeComponent, + NzTreeNodeOptionComponent, + NzTreeViewComponent +} from "ng-zorro-antd/tree-view"; +import {NzCardComponent} from "ng-zorro-antd/card"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzDescriptionsComponent, NzDescriptionsItemComponent} from "ng-zorro-antd/descriptions"; +import {NzFormDirective, NzFormLabelComponent, NzFormModule} from "ng-zorro-antd/form"; +import {FormGroup, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzInputDirective, NzInputGroupComponent} from "ng-zorro-antd/input"; +import {NzModalModule, NzModalService} from 'ng-zorro-antd/modal'; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzInputNumberComponent} from "ng-zorro-antd/input-number"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzSpinComponent} from "ng-zorro-antd/spin"; +import {NzTreeSelectComponent} from "ng-zorro-antd/tree-select"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {Dictionary} from "../../../data/common/dictionary.namespace"; +import {MenuService} from "../../../services/menu/menu.service"; + +@Component({ + selector: 'app-menu', + standalone: true, + imports: [ + NzTreeComponent, + NgIf, + NzIconDirective, + NzDropdownMenuComponent, + NzTreeViewComponent, + NzTreeNodeComponent, + NzTreeNodeCheckboxComponent, + NzTreeNodeOptionComponent, + NzCardComponent, + NzRowDirective, + NzColDirective, + NzButtonComponent, + NzModalModule, + NzFormDirective, + ReactiveFormsModule, + NzFormLabelComponent, + NzInputDirective, + NzDescriptionsItemComponent, + NzDescriptionsComponent, + NzInputGroupComponent, + NzFormModule, + NzFlexDirective, + NzSelectComponent, + NzOptionComponent, + NgForOf, + NzInputNumberComponent, + NzSpinComponent, + NzTreeSelectComponent, + DictionaryPipe + ], + templateUrl: './menu.component.html', + styleUrl: './menu.component.less' +}) +export class MenuComponent { + // 菜单数据 + menuData: any = []; + // 菜单树形数据 + menuTree: any[] = []; + // 菜单详情 + menuDetail: any = {}; + // 编辑菜单弹出框 + editMenuVisible = false; + // 编辑菜单表单 + editMenuForm: FormGroup; + // 编辑菜单标题 + editMenuTitle = ''; + // 树视图展示状态 + treeView= false; + menuTypeArray:Dictionary[] = []; + constructor(private menuService: MenuService, + private fb: NonNullableFormBuilder, + private modal: NzModalService, + private message: NzMessageService) { + // 菜单类型 + this.menuTypeArray = new DictionaryPipe().getDictionaryList('MENU_TYPE'); + + // 获取菜单数据 + this.queryMenuTree(); + + this.editMenuForm = this.fb.group({ + id: [], + menuName: ['', [Validators.required]], + menuType: ['1', [Validators.required]], + menuUrl: ['', [Validators.required]], + menuPSid: [null], + menuUrlImg: [''], + menuSort: ['', [Validators.required]], + menuDesc: [''], + }); + } + + /** + * 获取菜单树 + */ + queryMenuTree() { + this.menuService.queryMenuTree((data: any) => { + this.menuTree = data['return_data']; + this.treeView = true; + this.queryMenuData(); + }); + } + + /** + * 查询菜单原始数据 + */ + queryMenuData() { + this.menuService.queryMenuList((data: any) => { + this.menuData = data['return_data']; + }); + } + + /** + * 点击树节点 + * @param nodeData + */ + clickNode(nodeData: any) { + const menuId = nodeData['keys'][0]; + if (menuId != null) { + const menuObj = this.menuData.find((o: any) => o.id == menuId); + if (menuObj != null && menuObj.menuPSid != null) { + // 获取父级菜单 + menuObj['parentMenu'] = this.menuData.find((o: any) => o.id == menuObj.menuPSid); + } + this.menuDetail = menuObj; + } + } + + /** + * 编辑菜单 + * @param edit 编辑状态 true:增加 false:修改 + */ + openEditMenu(edit: boolean) { + // 初始化表单 + this.editMenuTitle = '添加菜单'; + this.editMenuForm.reset(); + let menu = { + menuPSid: '', + menuType: '1' + }; + + if (edit == false && this.menuDetail?.id == null) { + this.modal.warning({ + nzTitle: '提示', + nzContent: '请点击需要修改的菜单', + }); + return; + } + + if (this.menuDetail != null) { + if (edit) { + // 增加 + menu = { + menuPSid: ""+this.menuDetail.id, + menuType: '1' + }; + } else { + // 修改 + this.editMenuTitle = '修改菜单'; + menu = this.menuDetail; + menu['menuPSid'] = ""+menu['menuPSid'] + menu['menuType'] = ""+menu['menuType'] + } + } + this.editMenuForm.patchValue(menu); + this.editMenuVisible = true; + } + + /** + * 提交表单 + */ + submitEditMenuForm() { + if (this.editMenuForm.valid) { + this.treeView = false; + console.log(this.editMenuForm.controls['menuPSid'].value); + if (this.editMenuForm.controls['menuPSid'].value == 'undefined') { + this.editMenuForm.controls['menuPSid'].setValue(null); + } + console.log(this.editMenuForm.value); + this.menuService.editMenu(this.editMenuForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryMenuTree(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditMenu(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editMenuForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭菜单 + */ + closeEditMenu() { + this.editMenuVisible = false; + } + + /** + * 删除菜单 + */ + showDelMenu() { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确实删除数据?', + nzOnOk: () => this.delMenu() + }); + } + + /** + * 删除菜单 + */ + delMenu() { + const param = { + menuId: this.menuDetail.id + } + this.treeView = false; + this.menuService.delMenu(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryMenuTree(); + this.message.create('success', '操作成功'); + } else { + this.treeView = true; + this.message.create('error', data['return_msg']); + } + }); + } + +} diff --git a/src/app/pages/system/system.module.ts b/src/app/pages/system/system.module.ts new file mode 100644 index 0000000..822a3bf --- /dev/null +++ b/src/app/pages/system/system.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule, + ] +}) +export class SystemModule { } diff --git a/src/app/pages/system/system.routes.ts b/src/app/pages/system/system.routes.ts new file mode 100644 index 0000000..8fc3182 --- /dev/null +++ b/src/app/pages/system/system.routes.ts @@ -0,0 +1,8 @@ +import { Routes } from '@angular/router'; +import {MenuComponent} from "./menu/menu.component"; +import {CmsListComponent} from "../cms/cms-list/cms-list.component"; + +export const SYSTEM_ROUTES: Routes = [ + { path: 'menu', component: MenuComponent}, + { path: 'cms-list', component: CmsListComponent} +]; diff --git a/src/app/pipes/common/button.pipe.ts b/src/app/pipes/common/button.pipe.ts new file mode 100644 index 0000000..c6641a4 --- /dev/null +++ b/src/app/pipes/common/button.pipe.ts @@ -0,0 +1,38 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import {Button, buttonData} from "../../data/common/button.namespace"; + +@Pipe({ + name: 'button', + standalone: true +}) +export class ButtonPipe implements PipeTransform { + data: Button[] = buttonData; + + /** + * 获取数据字典 + * @param buttonCode + */ + isButton(buttonCode: string): boolean { + // 读取缓存数据 + return this.data.find(o => o.menuUrl == buttonCode) != null; + } + + /** + * 获取数据字典 + * @param buttonCode + */ + getButton(buttonCode: string): Button | any { + // 读取缓存数据 + return this.data.find(o => o.menuUrl == buttonCode); + } + + transform(codeType: string): string { + const obj = this.getButton(codeType); + if (obj == null) { + return '未知'; + } else { + return obj.menuName; + } + } + +} diff --git a/src/app/pipes/common/date-minutes-diff.pipe.ts b/src/app/pipes/common/date-minutes-diff.pipe.ts new file mode 100644 index 0000000..e61d38a --- /dev/null +++ b/src/app/pipes/common/date-minutes-diff.pipe.ts @@ -0,0 +1,19 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'dateMinutesDiff', + standalone: true +}) +/** + * 时间分钟差异 + */ +export class DateMinutesDiffPipe implements PipeTransform { + + + transform(newTime: number | Date, olbTime: number | Date): number { + console.log('123'); + var diffTimeStamp = new Date().getTime() - new Date(olbTime).getTime(); + return parseInt(String(diffTimeStamp / (1000 * 60))); + } + +} diff --git a/src/app/pipes/common/dictionary.pipe.ts b/src/app/pipes/common/dictionary.pipe.ts new file mode 100644 index 0000000..3794b39 --- /dev/null +++ b/src/app/pipes/common/dictionary.pipe.ts @@ -0,0 +1,39 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import {dictionaryData, Dictionary} from "../../data/common/dictionary.namespace"; + +@Pipe({ + name: 'dictionary', + standalone: true +}) +export class DictionaryPipe implements PipeTransform { + + data: Dictionary[] = dictionaryData; + + /** + * 获取数据字典 + * @param codeType 码类型 + */ + getDictionaryList(codeType: string): any { + return this.data.filter(o => o.codeType == codeType); + } + + /** + * 获取数据字典 + * @param codeType 码类型 + * @param codeValue 码值 + */ + getDictionary(codeType: string, codeValue: string): any { + // 读取缓存数据 + return this.data.find(o => o.codeType == codeType && o.codeValue == codeValue); + } + + transform(codeValue: string,codeType: string): string { + const obj = this.getDictionary(codeType, codeValue); + if (obj == null) { + return '未知'; + } else { + return obj.codeName; + } + } +} + diff --git a/src/app/services/account/sys-account.service.ts b/src/app/services/account/sys-account.service.ts new file mode 100644 index 0000000..d7ba33f --- /dev/null +++ b/src/app/services/account/sys-account.service.ts @@ -0,0 +1,127 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class SysAccountService { + + constructor(private http: HttpClient) { } + + /** + * + * 编辑账户 + * @param params + * @param callBack + */ + public editUser(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/editUser', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除账户 + * @param params + * @param callBack + */ + public delete(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/delete', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 恢复账户 + * @param params + * @param callBack + */ + public restore(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/restore', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 禁用账户 + * @param params + * @param callBack + */ + public disable(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/disable', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 修改密码 + * @param userId + * @param callBack + */ + public updatePwd(param: any, callBack:any) { + param.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/updatePwd', param).subscribe(data => { + callBack(data); + }); + } + + /** + * 密码重置 + * @param userId + * @param callBack + */ + public resetPwd(param: any, callBack:any) { + param.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/resetPwd', param).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询详情 + * @param userId + * @param callBack + */ + public queryDetail(userId: number, callBack:any) { + let params = { + userId: userId, + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secUser/queryDetail?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secUser/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询账户登录列表 + * @param params + * @param callBack + */ + public queryLoginLogList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secUser/queryLoginLogList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + + +} diff --git a/src/app/services/cms/cms.service.ts b/src/app/services/cms/cms.service.ts new file mode 100644 index 0000000..8b04309 --- /dev/null +++ b/src/app/services/cms/cms.service.ts @@ -0,0 +1,72 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class CmsService { + + constructor(private http: HttpClient) { } + + /** + * 编辑 + * @param params + * @param callBack + */ + public edit(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/edit',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 上线 + * @param params + * @param callBack + */ + public online(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/online',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 下线 + * @param params + * @param callBack + */ + public offline(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/offline',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除 + * @param params + * @param callBack + */ + public delete(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/delete',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'cms/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } +} diff --git a/src/app/services/common/common.service.ts b/src/app/services/common/common.service.ts new file mode 100644 index 0000000..4b4c147 --- /dev/null +++ b/src/app/services/common/common.service.ts @@ -0,0 +1,104 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; +import {NzUploadFile} from "ng-zorro-antd/upload"; + +@Injectable({ + providedIn: 'root' +}) +export class CommonService { + + constructor(private http: HttpClient) { } + + /** + * + * 查询数据字典 + * @param codeType 【非必填】 码值类型 + * @param codeValue 【非必填】码值 + * @param callBack + */ + public queryDictionary(codeType: string, codeValue: string, callBack:any) { + const param = { + codeType: codeType, + codeValue: codeValue + }; + this.http.get(environment.baseUrl + 'common/queryDictionary?'+ObjectData.objectByString(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * + * 分级查询区域信息 + * @param regionId 地区id + * @param callBack + */ + public getRegion(regionId: string, callBack:any) { + this.http.get(environment.baseUrl + 'common/getRegion?regionId=' + regionId).subscribe(data => { + callBack(data); + }); + } + + /** + * + * 查询数据字典 + * @param imgData 【必填】 图片数据 + */ + public imgList(imgData: NzUploadFile[]): string { + if (imgData[0]['response'] != null) { + return imgData[0]['response']['return_data'][0]; + } else { + return imgData[0].name; + } + } + + /** + * + * 拼接图片 + * @param imgArray 【必填】 图片数据 + */ + public postImg(imgArray: any): any { + const array = []; + for (const i of imgArray) { + if (i['response'] != null) { + array.push(i['response']['return_data'][0]); + } else { + array.push(i.name); + } + } + + return array.join(','); + } + + /** + * + * 拼接图片数组 + * @param imgUrl 【必填】 图片数据 + */ + public stitchImg(imgUrl: string): any { + const imgArray = []; + for (const i of imgUrl.split(',')) { + imgArray.push( + { + uid: 1, + name: i, + status: 'done', + url: environment.imageUrl + i + }); + } + console.log(imgArray); + return imgArray; + } + + + // 判断字符串是否为空 + public whetherStringIsNull(s: string): boolean { + if (s != null && s !== '') { + return false; + } else { + return true; + } + } + +} diff --git a/src/app/services/common/validators.service.ts b/src/app/services/common/validators.service.ts new file mode 100644 index 0000000..77d6c64 --- /dev/null +++ b/src/app/services/common/validators.service.ts @@ -0,0 +1,47 @@ +// current locale is key of the MyErrorsOptions +import {AbstractControl, ValidatorFn, Validators} from "@angular/forms"; +import {NzSafeAny} from "ng-zorro-antd/core/types"; + +export type MyErrorsOptions = { 'zh-cn': string; en: string } & Record; +export type MyValidationErrors = Record; + +export class MyValidators extends Validators { + + static override minLength(minLength: number): ValidatorFn { + return (control: AbstractControl): MyValidationErrors | null => { + if (Validators.minLength(minLength)(control) === null) { + return null; + } + return { minlength: { 'zh-cn': `最小长度为 ${minLength}`, en: `MinLength is ${minLength}` } }; + }; + } + + static override maxLength(maxLength: number): ValidatorFn { + return (control: AbstractControl): MyValidationErrors | null => { + if (Validators.maxLength(maxLength)(control) === null) { + return null; + } + return { maxlength: { 'zh-cn': `最大长度为 ${maxLength}`, en: `MaxLength is ${maxLength}` } }; + }; + } + + static mobile(control: AbstractControl): MyValidationErrors | null { + const value = control.value; + + if (isEmptyInputValue(value)) { + return null; + } + + return isMobile(value) + ? null + : { mobile: { 'zh-cn': `手机号码格式不正确`, en: `Mobile phone number is not valid` } }; + } +} + +function isEmptyInputValue(value: NzSafeAny): boolean { + return value == null || value.length === 0; +} + +function isMobile(value: string): boolean { + return typeof value === 'string' && /(^1\d{10}$)/.test(value); +} diff --git a/src/app/services/login/login.service.ts b/src/app/services/login/login.service.ts new file mode 100644 index 0000000..8a9d68a --- /dev/null +++ b/src/app/services/login/login.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; + +@Injectable({ + providedIn: 'root' +}) +export class LoginService { + + constructor(private http: HttpClient) {} + + /** + * @Author Sum1Dream + * @Name userLogin + * @Description // 登录 + * @Date 15:52 2024/4/18 + * @Param params + * @Param callBack + */ + public userLogin(params: object, callBack:any) { + this.http.post(environment.baseUrl + 'secUser/login', params).subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @Name loginOut + * @Description // 退出登录 + * @Date 15:52 2024/4/18 + * @Param callBack + */ + public loginOut(callBack:any) { + this.http.post(environment.baseUrl + 'secUser/loginOut', null).subscribe(data => { + callBack(data); + }); + } +} diff --git a/src/app/services/menu/menu.service.ts b/src/app/services/menu/menu.service.ts new file mode 100644 index 0000000..0024321 --- /dev/null +++ b/src/app/services/menu/menu.service.ts @@ -0,0 +1,120 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; +import {DATA} from "../../data/login/localStorage.namespace"; + +@Injectable({ + providedIn: 'root' +}) +export class MenuService { + + constructor(private http: HttpClient) { } + + /** + * 分配菜单 + * @param params + * @param callBack + */ + public assignMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/assignMenu', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除菜单 + * @param params + * @param callBack + */ + public delMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/delMenu', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单 + * @param roleId + * @param callBack + */ + public queryMenuList(callBack:any) { + let params = { + time: new Date().getTime() + }; + this.http.post(environment.baseUrl + 'secMenu/queryMenuList?' + ObjectData.objectByString(params), null).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单详情 + * @param menuId + * @param callBack + */ + public queryMenuDetail(menuId: number, callBack:any) { + let params = { + menuId: menuId, + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secMenu/queryDetail?' + ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单树 + * @param roleId + * @param callBack + */ + public queryRoleMenuTree(roleId: string, callBack:any) { + let paramStr = '?dt='+new Date().getTime(); + if (roleId != null && roleId != '') { + paramStr = '&roleId=' + roleId; + } + this.http.get(environment.baseUrl + 'secMenu/queryRoleMenuTree'+paramStr).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单树 + * @param roleId + * @param callBack + */ + public queryMenuTree(callBack:any) { + this.http.post(environment.baseUrl + 'secMenu/queryMenuTree?dt='+new Date().getTime(), null).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询角色菜单权限数组 + * @param roleId + * @param callBack + */ + public queryRoleMenuArray(roleId: number, callBack:any) { + const param = { + roleId: roleId, + t: new Date().getTime() // 时间戳避免缓存 + } + this.http.get(environment.baseUrl + 'secMenu/queryRoleMenuArray?' + ObjectData.objectByString(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * 编辑菜单 + * @param params + * @param callBack + */ + public editMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/editMenu', params).subscribe(data => { + callBack(data); + }); + } + +} diff --git a/src/app/services/role/role.service.ts b/src/app/services/role/role.service.ts new file mode 100644 index 0000000..0b41409 --- /dev/null +++ b/src/app/services/role/role.service.ts @@ -0,0 +1,73 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class RoleService { + + constructor(private http: HttpClient) { } + + /** + * 编辑角色 + * @param params + * @param callBack + */ + public editRole(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secRole/editRole', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除角色 + * @param params + * @param callBack + */ + public delRole(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secRole/delRole', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询详情 + * @param roleId + * @param callBack + */ + public queryDetail(roleId: number, callBack:any) { + this.http.get(environment.baseUrl + 'secRole/queryDetail?roleId='+roleId).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secRole/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询全部角色 + * @param callBack + */ + public queryAllRole(callBack:any) { + let params = { + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secRole/queryAllRole?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + +} diff --git a/src/app/utils/Interceptor.service.ts b/src/app/utils/Interceptor.service.ts new file mode 100644 index 0000000..44c48c9 --- /dev/null +++ b/src/app/utils/Interceptor.service.ts @@ -0,0 +1,88 @@ +import {Injectable} from '@angular/core'; +import { + HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpHeaders +} from '@angular/common/http'; +import {catchError, finalize} from 'rxjs/operators'; +import {mergeMap} from 'rxjs/operators'; +import {Observable} from 'rxjs'; +import {USER_TOKEN} from "../data/login/localStorage.namespace"; +import {BrowserStorageService} from "./localStorage.service"; +import {Router} from "@angular/router"; + + +@Injectable() +export class InterceptorService implements HttpInterceptor { + constructor( + private router: Router, // 路由 + private storage: BrowserStorageService, + ) { + } + intercept(req: HttpRequest, next: HttpHandler): Observable> { + let secureReq: HttpRequest; + let modifiedHeaders: HttpHeaders; + const token = this.storage.get(USER_TOKEN); + if (token != null) { + modifiedHeaders = + req.headers.append('Cache-Control', 'no-cache') + .append('Pragma', 'no-cache') + .append('Authorization', token); + } + + secureReq = req.clone({ + url: req.url, + // @ts-ignore + headers: modifiedHeaders + }); + // @ts-ignore + return next.handle(secureReq) + .pipe( + catchError((res: HttpResponse) => { + let msg = ''; + switch (res.status) { + case 401: + msg = '身份验证过期,请重新进入页面'; + break; + case 200: + msg = '身份验证过期,请重新进入页面'; + break; + case 404: + msg = '找不到地址'; + break; + case 403: + msg = '业务错误'; + break; + case 500: + msg = '服务器发生错误,请重试'; + break; + } + this.jumpError(msg , res.status); + return Observable.create(res); + }), + finalize(() => { + }), + mergeMap( + // 有响应时成功;忽略其他事件 + (event: any) => { + return Observable.create((observer: { next: (arg0: any) => any; }) => observer.next(event)); + }), + ); + } + + jumpError(message: string , status: number) { + if (status == 401) { + this.router.navigateByUrl('/error/401').then(r => console.log("返回内容" ,r)); + + } + if (status == 403) { + this.router.navigateByUrl('/error/403').then(r => console.log("返回内容" ,r)); + } + if (status == 404) { + this.router.navigateByUrl('/error/404').then(r => console.log("返回内容" ,r)); + } + if (status == 500) { + this.router.navigateByUrl('/error/500').then(r => console.log("返回内容" ,r)); + } + + + } +} diff --git a/src/app/utils/dateUtils.service.ts b/src/app/utils/dateUtils.service.ts new file mode 100644 index 0000000..d55e17b --- /dev/null +++ b/src/app/utils/dateUtils.service.ts @@ -0,0 +1,139 @@ +/** + * 选择类型 + */ +export const DateSelectType: any = [ + { value: 1, name: '今日'}, + { value: 2, name: '昨日'}, + { value: 3, name: '本周'}, + { value: 4, name: '上周'}, + { value: 5, name: '本月'}, + { value: 6, name: '上月'}, +]; + +/** + * 时间工具类 + */ +export class DateUtils { + + /** + * 获取时间 + * @param currentDate 当前时间 + * @param type 类型 1:今日 2:昨日 3:本周 4:上周 5:本月 6:上月 + */ + public static getDate(currentDate: Date, type: number): any { + const returnObj = { + timeS: 0, + timeE: 0, + } + + if (type === 1) { + currentDate.setHours(0); + currentDate.setMinutes(0); + currentDate.setSeconds(0); + returnObj.timeS = currentDate.getTime(); + currentDate.setHours(23); + currentDate.setMinutes(59); + currentDate.setSeconds(59); + returnObj.timeE = currentDate.getTime(); + + } else if (type === 2) { + currentDate.setDate(currentDate.getDate() - 1) + currentDate.setHours(0); + currentDate.setMinutes(0); + currentDate.setSeconds(0); + returnObj.timeS = currentDate.getTime(); + currentDate.setHours(23); + currentDate.setMinutes(59); + currentDate.setSeconds(59); + returnObj.timeE = currentDate.getTime(); + + } else if (type === 3) { + const dayOfWeek = currentDate.getDay(); + const dayOffset = dayOfWeek === 0 ? -6 : 1 - dayOfWeek; + + const start = new Date(currentDate); + start.setDate(start.getDate() + dayOffset) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setDate(end.getDate() + 6) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + + } else if (type === 4) { + const startOfThisWeek = new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate() - currentDate.getDay() + 1); + const endOfLastWeek = new Date(startOfThisWeek.getTime() - 1); + const startOfLastWeek = new Date((endOfLastWeek.getTime() + 1) - (7 * 24 * 60 * 60 * 1000)); + + startOfLastWeek .setHours(0); + startOfLastWeek .setMinutes(0); + startOfLastWeek .setSeconds(0); + returnObj.timeS = startOfLastWeek .getTime(); + + endOfLastWeek.setHours(23); + endOfLastWeek.setMinutes(59); + endOfLastWeek.setSeconds(59); + returnObj.timeE = endOfLastWeek.getTime(); + + } else if (type === 5) { + var daysInMonth = new Date(currentDate.getFullYear(), currentDate.getMonth()+1, 0).getDate(); + + const start = new Date(currentDate); + start.setDate(1) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setDate(daysInMonth) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + + } else if (type === 6) { + var daysInMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0).getDate(); + + const start = new Date(currentDate); + start.setMonth(currentDate.getMonth() - 1); + start.setDate(1) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setMonth(currentDate.getMonth() - 1); + end.setDate(daysInMonth) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + } + + return returnObj; + } + + /** + * 获取时间 + * @param startTime 开始时间 + * @param endTime 结束时间 + */ + public static getDateSelectType(startTime: Date, endTime: Date): number { + const type = 0; // 未知 + for (let type of DateSelectType) { + let date = this.getDate(new Date(), type.value); + if (startTime.toLocaleDateString() == new Date(date.timeS).toLocaleDateString() + && endTime.toLocaleDateString() == new Date(date.timeE).toLocaleDateString()) { + return type.value; + } + } + return type; + } +} diff --git a/src/app/utils/initGuard.service.ts b/src/app/utils/initGuard.service.ts new file mode 100644 index 0000000..1b3e4a1 --- /dev/null +++ b/src/app/utils/initGuard.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; +import {CanActivate} from "@angular/router"; +import {INIT_FLAG} from "../data/login/localStorage.namespace"; +import {BrowserStorageService} from "./localStorage.service"; + + + +@Injectable() +export class InitGuardService implements CanActivate { + constructor( + private storage: BrowserStorageService, + private router: Router, + ) { } + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + const init = !!this.storage.get(INIT_FLAG); + if (state.url.includes('login') && init) { + this.router.navigateByUrl('/admin/index').then(); + return false; + } + if (!state.url.includes('login') && !init) { + this.router.navigateByUrl('/login').then(); + return false; + } + return true; + } +} diff --git a/src/app/utils/localStorage.service.ts b/src/app/utils/localStorage.service.ts new file mode 100644 index 0000000..70e2bde --- /dev/null +++ b/src/app/utils/localStorage.service.ts @@ -0,0 +1,32 @@ +import { Inject, Injectable, InjectionToken } from '@angular/core'; + +export const BROWSER_STORAGE = new InjectionToken('Browser Storage', { + providedIn: 'root', + factory: () => localStorage +}); + +@Injectable({ + providedIn: 'root' +}) +export class BrowserStorageService { + constructor(@Inject(BROWSER_STORAGE) public storage: Storage) {} + + get(key: string) { + // @ts-ignore + return JSON.parse(this.storage.getItem(key)) as T; + } + + set(key: string, value: any) { + if (!value && value === undefined) { return; } + const arr = JSON.stringify(value); + this.storage.setItem(key, arr); + } + + remove(key: string) { + this.storage.removeItem(key); + } + + clear() { + this.storage.clear(); + } +} diff --git a/src/app/utils/mathUtils.service.ts b/src/app/utils/mathUtils.service.ts new file mode 100644 index 0000000..9dc198c --- /dev/null +++ b/src/app/utils/mathUtils.service.ts @@ -0,0 +1,13 @@ +export class MathUtils{ + + /** + * @Author Sum1Dream + * @Name + * @Description // 获取1-100随机数 + * @Date 11:13 2024/4/9 + * @Param number + */ + static generateRandomNumber(number: number): number { + return Math.floor(Math.random() * number) + 1; + } +} diff --git a/src/app/utils/objectData.service.ts b/src/app/utils/objectData.service.ts new file mode 100644 index 0000000..43013cf --- /dev/null +++ b/src/app/utils/objectData.service.ts @@ -0,0 +1,24 @@ +export class ObjectData { + + /** + * @Author Sum1Dream + * @Name getWhereCondition + * @Description // 将对象转换成GET请求参数 key1=value1&key2=value2 + * @Date 14:02 2024/4/9 + * @Param object + */ + static objectByString(object: any): string { + let str = ''; + for (const i in object) { + if (object[i] != null && object[i] !== '') { + if (str === '') { + str = i + '=' + object[i]; + } else { + str += '&' + i + '=' + object[i]; + } + } + } + return str; + } + +} diff --git a/src/app/utils/routeReuseStrategy.ts b/src/app/utils/routeReuseStrategy.ts new file mode 100644 index 0000000..3aede7a --- /dev/null +++ b/src/app/utils/routeReuseStrategy.ts @@ -0,0 +1,63 @@ +import {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy} from '@angular/router'; +export class AiRouteReuseStrategy implements RouteReuseStrategy { + /** + * 用于保存路由快照 + **/ + public static routeSnapshots: { [key: string]: DetachedRouteHandle } = {}; + + /** + * 允许所有路由重用 + * 如果你有路由不想被重用,可以在这个方法中加业务逻辑判断 + **/ + shouldDetach(route: ActivatedRouteSnapshot): boolean { + return true; + } + + /** + * 以url为key保存路由,key也可以使用其他属性,能确保唯一即可 + **/ + store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void { + const url = this.getFullRouteUrl(route); + AiRouteReuseStrategy.routeSnapshots[url] = handle; + } + + /** + * 缓存中存在则允许还原路由 + **/ + shouldAttach(route: ActivatedRouteSnapshot): boolean { + const url = this.getFullRouteUrl(route); + return !!AiRouteReuseStrategy.routeSnapshots[url]; + } + + /** + * 从缓存中获取快照,没有返回null + **/ + retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null { + const url = this.getFullRouteUrl(route); + return route.routeConfig ? AiRouteReuseStrategy.routeSnapshots[url] : null; + } + + /** + * 进入路由触发,判断是否同一路由 + **/ + shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { + return future.routeConfig === curr.routeConfig && + JSON.stringify(future.params) === JSON.stringify(curr.params); + } + + private getFullRouteUrl(route: ActivatedRouteSnapshot): string { + return this.getFullRouteUrlPaths(route).filter(Boolean).join('/').replace(/\//g, '_'); + } + + private getFullRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { + const paths = this.getRouteUrlPaths(route); + return route.parent + ? [...this.getFullRouteUrlPaths(route.parent), ...paths] + : paths; + } + + private getRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { + return route.url.map(urlSegment => urlSegment.path); + } + +} diff --git a/src/app/utils/validators.service.ts b/src/app/utils/validators.service.ts new file mode 100644 index 0000000..b6e8d7c --- /dev/null +++ b/src/app/utils/validators.service.ts @@ -0,0 +1,65 @@ +import {AbstractControl, ValidationErrors, ValidatorFn, Validators} from '@angular/forms'; +import {NzSafeAny} from 'ng-zorro-antd/core/types'; + +export type validatorsErrorsOptions = { 'zh-cn': string; en: string } & Record; +export type validatorsErrors = Record; + +export class ValidatorsService extends Validators { + + /** + * 验证字符最小长度 + * @param minLength + */ + static override minLength(minLength: number): ValidatorFn { + return (control: AbstractControl): validatorsErrors | null => { + if (Validators.minLength(minLength)(control) === null) { + return null; + } + return { minlength: { 'zh-cn': `最小长度为 ${minLength}`, en: `MinLength is ${minLength}` } }; + }; + } + + /** + * 验证字符最大长度 + * @param maxLength + */ + static override maxLength(maxLength: number): ValidatorFn { + return (control: AbstractControl): validatorsErrors | null => { + if (Validators.maxLength(maxLength)(control) === null) { + return null; + } + return { maxlength: { 'zh-cn': `最大长度为 ${maxLength}`, en: `MaxLength is ${maxLength}` } }; + }; + } + + + + + /** + * 验证手机号 + * @param control + */ + static mobile(control: AbstractControl): validatorsErrors | null { + const value = control.value; + + if (isEmptyInputValue(value)) { + return null; + } + + return isMobile(value) ? null : { mobile: { 'zh-cn': `手机号码格式不正确`, en: `Mobile phone number is not valid` } }; + } + + static isMobile(value: string): boolean { + return typeof value === 'string' && /^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$/.test(value); + } + +} + + +function isEmptyInputValue(value: NzSafeAny): boolean { + return value == null || value.length === 0; +} + +function isMobile(value: string): boolean { + return typeof value === 'string' && /^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$/.test(value); +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/data/region.json b/src/assets/data/region.json new file mode 100644 index 0000000..d2ae3d8 --- /dev/null +++ b/src/assets/data/region.json @@ -0,0 +1,13266 @@ +[{ + "value": 110000, + "label": "北京市", + "children": [{ + "value": 110100, + "label": "市辖区", + "children": [{ + "value": 110101, + "label": "东城区", + "isLeaf": true + }, { + "value": 110102, + "label": "西城区", + "isLeaf": true + }, { + "value": 110105, + "label": "朝阳区", + "isLeaf": true + }, { + "value": 110106, + "label": "丰台区", + "isLeaf": true + }, { + "value": 110107, + "label": "石景山区", + "isLeaf": true + }, { + "value": 110108, + "label": "海淀区", + "isLeaf": true + }, { + "value": 110109, + "label": "门头沟区", + "isLeaf": true + }, { + "value": 110111, + "label": "房山区", + "isLeaf": true + }, { + "value": 110112, + "label": "通州区", + "isLeaf": true + }, { + "value": 110113, + "label": "顺义区", + "isLeaf": true + }, { + "value": 110114, + "label": "昌平区", + "isLeaf": true + }, { + "value": 110115, + "label": "大兴区", + "isLeaf": true + }, { + "value": 110116, + "label": "怀柔区", + "isLeaf": true + }, { + "value": 110117, + "label": "平谷区", + "isLeaf": true + }, { + "value": 110118, + "label": "密云区", + "isLeaf": true + }, { + "value": 110119, + "label": "延庆区", + "isLeaf": true + }] + }] +}, { + "value": 120000, + "label": "天津市", + "children": [{ + "value": 120100, + "label": "市辖区", + "children": [{ + "value": 120101, + "label": "和平区", + "isLeaf": true + }, { + "value": 120102, + "label": "河东区", + "isLeaf": true + }, { + "value": 120103, + "label": "河西区", + "isLeaf": true + }, { + "value": 120104, + "label": "南开区", + "isLeaf": true + }, { + "value": 120105, + "label": "河北区", + "isLeaf": true + }, { + "value": 120106, + "label": "红桥区", + "isLeaf": true + }, { + "value": 120110, + "label": "东丽区", + "isLeaf": true + }, { + "value": 120111, + "label": "西青区", + "isLeaf": true + }, { + "value": 120112, + "label": "津南区", + "isLeaf": true + }, { + "value": 120113, + "label": "北辰区", + "isLeaf": true + }, { + "value": 120114, + "label": "武清区", + "isLeaf": true + }, { + "value": 120115, + "label": "宝坻区", + "isLeaf": true + }, { + "value": 120116, + "label": "滨海新区", + "isLeaf": true + }, { + "value": 120117, + "label": "宁河区", + "isLeaf": true + }, { + "value": 120118, + "label": "静海区", + "isLeaf": true + }, { + "value": 120119, + "label": "蓟州区", + "isLeaf": true + }] + }] +}, { + "value": 130000, + "label": "河北省", + "children": [{ + "value": 130100, + "label": "石家庄市", + "children": [{ + "value": 130102, + "label": "长安区", + "isLeaf": true + }, { + "value": 130104, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130105, + "label": "新华区", + "isLeaf": true + }, { + "value": 130107, + "label": "井陉矿区", + "isLeaf": true + }, { + "value": 130108, + "label": "裕华区", + "isLeaf": true + }, { + "value": 130109, + "label": "藁城区", + "isLeaf": true + }, { + "value": 130110, + "label": "鹿泉区", + "isLeaf": true + }, { + "value": 130111, + "label": "栾城区", + "isLeaf": true + }, { + "value": 130121, + "label": "井陉县", + "isLeaf": true + }, { + "value": 130123, + "label": "正定县", + "isLeaf": true + }, { + "value": 130125, + "label": "行唐县", + "isLeaf": true + }, { + "value": 130126, + "label": "灵寿县", + "isLeaf": true + }, { + "value": 130127, + "label": "高邑县", + "isLeaf": true + }, { + "value": 130128, + "label": "深泽县", + "isLeaf": true + }, { + "value": 130129, + "label": "赞皇县", + "isLeaf": true + }, { + "value": 130130, + "label": "无极县", + "isLeaf": true + }, { + "value": 130131, + "label": "平山县", + "isLeaf": true + }, { + "value": 130132, + "label": "元氏县", + "isLeaf": true + }, { + "value": 130133, + "label": "赵县", + "isLeaf": true + }, { + "value": 130183, + "label": "晋州市", + "isLeaf": true + }, { + "value": 130184, + "label": "新乐市", + "isLeaf": true + }] + }, { + "value": 130200, + "label": "唐山市", + "children": [{ + "value": 130202, + "label": "路南区", + "isLeaf": true + }, { + "value": 130203, + "label": "路北区", + "isLeaf": true + }, { + "value": 130204, + "label": "古冶区", + "isLeaf": true + }, { + "value": 130205, + "label": "开平区", + "isLeaf": true + }, { + "value": 130207, + "label": "丰南区", + "isLeaf": true + }, { + "value": 130208, + "label": "丰润区", + "isLeaf": true + }, { + "value": 130209, + "label": "曹妃甸区", + "isLeaf": true + }, { + "value": 130223, + "label": "滦县", + "isLeaf": true + }, { + "value": 130224, + "label": "滦南县", + "isLeaf": true + }, { + "value": 130225, + "label": "乐亭县", + "isLeaf": true + }, { + "value": 130227, + "label": "迁西县", + "isLeaf": true + }, { + "value": 130229, + "label": "玉田县", + "isLeaf": true + }, { + "value": 130281, + "label": "遵化市", + "isLeaf": true + }, { + "value": 130283, + "label": "迁安市", + "isLeaf": true + }] + }, { + "value": 130300, + "label": "秦皇岛市", + "children": [{ + "value": 130302, + "label": "海港区", + "isLeaf": true + }, { + "value": 130303, + "label": "山海关区", + "isLeaf": true + }, { + "value": 130304, + "label": "北戴河区", + "isLeaf": true + }, { + "value": 130306, + "label": "抚宁区", + "isLeaf": true + }, { + "value": 130321, + "label": "青龙满族自治县", + "isLeaf": true + }, { + "value": 130322, + "label": "昌黎县", + "isLeaf": true + }, { + "value": 130324, + "label": "卢龙县", + "isLeaf": true + }] + }, { + "value": 130400, + "label": "邯郸市", + "children": [{ + "value": 130402, + "label": "邯山区", + "isLeaf": true + }, { + "value": 130403, + "label": "丛台区", + "isLeaf": true + }, { + "value": 130404, + "label": "复兴区", + "isLeaf": true + }, { + "value": 130406, + "label": "峰峰矿区", + "isLeaf": true + }, { + "value": 130421, + "label": "邯郸县", + "isLeaf": true + }, { + "value": 130423, + "label": "临漳县", + "isLeaf": true + }, { + "value": 130424, + "label": "成安县", + "isLeaf": true + }, { + "value": 130425, + "label": "大名县", + "isLeaf": true + }, { + "value": 130426, + "label": "涉县", + "isLeaf": true + }, { + "value": 130427, + "label": "磁县", + "isLeaf": true + }, { + "value": 130428, + "label": "肥乡县", + "isLeaf": true + }, { + "value": 130429, + "label": "永年县", + "isLeaf": true + }, { + "value": 130430, + "label": "邱县", + "isLeaf": true + }, { + "value": 130431, + "label": "鸡泽县", + "isLeaf": true + }, { + "value": 130432, + "label": "广平县", + "isLeaf": true + }, { + "value": 130433, + "label": "馆陶县", + "isLeaf": true + }, { + "value": 130434, + "label": "魏县", + "isLeaf": true + }, { + "value": 130435, + "label": "曲周县", + "isLeaf": true + }, { + "value": 130481, + "label": "武安市", + "isLeaf": true + }] + }, { + "value": 130500, + "label": "邢台市", + "children": [{ + "value": 130502, + "label": "桥东区", + "isLeaf": true + }, { + "value": 130503, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130521, + "label": "邢台县", + "isLeaf": true + }, { + "value": 130522, + "label": "临城县", + "isLeaf": true + }, { + "value": 130523, + "label": "内丘县", + "isLeaf": true + }, { + "value": 130524, + "label": "柏乡县", + "isLeaf": true + }, { + "value": 130525, + "label": "隆尧县", + "isLeaf": true + }, { + "value": 130526, + "label": "任县", + "isLeaf": true + }, { + "value": 130527, + "label": "南和县", + "isLeaf": true + }, { + "value": 130528, + "label": "宁晋县", + "isLeaf": true + }, { + "value": 130529, + "label": "巨鹿县", + "isLeaf": true + }, { + "value": 130530, + "label": "新河县", + "isLeaf": true + }, { + "value": 130531, + "label": "广宗县", + "isLeaf": true + }, { + "value": 130532, + "label": "平乡县", + "isLeaf": true + }, { + "value": 130533, + "label": "威县", + "isLeaf": true + }, { + "value": 130534, + "label": "清河县", + "isLeaf": true + }, { + "value": 130535, + "label": "临西县", + "isLeaf": true + }, { + "value": 130581, + "label": "南宫市", + "isLeaf": true + }, { + "value": 130582, + "label": "沙河市", + "isLeaf": true + }] + }, { + "value": 130600, + "label": "保定市", + "children": [{ + "value": 130602, + "label": "竞秀区", + "isLeaf": true + }, { + "value": 130606, + "label": "莲池区", + "isLeaf": true + }, { + "value": 130607, + "label": "满城区", + "isLeaf": true + }, { + "value": 130608, + "label": "清苑区", + "isLeaf": true + }, { + "value": 130609, + "label": "徐水区", + "isLeaf": true + }, { + "value": 130623, + "label": "涞水县", + "isLeaf": true + }, { + "value": 130624, + "label": "阜平县", + "isLeaf": true + }, { + "value": 130626, + "label": "定兴县", + "isLeaf": true + }, { + "value": 130627, + "label": "唐县", + "isLeaf": true + }, { + "value": 130628, + "label": "高阳县", + "isLeaf": true + }, { + "value": 130629, + "label": "容城县", + "isLeaf": true + }, { + "value": 130630, + "label": "涞源县", + "isLeaf": true + }, { + "value": 130631, + "label": "望都县", + "isLeaf": true + }, { + "value": 130632, + "label": "安新县", + "isLeaf": true + }, { + "value": 130633, + "label": "易县", + "isLeaf": true + }, { + "value": 130634, + "label": "曲阳县", + "isLeaf": true + }, { + "value": 130635, + "label": "蠡县", + "isLeaf": true + }, { + "value": 130636, + "label": "顺平县", + "isLeaf": true + }, { + "value": 130637, + "label": "博野县", + "isLeaf": true + }, { + "value": 130638, + "label": "雄县", + "isLeaf": true + }, { + "value": 130681, + "label": "涿州市", + "isLeaf": true + }, { + "value": 130683, + "label": "安国市", + "isLeaf": true + }, { + "value": 130684, + "label": "高碑店市", + "isLeaf": true + }] + }, { + "value": 130700, + "label": "张家口市", + "children": [{ + "value": 130702, + "label": "桥东区", + "isLeaf": true + }, { + "value": 130703, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130705, + "label": "宣化区", + "isLeaf": true + }, { + "value": 130706, + "label": "下花园区", + "isLeaf": true + }, { + "value": 130708, + "label": "万全区", + "isLeaf": true + }, { + "value": 130709, + "label": "崇礼区", + "isLeaf": true + }, { + "value": 130722, + "label": "张北县", + "isLeaf": true + }, { + "value": 130723, + "label": "康保县", + "isLeaf": true + }, { + "value": 130724, + "label": "沽源县", + "isLeaf": true + }, { + "value": 130725, + "label": "尚义县", + "isLeaf": true + }, { + "value": 130726, + "label": "蔚县", + "isLeaf": true + }, { + "value": 130727, + "label": "阳原县", + "isLeaf": true + }, { + "value": 130728, + "label": "怀安县", + "isLeaf": true + }, { + "value": 130730, + "label": "怀来县", + "isLeaf": true + }, { + "value": 130731, + "label": "涿鹿县", + "isLeaf": true + }, { + "value": 130732, + "label": "赤城县", + "isLeaf": true + }] + }, { + "value": 130800, + "label": "承德市", + "children": [{ + "value": 130802, + "label": "双桥区", + "isLeaf": true + }, { + "value": 130803, + "label": "双滦区", + "isLeaf": true + }, { + "value": 130804, + "label": "鹰手营子矿区", + "isLeaf": true + }, { + "value": 130821, + "label": "承德县", + "isLeaf": true + }, { + "value": 130822, + "label": "兴隆县", + "isLeaf": true + }, { + "value": 130823, + "label": "平泉县", + "isLeaf": true + }, { + "value": 130824, + "label": "滦平县", + "isLeaf": true + }, { + "value": 130825, + "label": "隆化县", + "isLeaf": true + }, { + "value": 130826, + "label": "丰宁满族自治县", + "isLeaf": true + }, { + "value": 130827, + "label": "宽城满族自治县", + "isLeaf": true + }, { + "value": 130828, + "label": "围场满族蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 130900, + "label": "沧州市", + "children": [{ + "value": 130902, + "label": "新华区", + "isLeaf": true + }, { + "value": 130903, + "label": "运河区", + "isLeaf": true + }, { + "value": 130921, + "label": "沧县", + "isLeaf": true + }, { + "value": 130922, + "label": "青县", + "isLeaf": true + }, { + "value": 130923, + "label": "东光县", + "isLeaf": true + }, { + "value": 130924, + "label": "海兴县", + "isLeaf": true + }, { + "value": 130925, + "label": "盐山县", + "isLeaf": true + }, { + "value": 130926, + "label": "肃宁县", + "isLeaf": true + }, { + "value": 130927, + "label": "南皮县", + "isLeaf": true + }, { + "value": 130928, + "label": "吴桥县", + "isLeaf": true + }, { + "value": 130929, + "label": "献县", + "isLeaf": true + }, { + "value": 130930, + "label": "孟村回族自治县", + "isLeaf": true + }, { + "value": 130981, + "label": "泊头市", + "isLeaf": true + }, { + "value": 130982, + "label": "任丘市", + "isLeaf": true + }, { + "value": 130983, + "label": "黄骅市", + "isLeaf": true + }, { + "value": 130984, + "label": "河间市", + "isLeaf": true + }] + }, { + "value": 131000, + "label": "廊坊市", + "children": [{ + "value": 131002, + "label": "安次区", + "isLeaf": true + }, { + "value": 131003, + "label": "广阳区", + "isLeaf": true + }, { + "value": 131022, + "label": "固安县", + "isLeaf": true + }, { + "value": 131023, + "label": "永清县", + "isLeaf": true + }, { + "value": 131024, + "label": "香河县", + "isLeaf": true + }, { + "value": 131025, + "label": "大城县", + "isLeaf": true + }, { + "value": 131026, + "label": "文安县", + "isLeaf": true + }, { + "value": 131028, + "label": "大厂回族自治县", + "isLeaf": true + }, { + "value": 131081, + "label": "霸州市", + "isLeaf": true + }, { + "value": 131082, + "label": "三河市", + "isLeaf": true + }] + }, { + "value": 131100, + "label": "衡水市", + "children": [{ + "value": 131102, + "label": "桃城区", + "isLeaf": true + }, { + "value": 131103, + "label": "冀州区", + "isLeaf": true + }, { + "value": 131121, + "label": "枣强县", + "isLeaf": true + }, { + "value": 131122, + "label": "武邑县", + "isLeaf": true + }, { + "value": 131123, + "label": "武强县", + "isLeaf": true + }, { + "value": 131124, + "label": "饶阳县", + "isLeaf": true + }, { + "value": 131125, + "label": "安平县", + "isLeaf": true + }, { + "value": 131126, + "label": "故城县", + "isLeaf": true + }, { + "value": 131127, + "label": "景县", + "isLeaf": true + }, { + "value": 131128, + "label": "阜城县", + "isLeaf": true + }, { + "value": 131182, + "label": "深州市", + "isLeaf": true + }] + }, { + "value": 139000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 139001, + "label": "定州市", + "isLeaf": true + }, { + "value": 139002, + "label": "辛集市", + "isLeaf": true + }] + }] +}, { + "value": 140000, + "label": "山西省", + "children": [{ + "value": 140100, + "label": "太原市", + "children": [{ + "value": 140105, + "label": "小店区", + "isLeaf": true + }, { + "value": 140106, + "label": "迎泽区", + "isLeaf": true + }, { + "value": 140107, + "label": "杏花岭区", + "isLeaf": true + }, { + "value": 140108, + "label": "尖草坪区", + "isLeaf": true + }, { + "value": 140109, + "label": "万柏林区", + "isLeaf": true + }, { + "value": 140110, + "label": "晋源区", + "isLeaf": true + }, { + "value": 140121, + "label": "清徐县", + "isLeaf": true + }, { + "value": 140122, + "label": "阳曲县", + "isLeaf": true + }, { + "value": 140123, + "label": "娄烦县", + "isLeaf": true + }, { + "value": 140181, + "label": "古交市", + "isLeaf": true + }] + }, { + "value": 140200, + "label": "大同市", + "children": [{ + "value": 140202, + "label": "城区", + "isLeaf": true + }, { + "value": 140203, + "label": "矿区", + "isLeaf": true + }, { + "value": 140211, + "label": "南郊区", + "isLeaf": true + }, { + "value": 140212, + "label": "新荣区", + "isLeaf": true + }, { + "value": 140221, + "label": "阳高县", + "isLeaf": true + }, { + "value": 140222, + "label": "天镇县", + "isLeaf": true + }, { + "value": 140223, + "label": "广灵县", + "isLeaf": true + }, { + "value": 140224, + "label": "灵丘县", + "isLeaf": true + }, { + "value": 140225, + "label": "浑源县", + "isLeaf": true + }, { + "value": 140226, + "label": "左云县", + "isLeaf": true + }, { + "value": 140227, + "label": "大同县", + "isLeaf": true + }] + }, { + "value": 140300, + "label": "阳泉市", + "children": [{ + "value": 140302, + "label": "城区", + "isLeaf": true + }, { + "value": 140303, + "label": "矿区", + "isLeaf": true + }, { + "value": 140311, + "label": "郊区", + "isLeaf": true + }, { + "value": 140321, + "label": "平定县", + "isLeaf": true + }, { + "value": 140322, + "label": "盂县", + "isLeaf": true + }] + }, { + "value": 140400, + "label": "长治市", + "children": [{ + "value": 140402, + "label": "城区", + "isLeaf": true + }, { + "value": 140411, + "label": "郊区", + "isLeaf": true + }, { + "value": 140421, + "label": "长治县", + "isLeaf": true + }, { + "value": 140423, + "label": "襄垣县", + "isLeaf": true + }, { + "value": 140424, + "label": "屯留县", + "isLeaf": true + }, { + "value": 140425, + "label": "平顺县", + "isLeaf": true + }, { + "value": 140426, + "label": "黎城县", + "isLeaf": true + }, { + "value": 140427, + "label": "壶关县", + "isLeaf": true + }, { + "value": 140428, + "label": "长子县", + "isLeaf": true + }, { + "value": 140429, + "label": "武乡县", + "isLeaf": true + }, { + "value": 140430, + "label": "沁县", + "isLeaf": true + }, { + "value": 140431, + "label": "沁源县", + "isLeaf": true + }, { + "value": 140481, + "label": "潞城市", + "isLeaf": true + }] + }, { + "value": 140500, + "label": "晋城市", + "children": [{ + "value": 140502, + "label": "城区", + "isLeaf": true + }, { + "value": 140521, + "label": "沁水县", + "isLeaf": true + }, { + "value": 140522, + "label": "阳城县", + "isLeaf": true + }, { + "value": 140524, + "label": "陵川县", + "isLeaf": true + }, { + "value": 140525, + "label": "泽州县", + "isLeaf": true + }, { + "value": 140581, + "label": "高平市", + "isLeaf": true + }] + }, { + "value": 140600, + "label": "朔州市", + "children": [{ + "value": 140602, + "label": "朔城区", + "isLeaf": true + }, { + "value": 140603, + "label": "平鲁区", + "isLeaf": true + }, { + "value": 140621, + "label": "山阴县", + "isLeaf": true + }, { + "value": 140622, + "label": "应县", + "isLeaf": true + }, { + "value": 140623, + "label": "右玉县", + "isLeaf": true + }, { + "value": 140624, + "label": "怀仁县", + "isLeaf": true + }] + }, { + "value": 140700, + "label": "晋中市", + "children": [{ + "value": 140702, + "label": "榆次区", + "isLeaf": true + }, { + "value": 140721, + "label": "榆社县", + "isLeaf": true + }, { + "value": 140722, + "label": "左权县", + "isLeaf": true + }, { + "value": 140723, + "label": "和顺县", + "isLeaf": true + }, { + "value": 140724, + "label": "昔阳县", + "isLeaf": true + }, { + "value": 140725, + "label": "寿阳县", + "isLeaf": true + }, { + "value": 140726, + "label": "太谷县", + "isLeaf": true + }, { + "value": 140727, + "label": "祁县", + "isLeaf": true + }, { + "value": 140728, + "label": "平遥县", + "isLeaf": true + }, { + "value": 140729, + "label": "灵石县", + "isLeaf": true + }, { + "value": 140781, + "label": "介休市", + "isLeaf": true + }] + }, { + "value": 140800, + "label": "运城市", + "children": [{ + "value": 140802, + "label": "盐湖区", + "isLeaf": true + }, { + "value": 140821, + "label": "临猗县", + "isLeaf": true + }, { + "value": 140822, + "label": "万荣县", + "isLeaf": true + }, { + "value": 140823, + "label": "闻喜县", + "isLeaf": true + }, { + "value": 140824, + "label": "稷山县", + "isLeaf": true + }, { + "value": 140825, + "label": "新绛县", + "isLeaf": true + }, { + "value": 140826, + "label": "绛县", + "isLeaf": true + }, { + "value": 140827, + "label": "垣曲县", + "isLeaf": true + }, { + "value": 140828, + "label": "夏县", + "isLeaf": true + }, { + "value": 140829, + "label": "平陆县", + "isLeaf": true + }, { + "value": 140830, + "label": "芮城县", + "isLeaf": true + }, { + "value": 140881, + "label": "永济市", + "isLeaf": true + }, { + "value": 140882, + "label": "河津市", + "isLeaf": true + }] + }, { + "value": 140900, + "label": "忻州市", + "children": [{ + "value": 140902, + "label": "忻府区", + "isLeaf": true + }, { + "value": 140921, + "label": "定襄县", + "isLeaf": true + }, { + "value": 140922, + "label": "五台县", + "isLeaf": true + }, { + "value": 140923, + "label": "代县", + "isLeaf": true + }, { + "value": 140924, + "label": "繁峙县", + "isLeaf": true + }, { + "value": 140925, + "label": "宁武县", + "isLeaf": true + }, { + "value": 140926, + "label": "静乐县", + "isLeaf": true + }, { + "value": 140927, + "label": "神池县", + "isLeaf": true + }, { + "value": 140928, + "label": "五寨县", + "isLeaf": true + }, { + "value": 140929, + "label": "岢岚县", + "isLeaf": true + }, { + "value": 140930, + "label": "河曲县", + "isLeaf": true + }, { + "value": 140931, + "label": "保德县", + "isLeaf": true + }, { + "value": 140932, + "label": "偏关县", + "isLeaf": true + }, { + "value": 140981, + "label": "原平市", + "isLeaf": true + }] + }, { + "value": 141000, + "label": "临汾市", + "children": [{ + "value": 141002, + "label": "尧都区", + "isLeaf": true + }, { + "value": 141021, + "label": "曲沃县", + "isLeaf": true + }, { + "value": 141022, + "label": "翼城县", + "isLeaf": true + }, { + "value": 141023, + "label": "襄汾县", + "isLeaf": true + }, { + "value": 141024, + "label": "洪洞县", + "isLeaf": true + }, { + "value": 141025, + "label": "古县", + "isLeaf": true + }, { + "value": 141026, + "label": "安泽县", + "isLeaf": true + }, { + "value": 141027, + "label": "浮山县", + "isLeaf": true + }, { + "value": 141028, + "label": "吉县", + "isLeaf": true + }, { + "value": 141029, + "label": "乡宁县", + "isLeaf": true + }, { + "value": 141030, + "label": "大宁县", + "isLeaf": true + }, { + "value": 141031, + "label": "隰县", + "isLeaf": true + }, { + "value": 141032, + "label": "永和县", + "isLeaf": true + }, { + "value": 141033, + "label": "蒲县", + "isLeaf": true + }, { + "value": 141034, + "label": "汾西县", + "isLeaf": true + }, { + "value": 141081, + "label": "侯马市", + "isLeaf": true + }, { + "value": 141082, + "label": "霍州市", + "isLeaf": true + }] + }, { + "value": 141100, + "label": "吕梁市", + "children": [{ + "value": 141102, + "label": "离石区", + "isLeaf": true + }, { + "value": 141121, + "label": "文水县", + "isLeaf": true + }, { + "value": 141122, + "label": "交城县", + "isLeaf": true + }, { + "value": 141123, + "label": "兴县", + "isLeaf": true + }, { + "value": 141124, + "label": "临县", + "isLeaf": true + }, { + "value": 141125, + "label": "柳林县", + "isLeaf": true + }, { + "value": 141126, + "label": "石楼县", + "isLeaf": true + }, { + "value": 141127, + "label": "岚县", + "isLeaf": true + }, { + "value": 141128, + "label": "方山县", + "isLeaf": true + }, { + "value": 141129, + "label": "中阳县", + "isLeaf": true + }, { + "value": 141130, + "label": "交口县", + "isLeaf": true + }, { + "value": 141181, + "label": "孝义市", + "isLeaf": true + }, { + "value": 141182, + "label": "汾阳市", + "isLeaf": true + }] + }] +}, { + "value": 150000, + "label": "内蒙古自治区", + "children": [{ + "value": 150100, + "label": "呼和浩特市", + "children": [{ + "value": 150102, + "label": "新城区", + "isLeaf": true + }, { + "value": 150103, + "label": "回民区", + "isLeaf": true + }, { + "value": 150104, + "label": "玉泉区", + "isLeaf": true + }, { + "value": 150105, + "label": "赛罕区", + "isLeaf": true + }, { + "value": 150121, + "label": "土默特左旗", + "isLeaf": true + }, { + "value": 150122, + "label": "托克托县", + "isLeaf": true + }, { + "value": 150123, + "label": "和林格尔县", + "isLeaf": true + }, { + "value": 150124, + "label": "清水河县", + "isLeaf": true + }, { + "value": 150125, + "label": "武川县", + "isLeaf": true + }] + }, { + "value": 150200, + "label": "包头市", + "children": [{ + "value": 150202, + "label": "东河区", + "isLeaf": true + }, { + "value": 150203, + "label": "昆都仑区", + "isLeaf": true + }, { + "value": 150204, + "label": "青山区", + "isLeaf": true + }, { + "value": 150205, + "label": "石拐区", + "isLeaf": true + }, { + "value": 150206, + "label": "白云鄂博矿区", + "isLeaf": true + }, { + "value": 150207, + "label": "九原区", + "isLeaf": true + }, { + "value": 150221, + "label": "土默特右旗", + "isLeaf": true + }, { + "value": 150222, + "label": "固阳县", + "isLeaf": true + }, { + "value": 150223, + "label": "达尔罕茂明安联合旗", + "isLeaf": true + }] + }, { + "value": 150300, + "label": "乌海市", + "children": [{ + "value": 150302, + "label": "海勃湾区", + "isLeaf": true + }, { + "value": 150303, + "label": "海南区", + "isLeaf": true + }, { + "value": 150304, + "label": "乌达区", + "isLeaf": true + }] + }, { + "value": 150400, + "label": "赤峰市", + "children": [{ + "value": 150402, + "label": "红山区", + "isLeaf": true + }, { + "value": 150403, + "label": "元宝山区", + "isLeaf": true + }, { + "value": 150404, + "label": "松山区", + "isLeaf": true + }, { + "value": 150421, + "label": "阿鲁科尔沁旗", + "isLeaf": true + }, { + "value": 150422, + "label": "巴林左旗", + "isLeaf": true + }, { + "value": 150423, + "label": "巴林右旗", + "isLeaf": true + }, { + "value": 150424, + "label": "林西县", + "isLeaf": true + }, { + "value": 150425, + "label": "克什克腾旗", + "isLeaf": true + }, { + "value": 150426, + "label": "翁牛特旗", + "isLeaf": true + }, { + "value": 150428, + "label": "喀喇沁旗", + "isLeaf": true + }, { + "value": 150429, + "label": "宁城县", + "isLeaf": true + }, { + "value": 150430, + "label": "敖汉旗", + "isLeaf": true + }] + }, { + "value": 150500, + "label": "通辽市", + "children": [{ + "value": 150502, + "label": "科尔沁区", + "isLeaf": true + }, { + "value": 150521, + "label": "科尔沁左翼中旗", + "isLeaf": true + }, { + "value": 150522, + "label": "科尔沁左翼后旗", + "isLeaf": true + }, { + "value": 150523, + "label": "开鲁县", + "isLeaf": true + }, { + "value": 150524, + "label": "库伦旗", + "isLeaf": true + }, { + "value": 150525, + "label": "奈曼旗", + "isLeaf": true + }, { + "value": 150526, + "label": "扎鲁特旗", + "isLeaf": true + }, { + "value": 150581, + "label": "霍林郭勒市", + "isLeaf": true + }] + }, { + "value": 150600, + "label": "鄂尔多斯市", + "children": [{ + "value": 150602, + "label": "东胜区", + "isLeaf": true + }, { + "value": 150603, + "label": "康巴什区", + "isLeaf": true + }, { + "value": 150621, + "label": "达拉特旗", + "isLeaf": true + }, { + "value": 150622, + "label": "准格尔旗", + "isLeaf": true + }, { + "value": 150623, + "label": "鄂托克前旗", + "isLeaf": true + }, { + "value": 150624, + "label": "鄂托克旗", + "isLeaf": true + }, { + "value": 150625, + "label": "杭锦旗", + "isLeaf": true + }, { + "value": 150626, + "label": "乌审旗", + "isLeaf": true + }, { + "value": 150627, + "label": "伊金霍洛旗", + "isLeaf": true + }] + }, { + "value": 150700, + "label": "呼伦贝尔市", + "children": [{ + "value": 150702, + "label": "海拉尔区", + "isLeaf": true + }, { + "value": 150703, + "label": "扎赉诺尔区", + "isLeaf": true + }, { + "value": 150721, + "label": "阿荣旗", + "isLeaf": true + }, { + "value": 150722, + "label": "莫力达瓦达斡尔族自治旗", + "isLeaf": true + }, { + "value": 150723, + "label": "鄂伦春自治旗", + "isLeaf": true + }, { + "value": 150724, + "label": "鄂温克族自治旗", + "isLeaf": true + }, { + "value": 150725, + "label": "陈巴尔虎旗", + "isLeaf": true + }, { + "value": 150726, + "label": "新巴尔虎左旗", + "isLeaf": true + }, { + "value": 150727, + "label": "新巴尔虎右旗", + "isLeaf": true + }, { + "value": 150781, + "label": "满洲里市", + "isLeaf": true + }, { + "value": 150782, + "label": "牙克石市", + "isLeaf": true + }, { + "value": 150783, + "label": "扎兰屯市", + "isLeaf": true + }, { + "value": 150784, + "label": "额尔古纳市", + "isLeaf": true + }, { + "value": 150785, + "label": "根河市", + "isLeaf": true + }] + }, { + "value": 150800, + "label": "巴彦淖尔市", + "children": [{ + "value": 150802, + "label": "临河区", + "isLeaf": true + }, { + "value": 150821, + "label": "五原县", + "isLeaf": true + }, { + "value": 150822, + "label": "磴口县", + "isLeaf": true + }, { + "value": 150823, + "label": "乌拉特前旗", + "isLeaf": true + }, { + "value": 150824, + "label": "乌拉特中旗", + "isLeaf": true + }, { + "value": 150825, + "label": "乌拉特后旗", + "isLeaf": true + }, { + "value": 150826, + "label": "杭锦后旗", + "isLeaf": true + }] + }, { + "value": 150900, + "label": "乌兰察布市", + "children": [{ + "value": 150902, + "label": "集宁区", + "isLeaf": true + }, { + "value": 150921, + "label": "卓资县", + "isLeaf": true + }, { + "value": 150922, + "label": "化德县", + "isLeaf": true + }, { + "value": 150923, + "label": "商都县", + "isLeaf": true + }, { + "value": 150924, + "label": "兴和县", + "isLeaf": true + }, { + "value": 150925, + "label": "凉城县", + "isLeaf": true + }, { + "value": 150926, + "label": "察哈尔右翼前旗", + "isLeaf": true + }, { + "value": 150927, + "label": "察哈尔右翼中旗", + "isLeaf": true + }, { + "value": 150928, + "label": "察哈尔右翼后旗", + "isLeaf": true + }, { + "value": 150929, + "label": "四子王旗", + "isLeaf": true + }, { + "value": 150981, + "label": "丰镇市", + "isLeaf": true + }] + }, { + "value": 152200, + "label": "兴安盟", + "children": [{ + "value": 152201, + "label": "乌兰浩特市", + "isLeaf": true + }, { + "value": 152202, + "label": "阿尔山市", + "isLeaf": true + }, { + "value": 152221, + "label": "科尔沁右翼前旗", + "isLeaf": true + }, { + "value": 152222, + "label": "科尔沁右翼中旗", + "isLeaf": true + }, { + "value": 152223, + "label": "扎赉特旗", + "isLeaf": true + }, { + "value": 152224, + "label": "突泉县", + "isLeaf": true + }] + }, { + "value": 152500, + "label": "锡林郭勒盟", + "children": [{ + "value": 152501, + "label": "二连浩特市", + "isLeaf": true + }, { + "value": 152502, + "label": "锡林浩特市", + "isLeaf": true + }, { + "value": 152522, + "label": "阿巴嘎旗", + "isLeaf": true + }, { + "value": 152523, + "label": "苏尼特左旗", + "isLeaf": true + }, { + "value": 152524, + "label": "苏尼特右旗", + "isLeaf": true + }, { + "value": 152525, + "label": "东乌珠穆沁旗", + "isLeaf": true + }, { + "value": 152526, + "label": "西乌珠穆沁旗", + "isLeaf": true + }, { + "value": 152527, + "label": "太仆寺旗", + "isLeaf": true + }, { + "value": 152528, + "label": "镶黄旗", + "isLeaf": true + }, { + "value": 152529, + "label": "正镶白旗", + "isLeaf": true + }, { + "value": 152530, + "label": "正蓝旗", + "isLeaf": true + }, { + "value": 152531, + "label": "多伦县", + "isLeaf": true + }] + }, { + "value": 152900, + "label": "阿拉善盟", + "children": [{ + "value": 152921, + "label": "阿拉善左旗", + "isLeaf": true + }, { + "value": 152922, + "label": "阿拉善右旗", + "isLeaf": true + }, { + "value": 152923, + "label": "额济纳旗", + "isLeaf": true + }] + }] +}, { + "value": 210000, + "label": "辽宁省", + "children": [{ + "value": 210100, + "label": "沈阳市", + "children": [{ + "value": 210102, + "label": "和平区", + "isLeaf": true + }, { + "value": 210103, + "label": "沈河区", + "isLeaf": true + }, { + "value": 210104, + "label": "大东区", + "isLeaf": true + }, { + "value": 210105, + "label": "皇姑区", + "isLeaf": true + }, { + "value": 210106, + "label": "铁西区", + "isLeaf": true + }, { + "value": 210111, + "label": "苏家屯区", + "isLeaf": true + }, { + "value": 210112, + "label": "浑南区", + "isLeaf": true + }, { + "value": 210113, + "label": "沈北新区", + "isLeaf": true + }, { + "value": 210114, + "label": "于洪区", + "isLeaf": true + }, { + "value": 210115, + "label": "辽中区", + "isLeaf": true + }, { + "value": 210123, + "label": "康平县", + "isLeaf": true + }, { + "value": 210124, + "label": "法库县", + "isLeaf": true + }, { + "value": 210181, + "label": "新民市", + "isLeaf": true + }] + }, { + "value": 210200, + "label": "大连市", + "children": [{ + "value": 210202, + "label": "中山区", + "isLeaf": true + }, { + "value": 210203, + "label": "西岗区", + "isLeaf": true + }, { + "value": 210204, + "label": "沙河口区", + "isLeaf": true + }, { + "value": 210211, + "label": "甘井子区", + "isLeaf": true + }, { + "value": 210212, + "label": "旅顺口区", + "isLeaf": true + }, { + "value": 210213, + "label": "金州区", + "isLeaf": true + }, { + "value": 210214, + "label": "普兰店区", + "isLeaf": true + }, { + "value": 210224, + "label": "长海县", + "isLeaf": true + }, { + "value": 210281, + "label": "瓦房店市", + "isLeaf": true + }, { + "value": 210283, + "label": "庄河市", + "isLeaf": true + }] + }, { + "value": 210300, + "label": "鞍山市", + "children": [{ + "value": 210302, + "label": "铁东区", + "isLeaf": true + }, { + "value": 210303, + "label": "铁西区", + "isLeaf": true + }, { + "value": 210304, + "label": "立山区", + "isLeaf": true + }, { + "value": 210311, + "label": "千山区", + "isLeaf": true + }, { + "value": 210321, + "label": "台安县", + "isLeaf": true + }, { + "value": 210323, + "label": "岫岩满族自治县", + "isLeaf": true + }, { + "value": 210381, + "label": "海城市", + "isLeaf": true + }] + }, { + "value": 210400, + "label": "抚顺市", + "children": [{ + "value": 210402, + "label": "新抚区", + "isLeaf": true + }, { + "value": 210403, + "label": "东洲区", + "isLeaf": true + }, { + "value": 210404, + "label": "望花区", + "isLeaf": true + }, { + "value": 210411, + "label": "顺城区", + "isLeaf": true + }, { + "value": 210421, + "label": "抚顺县", + "isLeaf": true + }, { + "value": 210422, + "label": "新宾满族自治县", + "isLeaf": true + }, { + "value": 210423, + "label": "清原满族自治县", + "isLeaf": true + }] + }, { + "value": 210500, + "label": "本溪市", + "children": [{ + "value": 210502, + "label": "平山区", + "isLeaf": true + }, { + "value": 210503, + "label": "溪湖区", + "isLeaf": true + }, { + "value": 210504, + "label": "明山区", + "isLeaf": true + }, { + "value": 210505, + "label": "南芬区", + "isLeaf": true + }, { + "value": 210521, + "label": "本溪满族自治县", + "isLeaf": true + }, { + "value": 210522, + "label": "桓仁满族自治县", + "isLeaf": true + }] + }, { + "value": 210600, + "label": "丹东市", + "children": [{ + "value": 210602, + "label": "元宝区", + "isLeaf": true + }, { + "value": 210603, + "label": "振兴区", + "isLeaf": true + }, { + "value": 210604, + "label": "振安区", + "isLeaf": true + }, { + "value": 210624, + "label": "宽甸满族自治县", + "isLeaf": true + }, { + "value": 210681, + "label": "东港市", + "isLeaf": true + }, { + "value": 210682, + "label": "凤城市", + "isLeaf": true + }] + }, { + "value": 210700, + "label": "锦州市", + "children": [{ + "value": 210702, + "label": "古塔区", + "isLeaf": true + }, { + "value": 210703, + "label": "凌河区", + "isLeaf": true + }, { + "value": 210711, + "label": "太和区", + "isLeaf": true + }, { + "value": 210726, + "label": "黑山县", + "isLeaf": true + }, { + "value": 210727, + "label": "义县", + "isLeaf": true + }, { + "value": 210781, + "label": "凌海市", + "isLeaf": true + }, { + "value": 210782, + "label": "北镇市", + "isLeaf": true + }] + }, { + "value": 210800, + "label": "营口市", + "children": [{ + "value": 210802, + "label": "站前区", + "isLeaf": true + }, { + "value": 210803, + "label": "西市区", + "isLeaf": true + }, { + "value": 210804, + "label": "鲅鱼圈区", + "isLeaf": true + }, { + "value": 210811, + "label": "老边区", + "isLeaf": true + }, { + "value": 210881, + "label": "盖州市", + "isLeaf": true + }, { + "value": 210882, + "label": "大石桥市", + "isLeaf": true + }] + }, { + "value": 210900, + "label": "阜新市", + "children": [{ + "value": 210902, + "label": "海州区", + "isLeaf": true + }, { + "value": 210903, + "label": "新邱区", + "isLeaf": true + }, { + "value": 210904, + "label": "太平区", + "isLeaf": true + }, { + "value": 210905, + "label": "清河门区", + "isLeaf": true + }, { + "value": 210911, + "label": "细河区", + "isLeaf": true + }, { + "value": 210921, + "label": "阜新蒙古族自治县", + "isLeaf": true + }, { + "value": 210922, + "label": "彰武县", + "isLeaf": true + }] + }, { + "value": 211000, + "label": "辽阳市", + "children": [{ + "value": 211002, + "label": "白塔区", + "isLeaf": true + }, { + "value": 211003, + "label": "文圣区", + "isLeaf": true + }, { + "value": 211004, + "label": "宏伟区", + "isLeaf": true + }, { + "value": 211005, + "label": "弓长岭区", + "isLeaf": true + }, { + "value": 211011, + "label": "太子河区", + "isLeaf": true + }, { + "value": 211021, + "label": "辽阳县", + "isLeaf": true + }, { + "value": 211081, + "label": "灯塔市", + "isLeaf": true + }] + }, { + "value": 211100, + "label": "盘锦市", + "children": [{ + "value": 211102, + "label": "双台子区", + "isLeaf": true + }, { + "value": 211103, + "label": "兴隆台区", + "isLeaf": true + }, { + "value": 211104, + "label": "大洼区", + "isLeaf": true + }, { + "value": 211122, + "label": "盘山县", + "isLeaf": true + }] + }, { + "value": 211200, + "label": "铁岭市", + "children": [{ + "value": 211202, + "label": "银州区", + "isLeaf": true + }, { + "value": 211204, + "label": "清河区", + "isLeaf": true + }, { + "value": 211221, + "label": "铁岭县", + "isLeaf": true + }, { + "value": 211223, + "label": "西丰县", + "isLeaf": true + }, { + "value": 211224, + "label": "昌图县", + "isLeaf": true + }, { + "value": 211281, + "label": "调兵山市", + "isLeaf": true + }, { + "value": 211282, + "label": "开原市", + "isLeaf": true + }] + }, { + "value": 211300, + "label": "朝阳市", + "children": [{ + "value": 211302, + "label": "双塔区", + "isLeaf": true + }, { + "value": 211303, + "label": "龙城区", + "isLeaf": true + }, { + "value": 211321, + "label": "朝阳县", + "isLeaf": true + }, { + "value": 211322, + "label": "建平县", + "isLeaf": true + }, { + "value": 211324, + "label": "喀喇沁左翼蒙古族自治县", + "isLeaf": true + }, { + "value": 211381, + "label": "北票市", + "isLeaf": true + }, { + "value": 211382, + "label": "凌源市", + "isLeaf": true + }] + }, { + "value": 211400, + "label": "葫芦岛市", + "children": [{ + "value": 211402, + "label": "连山区", + "isLeaf": true + }, { + "value": 211403, + "label": "龙港区", + "isLeaf": true + }, { + "value": 211404, + "label": "南票区", + "isLeaf": true + }, { + "value": 211421, + "label": "绥中县", + "isLeaf": true + }, { + "value": 211422, + "label": "建昌县", + "isLeaf": true + }, { + "value": 211481, + "label": "兴城市", + "isLeaf": true + }] + }] +}, { + "value": 220000, + "label": "吉林省", + "children": [{ + "value": 220100, + "label": "长春市", + "children": [{ + "value": 220102, + "label": "南关区", + "isLeaf": true + }, { + "value": 220103, + "label": "宽城区", + "isLeaf": true + }, { + "value": 220104, + "label": "朝阳区", + "isLeaf": true + }, { + "value": 220105, + "label": "二道区", + "isLeaf": true + }, { + "value": 220106, + "label": "绿园区", + "isLeaf": true + }, { + "value": 220112, + "label": "双阳区", + "isLeaf": true + }, { + "value": 220113, + "label": "九台区", + "isLeaf": true + }, { + "value": 220122, + "label": "农安县", + "isLeaf": true + }, { + "value": 220182, + "label": "榆树市", + "isLeaf": true + }, { + "value": 220183, + "label": "德惠市", + "isLeaf": true + }] + }, { + "value": 220200, + "label": "吉林市", + "children": [{ + "value": 220202, + "label": "昌邑区", + "isLeaf": true + }, { + "value": 220203, + "label": "龙潭区", + "isLeaf": true + }, { + "value": 220204, + "label": "船营区", + "isLeaf": true + }, { + "value": 220211, + "label": "丰满区", + "isLeaf": true + }, { + "value": 220221, + "label": "永吉县", + "isLeaf": true + }, { + "value": 220281, + "label": "蛟河市", + "isLeaf": true + }, { + "value": 220282, + "label": "桦甸市", + "isLeaf": true + }, { + "value": 220283, + "label": "舒兰市", + "isLeaf": true + }, { + "value": 220284, + "label": "磐石市", + "isLeaf": true + }] + }, { + "value": 220300, + "label": "四平市", + "children": [{ + "value": 220302, + "label": "铁西区", + "isLeaf": true + }, { + "value": 220303, + "label": "铁东区", + "isLeaf": true + }, { + "value": 220322, + "label": "梨树县", + "isLeaf": true + }, { + "value": 220323, + "label": "伊通满族自治县", + "isLeaf": true + }, { + "value": 220381, + "label": "公主岭市", + "isLeaf": true + }, { + "value": 220382, + "label": "双辽市", + "isLeaf": true + }] + }, { + "value": 220400, + "label": "辽源市", + "children": [{ + "value": 220402, + "label": "龙山区", + "isLeaf": true + }, { + "value": 220403, + "label": "西安区", + "isLeaf": true + }, { + "value": 220421, + "label": "东丰县", + "isLeaf": true + }, { + "value": 220422, + "label": "东辽县", + "isLeaf": true + }] + }, { + "value": 220500, + "label": "通化市", + "children": [{ + "value": 220502, + "label": "东昌区", + "isLeaf": true + }, { + "value": 220503, + "label": "二道江区", + "isLeaf": true + }, { + "value": 220521, + "label": "通化县", + "isLeaf": true + }, { + "value": 220523, + "label": "辉南县", + "isLeaf": true + }, { + "value": 220524, + "label": "柳河县", + "isLeaf": true + }, { + "value": 220581, + "label": "梅河口市", + "isLeaf": true + }, { + "value": 220582, + "label": "集安市", + "isLeaf": true + }] + }, { + "value": 220600, + "label": "白山市", + "children": [{ + "value": 220602, + "label": "浑江区", + "isLeaf": true + }, { + "value": 220605, + "label": "江源区", + "isLeaf": true + }, { + "value": 220621, + "label": "抚松县", + "isLeaf": true + }, { + "value": 220622, + "label": "靖宇县", + "isLeaf": true + }, { + "value": 220623, + "label": "长白朝鲜族自治县", + "isLeaf": true + }, { + "value": 220681, + "label": "临江市", + "isLeaf": true + }] + }, { + "value": 220700, + "label": "松原市", + "children": [{ + "value": 220702, + "label": "宁江区", + "isLeaf": true + }, { + "value": 220721, + "label": "前郭尔罗斯蒙古族自治县", + "isLeaf": true + }, { + "value": 220722, + "label": "长岭县", + "isLeaf": true + }, { + "value": 220723, + "label": "乾安县", + "isLeaf": true + }, { + "value": 220781, + "label": "扶余市", + "isLeaf": true + }] + }, { + "value": 220800, + "label": "白城市", + "children": [{ + "value": 220802, + "label": "洮北区", + "isLeaf": true + }, { + "value": 220821, + "label": "镇赉县", + "isLeaf": true + }, { + "value": 220822, + "label": "通榆县", + "isLeaf": true + }, { + "value": 220881, + "label": "洮南市", + "isLeaf": true + }, { + "value": 220882, + "label": "大安市", + "isLeaf": true + }] + }, { + "value": 222400, + "label": "延边朝鲜族自治州", + "children": [{ + "value": 222401, + "label": "延吉市", + "isLeaf": true + }, { + "value": 222402, + "label": "图们市", + "isLeaf": true + }, { + "value": 222403, + "label": "敦化市", + "isLeaf": true + }, { + "value": 222404, + "label": "珲春市", + "isLeaf": true + }, { + "value": 222405, + "label": "龙井市", + "isLeaf": true + }, { + "value": 222406, + "label": "和龙市", + "isLeaf": true + }, { + "value": 222424, + "label": "汪清县", + "isLeaf": true + }, { + "value": 222426, + "label": "安图县", + "isLeaf": true + }] + }] +}, { + "value": 230000, + "label": "黑龙江省", + "children": [{ + "value": 230100, + "label": "哈尔滨市", + "children": [{ + "value": 230102, + "label": "道里区", + "isLeaf": true + }, { + "value": 230103, + "label": "南岗区", + "isLeaf": true + }, { + "value": 230104, + "label": "道外区", + "isLeaf": true + }, { + "value": 230108, + "label": "平房区", + "isLeaf": true + }, { + "value": 230109, + "label": "松北区", + "isLeaf": true + }, { + "value": 230110, + "label": "香坊区", + "isLeaf": true + }, { + "value": 230111, + "label": "呼兰区", + "isLeaf": true + }, { + "value": 230112, + "label": "阿城区", + "isLeaf": true + }, { + "value": 230113, + "label": "双城区", + "isLeaf": true + }, { + "value": 230123, + "label": "依兰县", + "isLeaf": true + }, { + "value": 230124, + "label": "方正县", + "isLeaf": true + }, { + "value": 230125, + "label": "宾县", + "isLeaf": true + }, { + "value": 230126, + "label": "巴彦县", + "isLeaf": true + }, { + "value": 230127, + "label": "木兰县", + "isLeaf": true + }, { + "value": 230128, + "label": "通河县", + "isLeaf": true + }, { + "value": 230129, + "label": "延寿县", + "isLeaf": true + }, { + "value": 230183, + "label": "尚志市", + "isLeaf": true + }, { + "value": 230184, + "label": "五常市", + "isLeaf": true + }] + }, { + "value": 230200, + "label": "齐齐哈尔市", + "children": [{ + "value": 230202, + "label": "龙沙区", + "isLeaf": true + }, { + "value": 230203, + "label": "建华区", + "isLeaf": true + }, { + "value": 230204, + "label": "铁锋区", + "isLeaf": true + }, { + "value": 230205, + "label": "昂昂溪区", + "isLeaf": true + }, { + "value": 230206, + "label": "富拉尔基区", + "isLeaf": true + }, { + "value": 230207, + "label": "碾子山区", + "isLeaf": true + }, { + "value": 230208, + "label": "梅里斯达斡尔族区", + "isLeaf": true + }, { + "value": 230221, + "label": "龙江县", + "isLeaf": true + }, { + "value": 230223, + "label": "依安县", + "isLeaf": true + }, { + "value": 230224, + "label": "泰来县", + "isLeaf": true + }, { + "value": 230225, + "label": "甘南县", + "isLeaf": true + }, { + "value": 230227, + "label": "富裕县", + "isLeaf": true + }, { + "value": 230229, + "label": "克山县", + "isLeaf": true + }, { + "value": 230230, + "label": "克东县", + "isLeaf": true + }, { + "value": 230231, + "label": "拜泉县", + "isLeaf": true + }, { + "value": 230281, + "label": "讷河市", + "isLeaf": true + }] + }, { + "value": 230300, + "label": "鸡西市", + "children": [{ + "value": 230302, + "label": "鸡冠区", + "isLeaf": true + }, { + "value": 230303, + "label": "恒山区", + "isLeaf": true + }, { + "value": 230304, + "label": "滴道区", + "isLeaf": true + }, { + "value": 230305, + "label": "梨树区", + "isLeaf": true + }, { + "value": 230306, + "label": "城子河区", + "isLeaf": true + }, { + "value": 230307, + "label": "麻山区", + "isLeaf": true + }, { + "value": 230321, + "label": "鸡东县", + "isLeaf": true + }, { + "value": 230381, + "label": "虎林市", + "isLeaf": true + }, { + "value": 230382, + "label": "密山市", + "isLeaf": true + }] + }, { + "value": 230400, + "label": "鹤岗市", + "children": [{ + "value": 230402, + "label": "向阳区", + "isLeaf": true + }, { + "value": 230403, + "label": "工农区", + "isLeaf": true + }, { + "value": 230404, + "label": "南山区", + "isLeaf": true + }, { + "value": 230405, + "label": "兴安区", + "isLeaf": true + }, { + "value": 230406, + "label": "东山区", + "isLeaf": true + }, { + "value": 230407, + "label": "兴山区", + "isLeaf": true + }, { + "value": 230421, + "label": "萝北县", + "isLeaf": true + }, { + "value": 230422, + "label": "绥滨县", + "isLeaf": true + }] + }, { + "value": 230500, + "label": "双鸭山市", + "children": [{ + "value": 230502, + "label": "尖山区", + "isLeaf": true + }, { + "value": 230503, + "label": "岭东区", + "isLeaf": true + }, { + "value": 230505, + "label": "四方台区", + "isLeaf": true + }, { + "value": 230506, + "label": "宝山区", + "isLeaf": true + }, { + "value": 230521, + "label": "集贤县", + "isLeaf": true + }, { + "value": 230522, + "label": "友谊县", + "isLeaf": true + }, { + "value": 230523, + "label": "宝清县", + "isLeaf": true + }, { + "value": 230524, + "label": "饶河县", + "isLeaf": true + }] + }, { + "value": 230600, + "label": "大庆市", + "children": [{ + "value": 230602, + "label": "萨尔图区", + "isLeaf": true + }, { + "value": 230603, + "label": "龙凤区", + "isLeaf": true + }, { + "value": 230604, + "label": "让胡路区", + "isLeaf": true + }, { + "value": 230605, + "label": "红岗区", + "isLeaf": true + }, { + "value": 230606, + "label": "大同区", + "isLeaf": true + }, { + "value": 230621, + "label": "肇州县", + "isLeaf": true + }, { + "value": 230622, + "label": "肇源县", + "isLeaf": true + }, { + "value": 230623, + "label": "林甸县", + "isLeaf": true + }, { + "value": 230624, + "label": "杜尔伯特蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 230700, + "label": "伊春市", + "children": [{ + "value": 230702, + "label": "伊春区", + "isLeaf": true + }, { + "value": 230703, + "label": "南岔区", + "isLeaf": true + }, { + "value": 230704, + "label": "友好区", + "isLeaf": true + }, { + "value": 230705, + "label": "西林区", + "isLeaf": true + }, { + "value": 230706, + "label": "翠峦区", + "isLeaf": true + }, { + "value": 230707, + "label": "新青区", + "isLeaf": true + }, { + "value": 230708, + "label": "美溪区", + "isLeaf": true + }, { + "value": 230709, + "label": "金山屯区", + "isLeaf": true + }, { + "value": 230710, + "label": "五营区", + "isLeaf": true + }, { + "value": 230711, + "label": "乌马河区", + "isLeaf": true + }, { + "value": 230712, + "label": "汤旺河区", + "isLeaf": true + }, { + "value": 230713, + "label": "带岭区", + "isLeaf": true + }, { + "value": 230714, + "label": "乌伊岭区", + "isLeaf": true + }, { + "value": 230715, + "label": "红星区", + "isLeaf": true + }, { + "value": 230716, + "label": "上甘岭区", + "isLeaf": true + }, { + "value": 230722, + "label": "嘉荫县", + "isLeaf": true + }, { + "value": 230781, + "label": "铁力市", + "isLeaf": true + }] + }, { + "value": 230800, + "label": "佳木斯市", + "children": [{ + "value": 230803, + "label": "向阳区", + "isLeaf": true + }, { + "value": 230804, + "label": "前进区", + "isLeaf": true + }, { + "value": 230805, + "label": "东风区", + "isLeaf": true + }, { + "value": 230811, + "label": "郊区", + "isLeaf": true + }, { + "value": 230822, + "label": "桦南县", + "isLeaf": true + }, { + "value": 230826, + "label": "桦川县", + "isLeaf": true + }, { + "value": 230828, + "label": "汤原县", + "isLeaf": true + }, { + "value": 230881, + "label": "同江市", + "isLeaf": true + }, { + "value": 230882, + "label": "富锦市", + "isLeaf": true + }, { + "value": 230883, + "label": "抚远市", + "isLeaf": true + }] + }, { + "value": 230900, + "label": "七台河市", + "children": [{ + "value": 230902, + "label": "新兴区", + "isLeaf": true + }, { + "value": 230903, + "label": "桃山区", + "isLeaf": true + }, { + "value": 230904, + "label": "茄子河区", + "isLeaf": true + }, { + "value": 230921, + "label": "勃利县", + "isLeaf": true + }] + }, { + "value": 231000, + "label": "牡丹江市", + "children": [{ + "value": 231002, + "label": "东安区", + "isLeaf": true + }, { + "value": 231003, + "label": "阳明区", + "isLeaf": true + }, { + "value": 231004, + "label": "爱民区", + "isLeaf": true + }, { + "value": 231005, + "label": "西安区", + "isLeaf": true + }, { + "value": 231025, + "label": "林口县", + "isLeaf": true + }, { + "value": 231081, + "label": "绥芬河市", + "isLeaf": true + }, { + "value": 231083, + "label": "海林市", + "isLeaf": true + }, { + "value": 231084, + "label": "宁安市", + "isLeaf": true + }, { + "value": 231085, + "label": "穆棱市", + "isLeaf": true + }, { + "value": 231086, + "label": "东宁市", + "isLeaf": true + }] + }, { + "value": 231100, + "label": "黑河市", + "children": [{ + "value": 231102, + "label": "爱辉区", + "isLeaf": true + }, { + "value": 231121, + "label": "嫩江县", + "isLeaf": true + }, { + "value": 231123, + "label": "逊克县", + "isLeaf": true + }, { + "value": 231124, + "label": "孙吴县", + "isLeaf": true + }, { + "value": 231181, + "label": "北安市", + "isLeaf": true + }, { + "value": 231182, + "label": "五大连池市", + "isLeaf": true + }] + }, { + "value": 231200, + "label": "绥化市", + "children": [{ + "value": 231202, + "label": "北林区", + "isLeaf": true + }, { + "value": 231221, + "label": "望奎县", + "isLeaf": true + }, { + "value": 231222, + "label": "兰西县", + "isLeaf": true + }, { + "value": 231223, + "label": "青冈县", + "isLeaf": true + }, { + "value": 231224, + "label": "庆安县", + "isLeaf": true + }, { + "value": 231225, + "label": "明水县", + "isLeaf": true + }, { + "value": 231226, + "label": "绥棱县", + "isLeaf": true + }, { + "value": 231281, + "label": "安达市", + "isLeaf": true + }, { + "value": 231282, + "label": "肇东市", + "isLeaf": true + }, { + "value": 231283, + "label": "海伦市", + "isLeaf": true + }] + }, { + "value": 232700, + "label": "大兴安岭地区", + "children": [{ + "value": 232721, + "label": "呼玛县", + "isLeaf": true + }, { + "value": 232722, + "label": "塔河县", + "isLeaf": true + }, { + "value": 232723, + "label": "漠河县", + "isLeaf": true + }] + }] +}, { + "value": 310000, + "label": "上海市", + "children": [{ + "value": 310100, + "label": "市辖区", + "children": [{ + "value": 310101, + "label": "黄浦区", + "isLeaf": true + }, { + "value": 310104, + "label": "徐汇区", + "isLeaf": true + }, { + "value": 310105, + "label": "长宁区", + "isLeaf": true + }, { + "value": 310106, + "label": "静安区", + "isLeaf": true + }, { + "value": 310107, + "label": "普陀区", + "isLeaf": true + }, { + "value": 310109, + "label": "虹口区", + "isLeaf": true + }, { + "value": 310110, + "label": "杨浦区", + "isLeaf": true + }, { + "value": 310112, + "label": "闵行区", + "isLeaf": true + }, { + "value": 310113, + "label": "宝山区", + "isLeaf": true + }, { + "value": 310114, + "label": "嘉定区", + "isLeaf": true + }, { + "value": 310115, + "label": "浦东新区", + "isLeaf": true + }, { + "value": 310116, + "label": "金山区", + "isLeaf": true + }, { + "value": 310117, + "label": "松江区", + "isLeaf": true + }, { + "value": 310118, + "label": "青浦区", + "isLeaf": true + }, { + "value": 310120, + "label": "奉贤区", + "isLeaf": true + }, { + "value": 310151, + "label": "崇明区", + "isLeaf": true + }] + }] +}, { + "value": 320000, + "label": "江苏省", + "children": [{ + "value": 320100, + "label": "南京市", + "children": [{ + "value": 320102, + "label": "玄武区", + "isLeaf": true + }, { + "value": 320104, + "label": "秦淮区", + "isLeaf": true + }, { + "value": 320105, + "label": "建邺区", + "isLeaf": true + }, { + "value": 320106, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 320111, + "label": "浦口区", + "isLeaf": true + }, { + "value": 320113, + "label": "栖霞区", + "isLeaf": true + }, { + "value": 320114, + "label": "雨花台区", + "isLeaf": true + }, { + "value": 320115, + "label": "江宁区", + "isLeaf": true + }, { + "value": 320116, + "label": "六合区", + "isLeaf": true + }, { + "value": 320117, + "label": "溧水区", + "isLeaf": true + }, { + "value": 320118, + "label": "高淳区", + "isLeaf": true + }] + }, { + "value": 320200, + "label": "无锡市", + "children": [{ + "value": 320205, + "label": "锡山区", + "isLeaf": true + }, { + "value": 320206, + "label": "惠山区", + "isLeaf": true + }, { + "value": 320211, + "label": "滨湖区", + "isLeaf": true + }, { + "value": 320213, + "label": "梁溪区", + "isLeaf": true + }, { + "value": 320214, + "label": "新吴区", + "isLeaf": true + }, { + "value": 320281, + "label": "江阴市", + "isLeaf": true + }, { + "value": 320282, + "label": "宜兴市", + "isLeaf": true + }] + }, { + "value": 320300, + "label": "徐州市", + "children": [{ + "value": 320302, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 320303, + "label": "云龙区", + "isLeaf": true + }, { + "value": 320305, + "label": "贾汪区", + "isLeaf": true + }, { + "value": 320311, + "label": "泉山区", + "isLeaf": true + }, { + "value": 320312, + "label": "铜山区", + "isLeaf": true + }, { + "value": 320321, + "label": "丰县", + "isLeaf": true + }, { + "value": 320322, + "label": "沛县", + "isLeaf": true + }, { + "value": 320324, + "label": "睢宁县", + "isLeaf": true + }, { + "value": 320381, + "label": "新沂市", + "isLeaf": true + }, { + "value": 320382, + "label": "邳州市", + "isLeaf": true + }] + }, { + "value": 320400, + "label": "常州市", + "children": [{ + "value": 320402, + "label": "天宁区", + "isLeaf": true + }, { + "value": 320404, + "label": "钟楼区", + "isLeaf": true + }, { + "value": 320411, + "label": "新北区", + "isLeaf": true + }, { + "value": 320412, + "label": "武进区", + "isLeaf": true + }, { + "value": 320413, + "label": "金坛区", + "isLeaf": true + }, { + "value": 320481, + "label": "溧阳市", + "isLeaf": true + }] + }, { + "value": 320500, + "label": "苏州市", + "children": [{ + "value": 320505, + "label": "虎丘区", + "isLeaf": true + }, { + "value": 320506, + "label": "吴中区", + "isLeaf": true + }, { + "value": 320507, + "label": "相城区", + "isLeaf": true + }, { + "value": 320508, + "label": "姑苏区", + "isLeaf": true + }, { + "value": 320509, + "label": "吴江区", + "isLeaf": true + }, { + "value": 320581, + "label": "常熟市", + "isLeaf": true + }, { + "value": 320582, + "label": "张家港市", + "isLeaf": true + }, { + "value": 320583, + "label": "昆山市", + "isLeaf": true + }, { + "value": 320585, + "label": "太仓市", + "isLeaf": true + }] + }, { + "value": 320600, + "label": "南通市", + "children": [{ + "value": 320602, + "label": "崇川区", + "isLeaf": true + }, { + "value": 320611, + "label": "港闸区", + "isLeaf": true + }, { + "value": 320612, + "label": "通州区", + "isLeaf": true + }, { + "value": 320621, + "label": "海安县", + "isLeaf": true + }, { + "value": 320623, + "label": "如东县", + "isLeaf": true + }, { + "value": 320681, + "label": "启东市", + "isLeaf": true + }, { + "value": 320682, + "label": "如皋市", + "isLeaf": true + }, { + "value": 320684, + "label": "海门市", + "isLeaf": true + }] + }, { + "value": 320700, + "label": "连云港市", + "children": [{ + "value": 320703, + "label": "连云区", + "isLeaf": true + }, { + "value": 320706, + "label": "海州区", + "isLeaf": true + }, { + "value": 320707, + "label": "赣榆区", + "isLeaf": true + }, { + "value": 320722, + "label": "东海县", + "isLeaf": true + }, { + "value": 320723, + "label": "灌云县", + "isLeaf": true + }, { + "value": 320724, + "label": "灌南县", + "isLeaf": true + }] + }, { + "value": 320800, + "label": "淮安市", + "children": [{ + "value": 320803, + "label": "淮安区", + "isLeaf": true + }, { + "value": 320804, + "label": "淮阴区", + "isLeaf": true + }, { + "value": 320812, + "label": "清江浦区", + "isLeaf": true + }, { + "value": 320813, + "label": "洪泽区", + "isLeaf": true + }, { + "value": 320826, + "label": "涟水县", + "isLeaf": true + }, { + "value": 320830, + "label": "盱眙县", + "isLeaf": true + }, { + "value": 320831, + "label": "金湖县", + "isLeaf": true + }] + }, { + "value": 320900, + "label": "盐城市", + "children": [{ + "value": 320902, + "label": "亭湖区", + "isLeaf": true + }, { + "value": 320903, + "label": "盐都区", + "isLeaf": true + }, { + "value": 320904, + "label": "大丰区", + "isLeaf": true + }, { + "value": 320921, + "label": "响水县", + "isLeaf": true + }, { + "value": 320922, + "label": "滨海县", + "isLeaf": true + }, { + "value": 320923, + "label": "阜宁县", + "isLeaf": true + }, { + "value": 320924, + "label": "射阳县", + "isLeaf": true + }, { + "value": 320925, + "label": "建湖县", + "isLeaf": true + }, { + "value": 320981, + "label": "东台市", + "isLeaf": true + }] + }, { + "value": 321000, + "label": "扬州市", + "children": [{ + "value": 321002, + "label": "广陵区", + "isLeaf": true + }, { + "value": 321003, + "label": "邗江区", + "isLeaf": true + }, { + "value": 321012, + "label": "江都区", + "isLeaf": true + }, { + "value": 321023, + "label": "宝应县", + "isLeaf": true + }, { + "value": 321081, + "label": "仪征市", + "isLeaf": true + }, { + "value": 321084, + "label": "高邮市", + "isLeaf": true + }] + }, { + "value": 321100, + "label": "镇江市", + "children": [{ + "value": 321102, + "label": "京口区", + "isLeaf": true + }, { + "value": 321111, + "label": "润州区", + "isLeaf": true + }, { + "value": 321112, + "label": "丹徒区", + "isLeaf": true + }, { + "value": 321181, + "label": "丹阳市", + "isLeaf": true + }, { + "value": 321182, + "label": "扬中市", + "isLeaf": true + }, { + "value": 321183, + "label": "句容市", + "isLeaf": true + }] + }, { + "value": 321200, + "label": "泰州市", + "children": [{ + "value": 321202, + "label": "海陵区", + "isLeaf": true + }, { + "value": 321203, + "label": "高港区", + "isLeaf": true + }, { + "value": 321204, + "label": "姜堰区", + "isLeaf": true + }, { + "value": 321281, + "label": "兴化市", + "isLeaf": true + }, { + "value": 321282, + "label": "靖江市", + "isLeaf": true + }, { + "value": 321283, + "label": "泰兴市", + "isLeaf": true + }] + }, { + "value": 321300, + "label": "宿迁市", + "children": [{ + "value": 321302, + "label": "宿城区", + "isLeaf": true + }, { + "value": 321311, + "label": "宿豫区", + "isLeaf": true + }, { + "value": 321322, + "label": "沭阳县", + "isLeaf": true + }, { + "value": 321323, + "label": "泗阳县", + "isLeaf": true + }, { + "value": 321324, + "label": "泗洪县", + "isLeaf": true + }] + }] +}, { + "value": 330000, + "label": "浙江省", + "children": [{ + "value": 330100, + "label": "杭州市", + "children": [{ + "value": 330102, + "label": "上城区", + "isLeaf": true + }, { + "value": 330103, + "label": "下城区", + "isLeaf": true + }, { + "value": 330104, + "label": "江干区", + "isLeaf": true + }, { + "value": 330105, + "label": "拱墅区", + "isLeaf": true + }, { + "value": 330106, + "label": "西湖区", + "isLeaf": true + }, { + "value": 330108, + "label": "滨江区", + "isLeaf": true + }, { + "value": 330109, + "label": "萧山区", + "isLeaf": true + }, { + "value": 330110, + "label": "余杭区", + "isLeaf": true + }, { + "value": 330111, + "label": "富阳区", + "isLeaf": true + }, { + "value": 330122, + "label": "桐庐县", + "isLeaf": true + }, { + "value": 330127, + "label": "淳安县", + "isLeaf": true + }, { + "value": 330182, + "label": "建德市", + "isLeaf": true + }, { + "value": 330185, + "label": "临安市", + "isLeaf": true + }] + }, { + "value": 330200, + "label": "宁波市", + "children": [{ + "value": 330203, + "label": "海曙区", + "isLeaf": true + }, { + "value": 330204, + "label": "江东区", + "isLeaf": true + }, { + "value": 330205, + "label": "江北区", + "isLeaf": true + }, { + "value": 330206, + "label": "北仑区", + "isLeaf": true + }, { + "value": 330211, + "label": "镇海区", + "isLeaf": true + }, { + "value": 330212, + "label": "鄞州区", + "isLeaf": true + }, { + "value": 330225, + "label": "象山县", + "isLeaf": true + }, { + "value": 330226, + "label": "宁海县", + "isLeaf": true + }, { + "value": 330281, + "label": "余姚市", + "isLeaf": true + }, { + "value": 330282, + "label": "慈溪市", + "isLeaf": true + }, { + "value": 330283, + "label": "奉化市", + "isLeaf": true + }] + }, { + "value": 330300, + "label": "温州市", + "children": [{ + "value": 330302, + "label": "鹿城区", + "isLeaf": true + }, { + "value": 330303, + "label": "龙湾区", + "isLeaf": true + }, { + "value": 330304, + "label": "瓯海区", + "isLeaf": true + }, { + "value": 330305, + "label": "洞头区", + "isLeaf": true + }, { + "value": 330324, + "label": "永嘉县", + "isLeaf": true + }, { + "value": 330326, + "label": "平阳县", + "isLeaf": true + }, { + "value": 330327, + "label": "苍南县", + "isLeaf": true + }, { + "value": 330328, + "label": "文成县", + "isLeaf": true + }, { + "value": 330329, + "label": "泰顺县", + "isLeaf": true + }, { + "value": 330381, + "label": "瑞安市", + "isLeaf": true + }, { + "value": 330382, + "label": "乐清市", + "isLeaf": true + }] + }, { + "value": 330400, + "label": "嘉兴市", + "children": [{ + "value": 330402, + "label": "南湖区", + "isLeaf": true + }, { + "value": 330411, + "label": "秀洲区", + "isLeaf": true + }, { + "value": 330421, + "label": "嘉善县", + "isLeaf": true + }, { + "value": 330424, + "label": "海盐县", + "isLeaf": true + }, { + "value": 330481, + "label": "海宁市", + "isLeaf": true + }, { + "value": 330482, + "label": "平湖市", + "isLeaf": true + }, { + "value": 330483, + "label": "桐乡市", + "isLeaf": true + }] + }, { + "value": 330500, + "label": "湖州市", + "children": [{ + "value": 330502, + "label": "吴兴区", + "isLeaf": true + }, { + "value": 330503, + "label": "南浔区", + "isLeaf": true + }, { + "value": 330521, + "label": "德清县", + "isLeaf": true + }, { + "value": 330522, + "label": "长兴县", + "isLeaf": true + }, { + "value": 330523, + "label": "安吉县", + "isLeaf": true + }] + }, { + "value": 330600, + "label": "绍兴市", + "children": [{ + "value": 330602, + "label": "越城区", + "isLeaf": true + }, { + "value": 330603, + "label": "柯桥区", + "isLeaf": true + }, { + "value": 330604, + "label": "上虞区", + "isLeaf": true + }, { + "value": 330624, + "label": "新昌县", + "isLeaf": true + }, { + "value": 330681, + "label": "诸暨市", + "isLeaf": true + }, { + "value": 330683, + "label": "嵊州市", + "isLeaf": true + }] + }, { + "value": 330700, + "label": "金华市", + "children": [{ + "value": 330702, + "label": "婺城区", + "isLeaf": true + }, { + "value": 330703, + "label": "金东区", + "isLeaf": true + }, { + "value": 330723, + "label": "武义县", + "isLeaf": true + }, { + "value": 330726, + "label": "浦江县", + "isLeaf": true + }, { + "value": 330727, + "label": "磐安县", + "isLeaf": true + }, { + "value": 330781, + "label": "兰溪市", + "isLeaf": true + }, { + "value": 330782, + "label": "义乌市", + "isLeaf": true + }, { + "value": 330783, + "label": "东阳市", + "isLeaf": true + }, { + "value": 330784, + "label": "永康市", + "isLeaf": true + }] + }, { + "value": 330800, + "label": "衢州市", + "children": [{ + "value": 330802, + "label": "柯城区", + "isLeaf": true + }, { + "value": 330803, + "label": "衢江区", + "isLeaf": true + }, { + "value": 330822, + "label": "常山县", + "isLeaf": true + }, { + "value": 330824, + "label": "开化县", + "isLeaf": true + }, { + "value": 330825, + "label": "龙游县", + "isLeaf": true + }, { + "value": 330881, + "label": "江山市", + "isLeaf": true + }] + }, { + "value": 330900, + "label": "舟山市", + "children": [{ + "value": 330902, + "label": "定海区", + "isLeaf": true + }, { + "value": 330903, + "label": "普陀区", + "isLeaf": true + }, { + "value": 330921, + "label": "岱山县", + "isLeaf": true + }, { + "value": 330922, + "label": "嵊泗县", + "isLeaf": true + }] + }, { + "value": 331000, + "label": "台州市", + "children": [{ + "value": 331002, + "label": "椒江区", + "isLeaf": true + }, { + "value": 331003, + "label": "黄岩区", + "isLeaf": true + }, { + "value": 331004, + "label": "路桥区", + "isLeaf": true + }, { + "value": 331021, + "label": "玉环县", + "isLeaf": true + }, { + "value": 331022, + "label": "三门县", + "isLeaf": true + }, { + "value": 331023, + "label": "天台县", + "isLeaf": true + }, { + "value": 331024, + "label": "仙居县", + "isLeaf": true + }, { + "value": 331081, + "label": "温岭市", + "isLeaf": true + }, { + "value": 331082, + "label": "临海市", + "isLeaf": true + }] + }, { + "value": 331100, + "label": "丽水市", + "children": [{ + "value": 331102, + "label": "莲都区", + "isLeaf": true + }, { + "value": 331121, + "label": "青田县", + "isLeaf": true + }, { + "value": 331122, + "label": "缙云县", + "isLeaf": true + }, { + "value": 331123, + "label": "遂昌县", + "isLeaf": true + }, { + "value": 331124, + "label": "松阳县", + "isLeaf": true + }, { + "value": 331125, + "label": "云和县", + "isLeaf": true + }, { + "value": 331126, + "label": "庆元县", + "isLeaf": true + }, { + "value": 331127, + "label": "景宁畲族自治县", + "isLeaf": true + }, { + "value": 331181, + "label": "龙泉市", + "isLeaf": true + }] + }] +}, { + "value": 340000, + "label": "安徽省", + "children": [{ + "value": 340100, + "label": "合肥市", + "children": [{ + "value": 340102, + "label": "瑶海区", + "isLeaf": true + }, { + "value": 340103, + "label": "庐阳区", + "isLeaf": true + }, { + "value": 340104, + "label": "蜀山区", + "isLeaf": true + }, { + "value": 340111, + "label": "包河区", + "isLeaf": true + }, { + "value": 340121, + "label": "长丰县", + "isLeaf": true + }, { + "value": 340122, + "label": "肥东县", + "isLeaf": true + }, { + "value": 340123, + "label": "肥西县", + "isLeaf": true + }, { + "value": 340124, + "label": "庐江县", + "isLeaf": true + }, { + "value": 340181, + "label": "巢湖市", + "isLeaf": true + }] + }, { + "value": 340200, + "label": "芜湖市", + "children": [{ + "value": 340202, + "label": "镜湖区", + "isLeaf": true + }, { + "value": 340203, + "label": "弋江区", + "isLeaf": true + }, { + "value": 340207, + "label": "鸠江区", + "isLeaf": true + }, { + "value": 340208, + "label": "三山区", + "isLeaf": true + }, { + "value": 340221, + "label": "芜湖县", + "isLeaf": true + }, { + "value": 340222, + "label": "繁昌县", + "isLeaf": true + }, { + "value": 340223, + "label": "南陵县", + "isLeaf": true + }, { + "value": 340225, + "label": "无为县", + "isLeaf": true + }] + }, { + "value": 340300, + "label": "蚌埠市", + "children": [{ + "value": 340302, + "label": "龙子湖区", + "isLeaf": true + }, { + "value": 340303, + "label": "蚌山区", + "isLeaf": true + }, { + "value": 340304, + "label": "禹会区", + "isLeaf": true + }, { + "value": 340311, + "label": "淮上区", + "isLeaf": true + }, { + "value": 340321, + "label": "怀远县", + "isLeaf": true + }, { + "value": 340322, + "label": "五河县", + "isLeaf": true + }, { + "value": 340323, + "label": "固镇县", + "isLeaf": true + }] + }, { + "value": 340400, + "label": "淮南市", + "children": [{ + "value": 340402, + "label": "大通区", + "isLeaf": true + }, { + "value": 340403, + "label": "田家庵区", + "isLeaf": true + }, { + "value": 340404, + "label": "谢家集区", + "isLeaf": true + }, { + "value": 340405, + "label": "八公山区", + "isLeaf": true + }, { + "value": 340406, + "label": "潘集区", + "isLeaf": true + }, { + "value": 340421, + "label": "凤台县", + "isLeaf": true + }, { + "value": 340422, + "label": "寿县", + "isLeaf": true + }] + }, { + "value": 340500, + "label": "马鞍山市", + "children": [{ + "value": 340503, + "label": "花山区", + "isLeaf": true + }, { + "value": 340504, + "label": "雨山区", + "isLeaf": true + }, { + "value": 340506, + "label": "博望区", + "isLeaf": true + }, { + "value": 340521, + "label": "当涂县", + "isLeaf": true + }, { + "value": 340522, + "label": "含山县", + "isLeaf": true + }, { + "value": 340523, + "label": "和县", + "isLeaf": true + }] + }, { + "value": 340600, + "label": "淮北市", + "children": [{ + "value": 340602, + "label": "杜集区", + "isLeaf": true + }, { + "value": 340603, + "label": "相山区", + "isLeaf": true + }, { + "value": 340604, + "label": "烈山区", + "isLeaf": true + }, { + "value": 340621, + "label": "濉溪县", + "isLeaf": true + }] + }, { + "value": 340700, + "label": "铜陵市", + "children": [{ + "value": 340705, + "label": "铜官区", + "isLeaf": true + }, { + "value": 340706, + "label": "义安区", + "isLeaf": true + }, { + "value": 340711, + "label": "郊区", + "isLeaf": true + }, { + "value": 340722, + "label": "枞阳县", + "isLeaf": true + }] + }, { + "value": 340800, + "label": "安庆市", + "children": [{ + "value": 340802, + "label": "迎江区", + "isLeaf": true + }, { + "value": 340803, + "label": "大观区", + "isLeaf": true + }, { + "value": 340811, + "label": "宜秀区", + "isLeaf": true + }, { + "value": 340822, + "label": "怀宁县", + "isLeaf": true + }, { + "value": 340824, + "label": "潜山县", + "isLeaf": true + }, { + "value": 340825, + "label": "太湖县", + "isLeaf": true + }, { + "value": 340826, + "label": "宿松县", + "isLeaf": true + }, { + "value": 340827, + "label": "望江县", + "isLeaf": true + }, { + "value": 340828, + "label": "岳西县", + "isLeaf": true + }, { + "value": 340881, + "label": "桐城市", + "isLeaf": true + }] + }, { + "value": 341000, + "label": "黄山市", + "children": [{ + "value": 341002, + "label": "屯溪区", + "isLeaf": true + }, { + "value": 341003, + "label": "黄山区", + "isLeaf": true + }, { + "value": 341004, + "label": "徽州区", + "isLeaf": true + }, { + "value": 341021, + "label": "歙县", + "isLeaf": true + }, { + "value": 341022, + "label": "休宁县", + "isLeaf": true + }, { + "value": 341023, + "label": "黟县", + "isLeaf": true + }, { + "value": 341024, + "label": "祁门县", + "isLeaf": true + }] + }, { + "value": 341100, + "label": "滁州市", + "children": [{ + "value": 341102, + "label": "琅琊区", + "isLeaf": true + }, { + "value": 341103, + "label": "南谯区", + "isLeaf": true + }, { + "value": 341122, + "label": "来安县", + "isLeaf": true + }, { + "value": 341124, + "label": "全椒县", + "isLeaf": true + }, { + "value": 341125, + "label": "定远县", + "isLeaf": true + }, { + "value": 341126, + "label": "凤阳县", + "isLeaf": true + }, { + "value": 341181, + "label": "天长市", + "isLeaf": true + }, { + "value": 341182, + "label": "明光市", + "isLeaf": true + }] + }, { + "value": 341200, + "label": "阜阳市", + "children": [{ + "value": 341202, + "label": "颍州区", + "isLeaf": true + }, { + "value": 341203, + "label": "颍东区", + "isLeaf": true + }, { + "value": 341204, + "label": "颍泉区", + "isLeaf": true + }, { + "value": 341221, + "label": "临泉县", + "isLeaf": true + }, { + "value": 341222, + "label": "太和县", + "isLeaf": true + }, { + "value": 341225, + "label": "阜南县", + "isLeaf": true + }, { + "value": 341226, + "label": "颍上县", + "isLeaf": true + }, { + "value": 341282, + "label": "界首市", + "isLeaf": true + }] + }, { + "value": 341300, + "label": "宿州市", + "children": [{ + "value": 341302, + "label": "埇桥区", + "isLeaf": true + }, { + "value": 341321, + "label": "砀山县", + "isLeaf": true + }, { + "value": 341322, + "label": "萧县", + "isLeaf": true + }, { + "value": 341323, + "label": "灵璧县", + "isLeaf": true + }, { + "value": 341324, + "label": "泗县", + "isLeaf": true + }] + }, { + "value": 341500, + "label": "六安市", + "children": [{ + "value": 341502, + "label": "金安区", + "isLeaf": true + }, { + "value": 341503, + "label": "裕安区", + "isLeaf": true + }, { + "value": 341504, + "label": "叶集区", + "isLeaf": true + }, { + "value": 341522, + "label": "霍邱县", + "isLeaf": true + }, { + "value": 341523, + "label": "舒城县", + "isLeaf": true + }, { + "value": 341524, + "label": "金寨县", + "isLeaf": true + }, { + "value": 341525, + "label": "霍山县", + "isLeaf": true + }] + }, { + "value": 341600, + "label": "亳州市", + "children": [{ + "value": 341602, + "label": "谯城区", + "isLeaf": true + }, { + "value": 341621, + "label": "涡阳县", + "isLeaf": true + }, { + "value": 341622, + "label": "蒙城县", + "isLeaf": true + }, { + "value": 341623, + "label": "利辛县", + "isLeaf": true + }] + }, { + "value": 341700, + "label": "池州市", + "children": [{ + "value": 341702, + "label": "贵池区", + "isLeaf": true + }, { + "value": 341721, + "label": "东至县", + "isLeaf": true + }, { + "value": 341722, + "label": "石台县", + "isLeaf": true + }, { + "value": 341723, + "label": "青阳县", + "isLeaf": true + }] + }, { + "value": 341800, + "label": "宣城市", + "children": [{ + "value": 341802, + "label": "宣州区", + "isLeaf": true + }, { + "value": 341821, + "label": "郎溪县", + "isLeaf": true + }, { + "value": 341822, + "label": "广德县", + "isLeaf": true + }, { + "value": 341823, + "label": "泾县", + "isLeaf": true + }, { + "value": 341824, + "label": "绩溪县", + "isLeaf": true + }, { + "value": 341825, + "label": "旌德县", + "isLeaf": true + }, { + "value": 341881, + "label": "宁国市", + "isLeaf": true + }] + }] +}, { + "value": 350000, + "label": "福建省", + "children": [{ + "value": 350100, + "label": "福州市", + "children": [{ + "value": 350102, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 350103, + "label": "台江区", + "isLeaf": true + }, { + "value": 350104, + "label": "仓山区", + "isLeaf": true + }, { + "value": 350105, + "label": "马尾区", + "isLeaf": true + }, { + "value": 350111, + "label": "晋安区", + "isLeaf": true + }, { + "value": 350121, + "label": "闽侯县", + "isLeaf": true + }, { + "value": 350122, + "label": "连江县", + "isLeaf": true + }, { + "value": 350123, + "label": "罗源县", + "isLeaf": true + }, { + "value": 350124, + "label": "闽清县", + "isLeaf": true + }, { + "value": 350125, + "label": "永泰县", + "isLeaf": true + }, { + "value": 350128, + "label": "平潭县", + "isLeaf": true + }, { + "value": 350181, + "label": "福清市", + "isLeaf": true + }, { + "value": 350182, + "label": "长乐市", + "isLeaf": true + }] + }, { + "value": 350200, + "label": "厦门市", + "children": [{ + "value": 350203, + "label": "思明区", + "isLeaf": true + }, { + "value": 350205, + "label": "海沧区", + "isLeaf": true + }, { + "value": 350206, + "label": "湖里区", + "isLeaf": true + }, { + "value": 350211, + "label": "集美区", + "isLeaf": true + }, { + "value": 350212, + "label": "同安区", + "isLeaf": true + }, { + "value": 350213, + "label": "翔安区", + "isLeaf": true + }] + }, { + "value": 350300, + "label": "莆田市", + "children": [{ + "value": 350302, + "label": "城厢区", + "isLeaf": true + }, { + "value": 350303, + "label": "涵江区", + "isLeaf": true + }, { + "value": 350304, + "label": "荔城区", + "isLeaf": true + }, { + "value": 350305, + "label": "秀屿区", + "isLeaf": true + }, { + "value": 350322, + "label": "仙游县", + "isLeaf": true + }] + }, { + "value": 350400, + "label": "三明市", + "children": [{ + "value": 350402, + "label": "梅列区", + "isLeaf": true + }, { + "value": 350403, + "label": "三元区", + "isLeaf": true + }, { + "value": 350421, + "label": "明溪县", + "isLeaf": true + }, { + "value": 350423, + "label": "清流县", + "isLeaf": true + }, { + "value": 350424, + "label": "宁化县", + "isLeaf": true + }, { + "value": 350425, + "label": "大田县", + "isLeaf": true + }, { + "value": 350426, + "label": "尤溪县", + "isLeaf": true + }, { + "value": 350427, + "label": "沙县", + "isLeaf": true + }, { + "value": 350428, + "label": "将乐县", + "isLeaf": true + }, { + "value": 350429, + "label": "泰宁县", + "isLeaf": true + }, { + "value": 350430, + "label": "建宁县", + "isLeaf": true + }, { + "value": 350481, + "label": "永安市", + "isLeaf": true + }] + }, { + "value": 350500, + "label": "泉州市", + "children": [{ + "value": 350502, + "label": "鲤城区", + "isLeaf": true + }, { + "value": 350503, + "label": "丰泽区", + "isLeaf": true + }, { + "value": 350504, + "label": "洛江区", + "isLeaf": true + }, { + "value": 350505, + "label": "泉港区", + "isLeaf": true + }, { + "value": 350521, + "label": "惠安县", + "isLeaf": true + }, { + "value": 350524, + "label": "安溪县", + "isLeaf": true + }, { + "value": 350525, + "label": "永春县", + "isLeaf": true + }, { + "value": 350526, + "label": "德化县", + "isLeaf": true + }, { + "value": 350527, + "label": "金门县", + "isLeaf": true + }, { + "value": 350581, + "label": "石狮市", + "isLeaf": true + }, { + "value": 350582, + "label": "晋江市", + "isLeaf": true + }, { + "value": 350583, + "label": "南安市", + "isLeaf": true + }] + }, { + "value": 350600, + "label": "漳州市", + "children": [{ + "value": 350602, + "label": "芗城区", + "isLeaf": true + }, { + "value": 350603, + "label": "龙文区", + "isLeaf": true + }, { + "value": 350622, + "label": "云霄县", + "isLeaf": true + }, { + "value": 350623, + "label": "漳浦县", + "isLeaf": true + }, { + "value": 350624, + "label": "诏安县", + "isLeaf": true + }, { + "value": 350625, + "label": "长泰县", + "isLeaf": true + }, { + "value": 350626, + "label": "东山县", + "isLeaf": true + }, { + "value": 350627, + "label": "南靖县", + "isLeaf": true + }, { + "value": 350628, + "label": "平和县", + "isLeaf": true + }, { + "value": 350629, + "label": "华安县", + "isLeaf": true + }, { + "value": 350681, + "label": "龙海市", + "isLeaf": true + }] + }, { + "value": 350700, + "label": "南平市", + "children": [{ + "value": 350702, + "label": "延平区", + "isLeaf": true + }, { + "value": 350703, + "label": "建阳区", + "isLeaf": true + }, { + "value": 350721, + "label": "顺昌县", + "isLeaf": true + }, { + "value": 350722, + "label": "浦城县", + "isLeaf": true + }, { + "value": 350723, + "label": "光泽县", + "isLeaf": true + }, { + "value": 350724, + "label": "松溪县", + "isLeaf": true + }, { + "value": 350725, + "label": "政和县", + "isLeaf": true + }, { + "value": 350781, + "label": "邵武市", + "isLeaf": true + }, { + "value": 350782, + "label": "武夷山市", + "isLeaf": true + }, { + "value": 350783, + "label": "建瓯市", + "isLeaf": true + }] + }, { + "value": 350800, + "label": "龙岩市", + "children": [{ + "value": 350802, + "label": "新罗区", + "isLeaf": true + }, { + "value": 350803, + "label": "永定区", + "isLeaf": true + }, { + "value": 350821, + "label": "长汀县", + "isLeaf": true + }, { + "value": 350823, + "label": "上杭县", + "isLeaf": true + }, { + "value": 350824, + "label": "武平县", + "isLeaf": true + }, { + "value": 350825, + "label": "连城县", + "isLeaf": true + }, { + "value": 350881, + "label": "漳平市", + "isLeaf": true + }] + }, { + "value": 350900, + "label": "宁德市", + "children": [{ + "value": 350902, + "label": "蕉城区", + "isLeaf": true + }, { + "value": 350921, + "label": "霞浦县", + "isLeaf": true + }, { + "value": 350922, + "label": "古田县", + "isLeaf": true + }, { + "value": 350923, + "label": "屏南县", + "isLeaf": true + }, { + "value": 350924, + "label": "寿宁县", + "isLeaf": true + }, { + "value": 350925, + "label": "周宁县", + "isLeaf": true + }, { + "value": 350926, + "label": "柘荣县", + "isLeaf": true + }, { + "value": 350981, + "label": "福安市", + "isLeaf": true + }, { + "value": 350982, + "label": "福鼎市", + "isLeaf": true + }] + }] +}, { + "value": 360000, + "label": "江西省", + "children": [{ + "value": 360100, + "label": "南昌市", + "children": [{ + "value": 360102, + "label": "东湖区", + "isLeaf": true + }, { + "value": 360103, + "label": "西湖区", + "isLeaf": true + }, { + "value": 360104, + "label": "青云谱区", + "isLeaf": true + }, { + "value": 360105, + "label": "湾里区", + "isLeaf": true + }, { + "value": 360111, + "label": "青山湖区", + "isLeaf": true + }, { + "value": 360112, + "label": "新建区", + "isLeaf": true + }, { + "value": 360121, + "label": "南昌县", + "isLeaf": true + }, { + "value": 360123, + "label": "安义县", + "isLeaf": true + }, { + "value": 360124, + "label": "进贤县", + "isLeaf": true + }] + }, { + "value": 360200, + "label": "景德镇市", + "children": [{ + "value": 360202, + "label": "昌江区", + "isLeaf": true + }, { + "value": 360203, + "label": "珠山区", + "isLeaf": true + }, { + "value": 360222, + "label": "浮梁县", + "isLeaf": true + }, { + "value": 360281, + "label": "乐平市", + "isLeaf": true + }] + }, { + "value": 360300, + "label": "萍乡市", + "children": [{ + "value": 360302, + "label": "安源区", + "isLeaf": true + }, { + "value": 360313, + "label": "湘东区", + "isLeaf": true + }, { + "value": 360321, + "label": "莲花县", + "isLeaf": true + }, { + "value": 360322, + "label": "上栗县", + "isLeaf": true + }, { + "value": 360323, + "label": "芦溪县", + "isLeaf": true + }] + }, { + "value": 360400, + "label": "九江市", + "children": [{ + "value": 360402, + "label": "濂溪区", + "isLeaf": true + }, { + "value": 360403, + "label": "浔阳区", + "isLeaf": true + }, { + "value": 360421, + "label": "九江县", + "isLeaf": true + }, { + "value": 360423, + "label": "武宁县", + "isLeaf": true + }, { + "value": 360424, + "label": "修水县", + "isLeaf": true + }, { + "value": 360425, + "label": "永修县", + "isLeaf": true + }, { + "value": 360426, + "label": "德安县", + "isLeaf": true + }, { + "value": 360428, + "label": "都昌县", + "isLeaf": true + }, { + "value": 360429, + "label": "湖口县", + "isLeaf": true + }, { + "value": 360430, + "label": "彭泽县", + "isLeaf": true + }, { + "value": 360481, + "label": "瑞昌市", + "isLeaf": true + }, { + "value": 360482, + "label": "共青城市", + "isLeaf": true + }, { + "value": 360483, + "label": "庐山市", + "isLeaf": true + }] + }, { + "value": 360500, + "label": "新余市", + "children": [{ + "value": 360502, + "label": "渝水区", + "isLeaf": true + }, { + "value": 360521, + "label": "分宜县", + "isLeaf": true + }] + }, { + "value": 360600, + "label": "鹰潭市", + "children": [{ + "value": 360602, + "label": "月湖区", + "isLeaf": true + }, { + "value": 360622, + "label": "余江县", + "isLeaf": true + }, { + "value": 360681, + "label": "贵溪市", + "isLeaf": true + }] + }, { + "value": 360700, + "label": "赣州市", + "children": [{ + "value": 360702, + "label": "章贡区", + "isLeaf": true + }, { + "value": 360703, + "label": "南康区", + "isLeaf": true + }, { + "value": 360721, + "label": "赣县", + "isLeaf": true + }, { + "value": 360722, + "label": "信丰县", + "isLeaf": true + }, { + "value": 360723, + "label": "大余县", + "isLeaf": true + }, { + "value": 360724, + "label": "上犹县", + "isLeaf": true + }, { + "value": 360725, + "label": "崇义县", + "isLeaf": true + }, { + "value": 360726, + "label": "安远县", + "isLeaf": true + }, { + "value": 360727, + "label": "龙南县", + "isLeaf": true + }, { + "value": 360728, + "label": "定南县", + "isLeaf": true + }, { + "value": 360729, + "label": "全南县", + "isLeaf": true + }, { + "value": 360730, + "label": "宁都县", + "isLeaf": true + }, { + "value": 360731, + "label": "于都县", + "isLeaf": true + }, { + "value": 360732, + "label": "兴国县", + "isLeaf": true + }, { + "value": 360733, + "label": "会昌县", + "isLeaf": true + }, { + "value": 360734, + "label": "寻乌县", + "isLeaf": true + }, { + "value": 360735, + "label": "石城县", + "isLeaf": true + }, { + "value": 360781, + "label": "瑞金市", + "isLeaf": true + }] + }, { + "value": 360800, + "label": "吉安市", + "children": [{ + "value": 360802, + "label": "吉州区", + "isLeaf": true + }, { + "value": 360803, + "label": "青原区", + "isLeaf": true + }, { + "value": 360821, + "label": "吉安县", + "isLeaf": true + }, { + "value": 360822, + "label": "吉水县", + "isLeaf": true + }, { + "value": 360823, + "label": "峡江县", + "isLeaf": true + }, { + "value": 360824, + "label": "新干县", + "isLeaf": true + }, { + "value": 360825, + "label": "永丰县", + "isLeaf": true + }, { + "value": 360826, + "label": "泰和县", + "isLeaf": true + }, { + "value": 360827, + "label": "遂川县", + "isLeaf": true + }, { + "value": 360828, + "label": "万安县", + "isLeaf": true + }, { + "value": 360829, + "label": "安福县", + "isLeaf": true + }, { + "value": 360830, + "label": "永新县", + "isLeaf": true + }, { + "value": 360881, + "label": "井冈山市", + "isLeaf": true + }] + }, { + "value": 360900, + "label": "宜春市", + "children": [{ + "value": 360902, + "label": "袁州区", + "isLeaf": true + }, { + "value": 360921, + "label": "奉新县", + "isLeaf": true + }, { + "value": 360922, + "label": "万载县", + "isLeaf": true + }, { + "value": 360923, + "label": "上高县", + "isLeaf": true + }, { + "value": 360924, + "label": "宜丰县", + "isLeaf": true + }, { + "value": 360925, + "label": "靖安县", + "isLeaf": true + }, { + "value": 360926, + "label": "铜鼓县", + "isLeaf": true + }, { + "value": 360981, + "label": "丰城市", + "isLeaf": true + }, { + "value": 360982, + "label": "樟树市", + "isLeaf": true + }, { + "value": 360983, + "label": "高安市", + "isLeaf": true + }] + }, { + "value": 361000, + "label": "抚州市", + "children": [{ + "value": 361002, + "label": "临川区", + "isLeaf": true + }, { + "value": 361021, + "label": "南城县", + "isLeaf": true + }, { + "value": 361022, + "label": "黎川县", + "isLeaf": true + }, { + "value": 361023, + "label": "南丰县", + "isLeaf": true + }, { + "value": 361024, + "label": "崇仁县", + "isLeaf": true + }, { + "value": 361025, + "label": "乐安县", + "isLeaf": true + }, { + "value": 361026, + "label": "宜黄县", + "isLeaf": true + }, { + "value": 361027, + "label": "金溪县", + "isLeaf": true + }, { + "value": 361028, + "label": "资溪县", + "isLeaf": true + }, { + "value": 361029, + "label": "东乡县", + "isLeaf": true + }, { + "value": 361030, + "label": "广昌县", + "isLeaf": true + }] + }, { + "value": 361100, + "label": "上饶市", + "children": [{ + "value": 361102, + "label": "信州区", + "isLeaf": true + }, { + "value": 361103, + "label": "广丰区", + "isLeaf": true + }, { + "value": 361121, + "label": "上饶县", + "isLeaf": true + }, { + "value": 361123, + "label": "玉山县", + "isLeaf": true + }, { + "value": 361124, + "label": "铅山县", + "isLeaf": true + }, { + "value": 361125, + "label": "横峰县", + "isLeaf": true + }, { + "value": 361126, + "label": "弋阳县", + "isLeaf": true + }, { + "value": 361127, + "label": "余干县", + "isLeaf": true + }, { + "value": 361128, + "label": "鄱阳县", + "isLeaf": true + }, { + "value": 361129, + "label": "万年县", + "isLeaf": true + }, { + "value": 361130, + "label": "婺源县", + "isLeaf": true + }, { + "value": 361181, + "label": "德兴市", + "isLeaf": true + }] + }] +}, { + "value": 370000, + "label": "山东省", + "children": [{ + "value": 370100, + "label": "济南市", + "children": [{ + "value": 370102, + "label": "历下区", + "isLeaf": true + }, { + "value": 370103, + "label": "市中区", + "isLeaf": true + }, { + "value": 370104, + "label": "槐荫区", + "isLeaf": true + }, { + "value": 370105, + "label": "天桥区", + "isLeaf": true + }, { + "value": 370112, + "label": "历城区", + "isLeaf": true + }, { + "value": 370113, + "label": "长清区", + "isLeaf": true + }, { + "value": 370124, + "label": "平阴县", + "isLeaf": true + }, { + "value": 370125, + "label": "济阳县", + "isLeaf": true + }, { + "value": 370126, + "label": "商河县", + "isLeaf": true + }, { + "value": 370181, + "label": "章丘市", + "isLeaf": true + }] + }, { + "value": 370200, + "label": "青岛市", + "children": [{ + "value": 370202, + "label": "市南区", + "isLeaf": true + }, { + "value": 370203, + "label": "市北区", + "isLeaf": true + }, { + "value": 370211, + "label": "黄岛区", + "isLeaf": true + }, { + "value": 370212, + "label": "崂山区", + "isLeaf": true + }, { + "value": 370213, + "label": "李沧区", + "isLeaf": true + }, { + "value": 370214, + "label": "城阳区", + "isLeaf": true + }, { + "value": 370281, + "label": "胶州市", + "isLeaf": true + }, { + "value": 370282, + "label": "即墨市", + "isLeaf": true + }, { + "value": 370283, + "label": "平度市", + "isLeaf": true + }, { + "value": 370285, + "label": "莱西市", + "isLeaf": true + }] + }, { + "value": 370300, + "label": "淄博市", + "children": [{ + "value": 370302, + "label": "淄川区", + "isLeaf": true + }, { + "value": 370303, + "label": "张店区", + "isLeaf": true + }, { + "value": 370304, + "label": "博山区", + "isLeaf": true + }, { + "value": 370305, + "label": "临淄区", + "isLeaf": true + }, { + "value": 370306, + "label": "周村区", + "isLeaf": true + }, { + "value": 370321, + "label": "桓台县", + "isLeaf": true + }, { + "value": 370322, + "label": "高青县", + "isLeaf": true + }, { + "value": 370323, + "label": "沂源县", + "isLeaf": true + }] + }, { + "value": 370400, + "label": "枣庄市", + "children": [{ + "value": 370402, + "label": "市中区", + "isLeaf": true + }, { + "value": 370403, + "label": "薛城区", + "isLeaf": true + }, { + "value": 370404, + "label": "峄城区", + "isLeaf": true + }, { + "value": 370405, + "label": "台儿庄区", + "isLeaf": true + }, { + "value": 370406, + "label": "山亭区", + "isLeaf": true + }, { + "value": 370481, + "label": "滕州市", + "isLeaf": true + }] + }, { + "value": 370500, + "label": "东营市", + "children": [{ + "value": 370502, + "label": "东营区", + "isLeaf": true + }, { + "value": 370503, + "label": "河口区", + "isLeaf": true + }, { + "value": 370505, + "label": "垦利区", + "isLeaf": true + }, { + "value": 370522, + "label": "利津县", + "isLeaf": true + }, { + "value": 370523, + "label": "广饶县", + "isLeaf": true + }] + }, { + "value": 370600, + "label": "烟台市", + "children": [{ + "value": 370602, + "label": "芝罘区", + "isLeaf": true + }, { + "value": 370611, + "label": "福山区", + "isLeaf": true + }, { + "value": 370612, + "label": "牟平区", + "isLeaf": true + }, { + "value": 370613, + "label": "莱山区", + "isLeaf": true + }, { + "value": 370634, + "label": "长岛县", + "isLeaf": true + }, { + "value": 370681, + "label": "龙口市", + "isLeaf": true + }, { + "value": 370682, + "label": "莱阳市", + "isLeaf": true + }, { + "value": 370683, + "label": "莱州市", + "isLeaf": true + }, { + "value": 370684, + "label": "蓬莱市", + "isLeaf": true + }, { + "value": 370685, + "label": "招远市", + "isLeaf": true + }, { + "value": 370686, + "label": "栖霞市", + "isLeaf": true + }, { + "value": 370687, + "label": "海阳市", + "isLeaf": true + }] + }, { + "value": 370700, + "label": "潍坊市", + "children": [{ + "value": 370702, + "label": "潍城区", + "isLeaf": true + }, { + "value": 370703, + "label": "寒亭区", + "isLeaf": true + }, { + "value": 370704, + "label": "坊子区", + "isLeaf": true + }, { + "value": 370705, + "label": "奎文区", + "isLeaf": true + }, { + "value": 370724, + "label": "临朐县", + "isLeaf": true + }, { + "value": 370725, + "label": "昌乐县", + "isLeaf": true + }, { + "value": 370781, + "label": "青州市", + "isLeaf": true + }, { + "value": 370782, + "label": "诸城市", + "isLeaf": true + }, { + "value": 370783, + "label": "寿光市", + "isLeaf": true + }, { + "value": 370784, + "label": "安丘市", + "isLeaf": true + }, { + "value": 370785, + "label": "高密市", + "isLeaf": true + }, { + "value": 370786, + "label": "昌邑市", + "isLeaf": true + }] + }, { + "value": 370800, + "label": "济宁市", + "children": [{ + "value": 370811, + "label": "任城区", + "isLeaf": true + }, { + "value": 370812, + "label": "兖州区", + "isLeaf": true + }, { + "value": 370826, + "label": "微山县", + "isLeaf": true + }, { + "value": 370827, + "label": "鱼台县", + "isLeaf": true + }, { + "value": 370828, + "label": "金乡县", + "isLeaf": true + }, { + "value": 370829, + "label": "嘉祥县", + "isLeaf": true + }, { + "value": 370830, + "label": "汶上县", + "isLeaf": true + }, { + "value": 370831, + "label": "泗水县", + "isLeaf": true + }, { + "value": 370832, + "label": "梁山县", + "isLeaf": true + }, { + "value": 370881, + "label": "曲阜市", + "isLeaf": true + }, { + "value": 370883, + "label": "邹城市", + "isLeaf": true + }] + }, { + "value": 370900, + "label": "泰安市", + "children": [{ + "value": 370902, + "label": "泰山区", + "isLeaf": true + }, { + "value": 370911, + "label": "岱岳区", + "isLeaf": true + }, { + "value": 370921, + "label": "宁阳县", + "isLeaf": true + }, { + "value": 370923, + "label": "东平县", + "isLeaf": true + }, { + "value": 370982, + "label": "新泰市", + "isLeaf": true + }, { + "value": 370983, + "label": "肥城市", + "isLeaf": true + }] + }, { + "value": 371000, + "label": "威海市", + "children": [{ + "value": 371002, + "label": "环翠区", + "isLeaf": true + }, { + "value": 371003, + "label": "文登区", + "isLeaf": true + }, { + "value": 371082, + "label": "荣成市", + "isLeaf": true + }, { + "value": 371083, + "label": "乳山市", + "isLeaf": true + }] + }, { + "value": 371100, + "label": "日照市", + "children": [{ + "value": 371102, + "label": "东港区", + "isLeaf": true + }, { + "value": 371103, + "label": "岚山区", + "isLeaf": true + }, { + "value": 371121, + "label": "五莲县", + "isLeaf": true + }, { + "value": 371122, + "label": "莒县", + "isLeaf": true + }] + }, { + "value": 371200, + "label": "莱芜市", + "children": [{ + "value": 371202, + "label": "莱城区", + "isLeaf": true + }, { + "value": 371203, + "label": "钢城区", + "isLeaf": true + }] + }, { + "value": 371300, + "label": "临沂市", + "children": [{ + "value": 371302, + "label": "兰山区", + "isLeaf": true + }, { + "value": 371311, + "label": "罗庄区", + "isLeaf": true + }, { + "value": 371312, + "label": "河东区", + "isLeaf": true + }, { + "value": 371321, + "label": "沂南县", + "isLeaf": true + }, { + "value": 371322, + "label": "郯城县", + "isLeaf": true + }, { + "value": 371323, + "label": "沂水县", + "isLeaf": true + }, { + "value": 371324, + "label": "兰陵县", + "isLeaf": true + }, { + "value": 371325, + "label": "费县", + "isLeaf": true + }, { + "value": 371326, + "label": "平邑县", + "isLeaf": true + }, { + "value": 371327, + "label": "莒南县", + "isLeaf": true + }, { + "value": 371328, + "label": "蒙阴县", + "isLeaf": true + }, { + "value": 371329, + "label": "临沭县", + "isLeaf": true + }] + }, { + "value": 371400, + "label": "德州市", + "children": [{ + "value": 371402, + "label": "德城区", + "isLeaf": true + }, { + "value": 371403, + "label": "陵城区", + "isLeaf": true + }, { + "value": 371422, + "label": "宁津县", + "isLeaf": true + }, { + "value": 371423, + "label": "庆云县", + "isLeaf": true + }, { + "value": 371424, + "label": "临邑县", + "isLeaf": true + }, { + "value": 371425, + "label": "齐河县", + "isLeaf": true + }, { + "value": 371426, + "label": "平原县", + "isLeaf": true + }, { + "value": 371427, + "label": "夏津县", + "isLeaf": true + }, { + "value": 371428, + "label": "武城县", + "isLeaf": true + }, { + "value": 371481, + "label": "乐陵市", + "isLeaf": true + }, { + "value": 371482, + "label": "禹城市", + "isLeaf": true + }] + }, { + "value": 371500, + "label": "聊城市", + "children": [{ + "value": 371502, + "label": "东昌府区", + "isLeaf": true + }, { + "value": 371521, + "label": "阳谷县", + "isLeaf": true + }, { + "value": 371522, + "label": "莘县", + "isLeaf": true + }, { + "value": 371523, + "label": "茌平县", + "isLeaf": true + }, { + "value": 371524, + "label": "东阿县", + "isLeaf": true + }, { + "value": 371525, + "label": "冠县", + "isLeaf": true + }, { + "value": 371526, + "label": "高唐县", + "isLeaf": true + }, { + "value": 371581, + "label": "临清市", + "isLeaf": true + }] + }, { + "value": 371600, + "label": "滨州市", + "children": [{ + "value": 371602, + "label": "滨城区", + "isLeaf": true + }, { + "value": 371603, + "label": "沾化区", + "isLeaf": true + }, { + "value": 371621, + "label": "惠民县", + "isLeaf": true + }, { + "value": 371622, + "label": "阳信县", + "isLeaf": true + }, { + "value": 371623, + "label": "无棣县", + "isLeaf": true + }, { + "value": 371625, + "label": "博兴县", + "isLeaf": true + }, { + "value": 371626, + "label": "邹平县", + "isLeaf": true + }] + }, { + "value": 371700, + "label": "菏泽市", + "children": [{ + "value": 371702, + "label": "牡丹区", + "isLeaf": true + }, { + "value": 371703, + "label": "定陶区", + "isLeaf": true + }, { + "value": 371721, + "label": "曹县", + "isLeaf": true + }, { + "value": 371722, + "label": "单县", + "isLeaf": true + }, { + "value": 371723, + "label": "成武县", + "isLeaf": true + }, { + "value": 371724, + "label": "巨野县", + "isLeaf": true + }, { + "value": 371725, + "label": "郓城县", + "isLeaf": true + }, { + "value": 371726, + "label": "鄄城县", + "isLeaf": true + }, { + "value": 371728, + "label": "东明县", + "isLeaf": true + }] + }] +}, { + "value": 410000, + "label": "河南省", + "children": [{ + "value": 410100, + "label": "郑州市", + "children": [{ + "value": 410102, + "label": "中原区", + "isLeaf": true + }, { + "value": 410103, + "label": "二七区", + "isLeaf": true + }, { + "value": 410104, + "label": "管城回族区", + "isLeaf": true + }, { + "value": 410105, + "label": "金水区", + "isLeaf": true + }, { + "value": 410106, + "label": "上街区", + "isLeaf": true + }, { + "value": 410108, + "label": "惠济区", + "isLeaf": true + }, { + "value": 410122, + "label": "中牟县", + "isLeaf": true + }, { + "value": 410181, + "label": "巩义市", + "isLeaf": true + }, { + "value": 410182, + "label": "荥阳市", + "isLeaf": true + }, { + "value": 410183, + "label": "新密市", + "isLeaf": true + }, { + "value": 410184, + "label": "新郑市", + "isLeaf": true + }, { + "value": 410185, + "label": "登封市", + "isLeaf": true + }] + }, { + "value": 410200, + "label": "开封市", + "children": [{ + "value": 410202, + "label": "龙亭区", + "isLeaf": true + }, { + "value": 410203, + "label": "顺河回族区", + "isLeaf": true + }, { + "value": 410204, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 410205, + "label": "禹王台区", + "isLeaf": true + }, { + "value": 410211, + "label": "金明区", + "isLeaf": true + }, { + "value": 410212, + "label": "祥符区", + "isLeaf": true + }, { + "value": 410221, + "label": "杞县", + "isLeaf": true + }, { + "value": 410222, + "label": "通许县", + "isLeaf": true + }, { + "value": 410223, + "label": "尉氏县", + "isLeaf": true + }, { + "value": 410225, + "label": "兰考县", + "isLeaf": true + }] + }, { + "value": 410300, + "label": "洛阳市", + "children": [{ + "value": 410302, + "label": "老城区", + "isLeaf": true + }, { + "value": 410303, + "label": "西工区", + "isLeaf": true + }, { + "value": 410304, + "label": "瀍河回族区", + "isLeaf": true + }, { + "value": 410305, + "label": "涧西区", + "isLeaf": true + }, { + "value": 410306, + "label": "吉利区", + "isLeaf": true + }, { + "value": 410311, + "label": "洛龙区", + "isLeaf": true + }, { + "value": 410322, + "label": "孟津县", + "isLeaf": true + }, { + "value": 410323, + "label": "新安县", + "isLeaf": true + }, { + "value": 410324, + "label": "栾川县", + "isLeaf": true + }, { + "value": 410325, + "label": "嵩县", + "isLeaf": true + }, { + "value": 410326, + "label": "汝阳县", + "isLeaf": true + }, { + "value": 410327, + "label": "宜阳县", + "isLeaf": true + }, { + "value": 410328, + "label": "洛宁县", + "isLeaf": true + }, { + "value": 410329, + "label": "伊川县", + "isLeaf": true + }, { + "value": 410381, + "label": "偃师市", + "isLeaf": true + }] + }, { + "value": 410400, + "label": "平顶山市", + "children": [{ + "value": 410402, + "label": "新华区", + "isLeaf": true + }, { + "value": 410403, + "label": "卫东区", + "isLeaf": true + }, { + "value": 410404, + "label": "石龙区", + "isLeaf": true + }, { + "value": 410411, + "label": "湛河区", + "isLeaf": true + }, { + "value": 410421, + "label": "宝丰县", + "isLeaf": true + }, { + "value": 410422, + "label": "叶县", + "isLeaf": true + }, { + "value": 410423, + "label": "鲁山县", + "isLeaf": true + }, { + "value": 410425, + "label": "郏县", + "isLeaf": true + }, { + "value": 410481, + "label": "舞钢市", + "isLeaf": true + }, { + "value": 410482, + "label": "汝州市", + "isLeaf": true + }] + }, { + "value": 410500, + "label": "安阳市", + "children": [{ + "value": 410502, + "label": "文峰区", + "isLeaf": true + }, { + "value": 410503, + "label": "北关区", + "isLeaf": true + }, { + "value": 410505, + "label": "殷都区", + "isLeaf": true + }, { + "value": 410506, + "label": "龙安区", + "isLeaf": true + }, { + "value": 410522, + "label": "安阳县", + "isLeaf": true + }, { + "value": 410523, + "label": "汤阴县", + "isLeaf": true + }, { + "value": 410526, + "label": "滑县", + "isLeaf": true + }, { + "value": 410527, + "label": "内黄县", + "isLeaf": true + }, { + "value": 410581, + "label": "林州市", + "isLeaf": true + }] + }, { + "value": 410600, + "label": "鹤壁市", + "children": [{ + "value": 410602, + "label": "鹤山区", + "isLeaf": true + }, { + "value": 410603, + "label": "山城区", + "isLeaf": true + }, { + "value": 410611, + "label": "淇滨区", + "isLeaf": true + }, { + "value": 410621, + "label": "浚县", + "isLeaf": true + }, { + "value": 410622, + "label": "淇县", + "isLeaf": true + }] + }, { + "value": 410700, + "label": "新乡市", + "children": [{ + "value": 410702, + "label": "红旗区", + "isLeaf": true + }, { + "value": 410703, + "label": "卫滨区", + "isLeaf": true + }, { + "value": 410704, + "label": "凤泉区", + "isLeaf": true + }, { + "value": 410711, + "label": "牧野区", + "isLeaf": true + }, { + "value": 410721, + "label": "新乡县", + "isLeaf": true + }, { + "value": 410724, + "label": "获嘉县", + "isLeaf": true + }, { + "value": 410725, + "label": "原阳县", + "isLeaf": true + }, { + "value": 410726, + "label": "延津县", + "isLeaf": true + }, { + "value": 410727, + "label": "封丘县", + "isLeaf": true + }, { + "value": 410728, + "label": "长垣县", + "isLeaf": true + }, { + "value": 410781, + "label": "卫辉市", + "isLeaf": true + }, { + "value": 410782, + "label": "辉县市", + "isLeaf": true + }] + }, { + "value": 410800, + "label": "焦作市", + "children": [{ + "value": 410802, + "label": "解放区", + "isLeaf": true + }, { + "value": 410803, + "label": "中站区", + "isLeaf": true + }, { + "value": 410804, + "label": "马村区", + "isLeaf": true + }, { + "value": 410811, + "label": "山阳区", + "isLeaf": true + }, { + "value": 410821, + "label": "修武县", + "isLeaf": true + }, { + "value": 410822, + "label": "博爱县", + "isLeaf": true + }, { + "value": 410823, + "label": "武陟县", + "isLeaf": true + }, { + "value": 410825, + "label": "温县", + "isLeaf": true + }, { + "value": 410882, + "label": "沁阳市", + "isLeaf": true + }, { + "value": 410883, + "label": "孟州市", + "isLeaf": true + }] + }, { + "value": 410900, + "label": "濮阳市", + "children": [{ + "value": 410902, + "label": "华龙区", + "isLeaf": true + }, { + "value": 410922, + "label": "清丰县", + "isLeaf": true + }, { + "value": 410923, + "label": "南乐县", + "isLeaf": true + }, { + "value": 410926, + "label": "范县", + "isLeaf": true + }, { + "value": 410927, + "label": "台前县", + "isLeaf": true + }, { + "value": 410928, + "label": "濮阳县", + "isLeaf": true + }] + }, { + "value": 411000, + "label": "许昌市", + "children": [{ + "value": 411002, + "label": "魏都区", + "isLeaf": true + }, { + "value": 411023, + "label": "许昌县", + "isLeaf": true + }, { + "value": 411024, + "label": "鄢陵县", + "isLeaf": true + }, { + "value": 411025, + "label": "襄城县", + "isLeaf": true + }, { + "value": 411081, + "label": "禹州市", + "isLeaf": true + }, { + "value": 411082, + "label": "长葛市", + "isLeaf": true + }] + }, { + "value": 411100, + "label": "漯河市", + "children": [{ + "value": 411102, + "label": "源汇区", + "isLeaf": true + }, { + "value": 411103, + "label": "郾城区", + "isLeaf": true + }, { + "value": 411104, + "label": "召陵区", + "isLeaf": true + }, { + "value": 411121, + "label": "舞阳县", + "isLeaf": true + }, { + "value": 411122, + "label": "临颍县", + "isLeaf": true + }] + }, { + "value": 411200, + "label": "三门峡市", + "children": [{ + "value": 411202, + "label": "湖滨区", + "isLeaf": true + }, { + "value": 411203, + "label": "陕州区", + "isLeaf": true + }, { + "value": 411221, + "label": "渑池县", + "isLeaf": true + }, { + "value": 411224, + "label": "卢氏县", + "isLeaf": true + }, { + "value": 411281, + "label": "义马市", + "isLeaf": true + }, { + "value": 411282, + "label": "灵宝市", + "isLeaf": true + }] + }, { + "value": 411300, + "label": "南阳市", + "children": [{ + "value": 411302, + "label": "宛城区", + "isLeaf": true + }, { + "value": 411303, + "label": "卧龙区", + "isLeaf": true + }, { + "value": 411321, + "label": "南召县", + "isLeaf": true + }, { + "value": 411322, + "label": "方城县", + "isLeaf": true + }, { + "value": 411323, + "label": "西峡县", + "isLeaf": true + }, { + "value": 411324, + "label": "镇平县", + "isLeaf": true + }, { + "value": 411325, + "label": "内乡县", + "isLeaf": true + }, { + "value": 411326, + "label": "淅川县", + "isLeaf": true + }, { + "value": 411327, + "label": "社旗县", + "isLeaf": true + }, { + "value": 411328, + "label": "唐河县", + "isLeaf": true + }, { + "value": 411329, + "label": "新野县", + "isLeaf": true + }, { + "value": 411330, + "label": "桐柏县", + "isLeaf": true + }, { + "value": 411381, + "label": "邓州市", + "isLeaf": true + }] + }, { + "value": 411400, + "label": "商丘市", + "children": [{ + "value": 411402, + "label": "梁园区", + "isLeaf": true + }, { + "value": 411403, + "label": "睢阳区", + "isLeaf": true + }, { + "value": 411421, + "label": "民权县", + "isLeaf": true + }, { + "value": 411422, + "label": "睢县", + "isLeaf": true + }, { + "value": 411423, + "label": "宁陵县", + "isLeaf": true + }, { + "value": 411424, + "label": "柘城县", + "isLeaf": true + }, { + "value": 411425, + "label": "虞城县", + "isLeaf": true + }, { + "value": 411426, + "label": "夏邑县", + "isLeaf": true + }, { + "value": 411481, + "label": "永城市", + "isLeaf": true + }] + }, { + "value": 411500, + "label": "信阳市", + "children": [{ + "value": 411502, + "label": "浉河区", + "isLeaf": true + }, { + "value": 411503, + "label": "平桥区", + "isLeaf": true + }, { + "value": 411521, + "label": "罗山县", + "isLeaf": true + }, { + "value": 411522, + "label": "光山县", + "isLeaf": true + }, { + "value": 411523, + "label": "新县", + "isLeaf": true + }, { + "value": 411524, + "label": "商城县", + "isLeaf": true + }, { + "value": 411525, + "label": "固始县", + "isLeaf": true + }, { + "value": 411526, + "label": "潢川县", + "isLeaf": true + }, { + "value": 411527, + "label": "淮滨县", + "isLeaf": true + }, { + "value": 411528, + "label": "息县", + "isLeaf": true + }] + }, { + "value": 411600, + "label": "周口市", + "children": [{ + "value": 411602, + "label": "川汇区", + "isLeaf": true + }, { + "value": 411621, + "label": "扶沟县", + "isLeaf": true + }, { + "value": 411622, + "label": "西华县", + "isLeaf": true + }, { + "value": 411623, + "label": "商水县", + "isLeaf": true + }, { + "value": 411624, + "label": "沈丘县", + "isLeaf": true + }, { + "value": 411625, + "label": "郸城县", + "isLeaf": true + }, { + "value": 411626, + "label": "淮阳县", + "isLeaf": true + }, { + "value": 411627, + "label": "太康县", + "isLeaf": true + }, { + "value": 411628, + "label": "鹿邑县", + "isLeaf": true + }, { + "value": 411681, + "label": "项城市", + "isLeaf": true + }] + }, { + "value": 411700, + "label": "驻马店市", + "children": [{ + "value": 411702, + "label": "驿城区", + "isLeaf": true + }, { + "value": 411721, + "label": "西平县", + "isLeaf": true + }, { + "value": 411722, + "label": "上蔡县", + "isLeaf": true + }, { + "value": 411723, + "label": "平舆县", + "isLeaf": true + }, { + "value": 411724, + "label": "正阳县", + "isLeaf": true + }, { + "value": 411725, + "label": "确山县", + "isLeaf": true + }, { + "value": 411726, + "label": "泌阳县", + "isLeaf": true + }, { + "value": 411727, + "label": "汝南县", + "isLeaf": true + }, { + "value": 411728, + "label": "遂平县", + "isLeaf": true + }, { + "value": 411729, + "label": "新蔡县", + "isLeaf": true + }] + }, { + "value": 419000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 419001, + "label": "济源市", + "isLeaf": true + }] + }] +}, { + "value": 420000, + "label": "湖北省", + "children": [{ + "value": 420100, + "label": "武汉市", + "children": [{ + "value": 420102, + "label": "江岸区", + "isLeaf": true + }, { + "value": 420103, + "label": "江汉区", + "isLeaf": true + }, { + "value": 420104, + "label": "硚口区", + "isLeaf": true + }, { + "value": 420105, + "label": "汉阳区", + "isLeaf": true + }, { + "value": 420106, + "label": "武昌区", + "isLeaf": true + }, { + "value": 420107, + "label": "青山区", + "isLeaf": true + }, { + "value": 420111, + "label": "洪山区", + "isLeaf": true + }, { + "value": 420112, + "label": "东西湖区", + "isLeaf": true + }, { + "value": 420113, + "label": "汉南区", + "isLeaf": true + }, { + "value": 420114, + "label": "蔡甸区", + "isLeaf": true + }, { + "value": 420115, + "label": "江夏区", + "isLeaf": true + }, { + "value": 420116, + "label": "黄陂区", + "isLeaf": true + }, { + "value": 420117, + "label": "新洲区", + "isLeaf": true + }] + }, { + "value": 420200, + "label": "黄石市", + "children": [{ + "value": 420202, + "label": "黄石港区", + "isLeaf": true + }, { + "value": 420203, + "label": "西塞山区", + "isLeaf": true + }, { + "value": 420204, + "label": "下陆区", + "isLeaf": true + }, { + "value": 420205, + "label": "铁山区", + "isLeaf": true + }, { + "value": 420222, + "label": "阳新县", + "isLeaf": true + }, { + "value": 420281, + "label": "大冶市", + "isLeaf": true + }] + }, { + "value": 420300, + "label": "十堰市", + "children": [{ + "value": 420302, + "label": "茅箭区", + "isLeaf": true + }, { + "value": 420303, + "label": "张湾区", + "isLeaf": true + }, { + "value": 420304, + "label": "郧阳区", + "isLeaf": true + }, { + "value": 420322, + "label": "郧西县", + "isLeaf": true + }, { + "value": 420323, + "label": "竹山县", + "isLeaf": true + }, { + "value": 420324, + "label": "竹溪县", + "isLeaf": true + }, { + "value": 420325, + "label": "房县", + "isLeaf": true + }, { + "value": 420381, + "label": "丹江口市", + "isLeaf": true + }] + }, { + "value": 420500, + "label": "宜昌市", + "children": [{ + "value": 420502, + "label": "西陵区", + "isLeaf": true + }, { + "value": 420503, + "label": "伍家岗区", + "isLeaf": true + }, { + "value": 420504, + "label": "点军区", + "isLeaf": true + }, { + "value": 420505, + "label": "猇亭区", + "isLeaf": true + }, { + "value": 420506, + "label": "夷陵区", + "isLeaf": true + }, { + "value": 420525, + "label": "远安县", + "isLeaf": true + }, { + "value": 420526, + "label": "兴山县", + "isLeaf": true + }, { + "value": 420527, + "label": "秭归县", + "isLeaf": true + }, { + "value": 420528, + "label": "长阳土家族自治县", + "isLeaf": true + }, { + "value": 420529, + "label": "五峰土家族自治县", + "isLeaf": true + }, { + "value": 420581, + "label": "宜都市", + "isLeaf": true + }, { + "value": 420582, + "label": "当阳市", + "isLeaf": true + }, { + "value": 420583, + "label": "枝江市", + "isLeaf": true + }] + }, { + "value": 420600, + "label": "襄阳市", + "children": [{ + "value": 420602, + "label": "襄城区", + "isLeaf": true + }, { + "value": 420606, + "label": "樊城区", + "isLeaf": true + }, { + "value": 420607, + "label": "襄州区", + "isLeaf": true + }, { + "value": 420624, + "label": "南漳县", + "isLeaf": true + }, { + "value": 420625, + "label": "谷城县", + "isLeaf": true + }, { + "value": 420626, + "label": "保康县", + "isLeaf": true + }, { + "value": 420682, + "label": "老河口市", + "isLeaf": true + }, { + "value": 420683, + "label": "枣阳市", + "isLeaf": true + }, { + "value": 420684, + "label": "宜城市", + "isLeaf": true + }] + }, { + "value": 420700, + "label": "鄂州市", + "children": [{ + "value": 420702, + "label": "梁子湖区", + "isLeaf": true + }, { + "value": 420703, + "label": "华容区", + "isLeaf": true + }, { + "value": 420704, + "label": "鄂城区", + "isLeaf": true + }] + }, { + "value": 420800, + "label": "荆门市", + "children": [{ + "value": 420802, + "label": "东宝区", + "isLeaf": true + }, { + "value": 420804, + "label": "掇刀区", + "isLeaf": true + }, { + "value": 420821, + "label": "京山县", + "isLeaf": true + }, { + "value": 420822, + "label": "沙洋县", + "isLeaf": true + }, { + "value": 420881, + "label": "钟祥市", + "isLeaf": true + }] + }, { + "value": 420900, + "label": "孝感市", + "children": [{ + "value": 420902, + "label": "孝南区", + "isLeaf": true + }, { + "value": 420921, + "label": "孝昌县", + "isLeaf": true + }, { + "value": 420922, + "label": "大悟县", + "isLeaf": true + }, { + "value": 420923, + "label": "云梦县", + "isLeaf": true + }, { + "value": 420981, + "label": "应城市", + "isLeaf": true + }, { + "value": 420982, + "label": "安陆市", + "isLeaf": true + }, { + "value": 420984, + "label": "汉川市", + "isLeaf": true + }] + }, { + "value": 421000, + "label": "荆州市", + "children": [{ + "value": 421002, + "label": "沙市区", + "isLeaf": true + }, { + "value": 421003, + "label": "荆州区", + "isLeaf": true + }, { + "value": 421022, + "label": "公安县", + "isLeaf": true + }, { + "value": 421023, + "label": "监利县", + "isLeaf": true + }, { + "value": 421024, + "label": "江陵县", + "isLeaf": true + }, { + "value": 421081, + "label": "石首市", + "isLeaf": true + }, { + "value": 421083, + "label": "洪湖市", + "isLeaf": true + }, { + "value": 421087, + "label": "松滋市", + "isLeaf": true + }] + }, { + "value": 421100, + "label": "黄冈市", + "children": [{ + "value": 421102, + "label": "黄州区", + "isLeaf": true + }, { + "value": 421121, + "label": "团风县", + "isLeaf": true + }, { + "value": 421122, + "label": "红安县", + "isLeaf": true + }, { + "value": 421123, + "label": "罗田县", + "isLeaf": true + }, { + "value": 421124, + "label": "英山县", + "isLeaf": true + }, { + "value": 421125, + "label": "浠水县", + "isLeaf": true + }, { + "value": 421126, + "label": "蕲春县", + "isLeaf": true + }, { + "value": 421127, + "label": "黄梅县", + "isLeaf": true + }, { + "value": 421181, + "label": "麻城市", + "isLeaf": true + }, { + "value": 421182, + "label": "武穴市", + "isLeaf": true + }] + }, { + "value": 421200, + "label": "咸宁市", + "children": [{ + "value": 421202, + "label": "咸安区", + "isLeaf": true + }, { + "value": 421221, + "label": "嘉鱼县", + "isLeaf": true + }, { + "value": 421222, + "label": "通城县", + "isLeaf": true + }, { + "value": 421223, + "label": "崇阳县", + "isLeaf": true + }, { + "value": 421224, + "label": "通山县", + "isLeaf": true + }, { + "value": 421281, + "label": "赤壁市", + "isLeaf": true + }] + }, { + "value": 421300, + "label": "随州市", + "children": [{ + "value": 421303, + "label": "曾都区", + "isLeaf": true + }, { + "value": 421321, + "label": "随县", + "isLeaf": true + }, { + "value": 421381, + "label": "广水市", + "isLeaf": true + }] + }, { + "value": 422800, + "label": "恩施土家族苗族自治州", + "children": [{ + "value": 422801, + "label": "恩施市", + "isLeaf": true + }, { + "value": 422802, + "label": "利川市", + "isLeaf": true + }, { + "value": 422822, + "label": "建始县", + "isLeaf": true + }, { + "value": 422823, + "label": "巴东县", + "isLeaf": true + }, { + "value": 422825, + "label": "宣恩县", + "isLeaf": true + }, { + "value": 422826, + "label": "咸丰县", + "isLeaf": true + }, { + "value": 422827, + "label": "来凤县", + "isLeaf": true + }, { + "value": 422828, + "label": "鹤峰县", + "isLeaf": true + }] + }, { + "value": 429000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 429004, + "label": "仙桃市", + "isLeaf": true + }, { + "value": 429005, + "label": "潜江市", + "isLeaf": true + }, { + "value": 429006, + "label": "天门市", + "isLeaf": true + }, { + "value": 429021, + "label": "神农架林区", + "isLeaf": true + }] + }] +}, { + "value": 430000, + "label": "湖南省", + "children": [{ + "value": 430100, + "label": "长沙市", + "children": [{ + "value": 430102, + "label": "芙蓉区", + "isLeaf": true + }, { + "value": 430103, + "label": "天心区", + "isLeaf": true + }, { + "value": 430104, + "label": "岳麓区", + "isLeaf": true + }, { + "value": 430105, + "label": "开福区", + "isLeaf": true + }, { + "value": 430111, + "label": "雨花区", + "isLeaf": true + }, { + "value": 430112, + "label": "望城区", + "isLeaf": true + }, { + "value": 430121, + "label": "长沙县", + "isLeaf": true + }, { + "value": 430124, + "label": "宁乡县", + "isLeaf": true + }, { + "value": 430181, + "label": "浏阳市", + "isLeaf": true + }] + }, { + "value": 430200, + "label": "株洲市", + "children": [{ + "value": 430202, + "label": "荷塘区", + "isLeaf": true + }, { + "value": 430203, + "label": "芦淞区", + "isLeaf": true + }, { + "value": 430204, + "label": "石峰区", + "isLeaf": true + }, { + "value": 430211, + "label": "天元区", + "isLeaf": true + }, { + "value": 430221, + "label": "株洲县", + "isLeaf": true + }, { + "value": 430223, + "label": "攸县", + "isLeaf": true + }, { + "value": 430224, + "label": "茶陵县", + "isLeaf": true + }, { + "value": 430225, + "label": "炎陵县", + "isLeaf": true + }, { + "value": 430281, + "label": "醴陵市", + "isLeaf": true + }] + }, { + "value": 430300, + "label": "湘潭市", + "children": [{ + "value": 430302, + "label": "雨湖区", + "isLeaf": true + }, { + "value": 430304, + "label": "岳塘区", + "isLeaf": true + }, { + "value": 430321, + "label": "湘潭县", + "isLeaf": true + }, { + "value": 430381, + "label": "湘乡市", + "isLeaf": true + }, { + "value": 430382, + "label": "韶山市", + "isLeaf": true + }] + }, { + "value": 430400, + "label": "衡阳市", + "children": [{ + "value": 430405, + "label": "珠晖区", + "isLeaf": true + }, { + "value": 430406, + "label": "雁峰区", + "isLeaf": true + }, { + "value": 430407, + "label": "石鼓区", + "isLeaf": true + }, { + "value": 430408, + "label": "蒸湘区", + "isLeaf": true + }, { + "value": 430412, + "label": "南岳区", + "isLeaf": true + }, { + "value": 430421, + "label": "衡阳县", + "isLeaf": true + }, { + "value": 430422, + "label": "衡南县", + "isLeaf": true + }, { + "value": 430423, + "label": "衡山县", + "isLeaf": true + }, { + "value": 430424, + "label": "衡东县", + "isLeaf": true + }, { + "value": 430426, + "label": "祁东县", + "isLeaf": true + }, { + "value": 430481, + "label": "耒阳市", + "isLeaf": true + }, { + "value": 430482, + "label": "常宁市", + "isLeaf": true + }] + }, { + "value": 430500, + "label": "邵阳市", + "children": [{ + "value": 430502, + "label": "双清区", + "isLeaf": true + }, { + "value": 430503, + "label": "大祥区", + "isLeaf": true + }, { + "value": 430511, + "label": "北塔区", + "isLeaf": true + }, { + "value": 430521, + "label": "邵东县", + "isLeaf": true + }, { + "value": 430522, + "label": "新邵县", + "isLeaf": true + }, { + "value": 430523, + "label": "邵阳县", + "isLeaf": true + }, { + "value": 430524, + "label": "隆回县", + "isLeaf": true + }, { + "value": 430525, + "label": "洞口县", + "isLeaf": true + }, { + "value": 430527, + "label": "绥宁县", + "isLeaf": true + }, { + "value": 430528, + "label": "新宁县", + "isLeaf": true + }, { + "value": 430529, + "label": "城步苗族自治县", + "isLeaf": true + }, { + "value": 430581, + "label": "武冈市", + "isLeaf": true + }] + }, { + "value": 430600, + "label": "岳阳市", + "children": [{ + "value": 430602, + "label": "岳阳楼区", + "isLeaf": true + }, { + "value": 430603, + "label": "云溪区", + "isLeaf": true + }, { + "value": 430611, + "label": "君山区", + "isLeaf": true + }, { + "value": 430621, + "label": "岳阳县", + "isLeaf": true + }, { + "value": 430623, + "label": "华容县", + "isLeaf": true + }, { + "value": 430624, + "label": "湘阴县", + "isLeaf": true + }, { + "value": 430626, + "label": "平江县", + "isLeaf": true + }, { + "value": 430681, + "label": "汨罗市", + "isLeaf": true + }, { + "value": 430682, + "label": "临湘市", + "isLeaf": true + }] + }, { + "value": 430700, + "label": "常德市", + "children": [{ + "value": 430702, + "label": "武陵区", + "isLeaf": true + }, { + "value": 430703, + "label": "鼎城区", + "isLeaf": true + }, { + "value": 430721, + "label": "安乡县", + "isLeaf": true + }, { + "value": 430722, + "label": "汉寿县", + "isLeaf": true + }, { + "value": 430723, + "label": "澧县", + "isLeaf": true + }, { + "value": 430724, + "label": "临澧县", + "isLeaf": true + }, { + "value": 430725, + "label": "桃源县", + "isLeaf": true + }, { + "value": 430726, + "label": "石门县", + "isLeaf": true + }, { + "value": 430781, + "label": "津市市", + "isLeaf": true + }] + }, { + "value": 430800, + "label": "张家界市", + "children": [{ + "value": 430802, + "label": "永定区", + "isLeaf": true + }, { + "value": 430811, + "label": "武陵源区", + "isLeaf": true + }, { + "value": 430821, + "label": "慈利县", + "isLeaf": true + }, { + "value": 430822, + "label": "桑植县", + "isLeaf": true + }] + }, { + "value": 430900, + "label": "益阳市", + "children": [{ + "value": 430902, + "label": "资阳区", + "isLeaf": true + }, { + "value": 430903, + "label": "赫山区", + "isLeaf": true + }, { + "value": 430921, + "label": "南县", + "isLeaf": true + }, { + "value": 430922, + "label": "桃江县", + "isLeaf": true + }, { + "value": 430923, + "label": "安化县", + "isLeaf": true + }, { + "value": 430981, + "label": "沅江市", + "isLeaf": true + }] + }, { + "value": 431000, + "label": "郴州市", + "children": [{ + "value": 431002, + "label": "北湖区", + "isLeaf": true + }, { + "value": 431003, + "label": "苏仙区", + "isLeaf": true + }, { + "value": 431021, + "label": "桂阳县", + "isLeaf": true + }, { + "value": 431022, + "label": "宜章县", + "isLeaf": true + }, { + "value": 431023, + "label": "永兴县", + "isLeaf": true + }, { + "value": 431024, + "label": "嘉禾县", + "isLeaf": true + }, { + "value": 431025, + "label": "临武县", + "isLeaf": true + }, { + "value": 431026, + "label": "汝城县", + "isLeaf": true + }, { + "value": 431027, + "label": "桂东县", + "isLeaf": true + }, { + "value": 431028, + "label": "安仁县", + "isLeaf": true + }, { + "value": 431081, + "label": "资兴市", + "isLeaf": true + }] + }, { + "value": 431100, + "label": "永州市", + "children": [{ + "value": 431102, + "label": "零陵区", + "isLeaf": true + }, { + "value": 431103, + "label": "冷水滩区", + "isLeaf": true + }, { + "value": 431121, + "label": "祁阳县", + "isLeaf": true + }, { + "value": 431122, + "label": "东安县", + "isLeaf": true + }, { + "value": 431123, + "label": "双牌县", + "isLeaf": true + }, { + "value": 431124, + "label": "道县", + "isLeaf": true + }, { + "value": 431125, + "label": "江永县", + "isLeaf": true + }, { + "value": 431126, + "label": "宁远县", + "isLeaf": true + }, { + "value": 431127, + "label": "蓝山县", + "isLeaf": true + }, { + "value": 431128, + "label": "新田县", + "isLeaf": true + }, { + "value": 431129, + "label": "江华瑶族自治县", + "isLeaf": true + }] + }, { + "value": 431200, + "label": "怀化市", + "children": [{ + "value": 431202, + "label": "鹤城区", + "isLeaf": true + }, { + "value": 431221, + "label": "中方县", + "isLeaf": true + }, { + "value": 431222, + "label": "沅陵县", + "isLeaf": true + }, { + "value": 431223, + "label": "辰溪县", + "isLeaf": true + }, { + "value": 431224, + "label": "溆浦县", + "isLeaf": true + }, { + "value": 431225, + "label": "会同县", + "isLeaf": true + }, { + "value": 431226, + "label": "麻阳苗族自治县", + "isLeaf": true + }, { + "value": 431227, + "label": "新晃侗族自治县", + "isLeaf": true + }, { + "value": 431228, + "label": "芷江侗族自治县", + "isLeaf": true + }, { + "value": 431229, + "label": "靖州苗族侗族自治县", + "isLeaf": true + }, { + "value": 431230, + "label": "通道侗族自治县", + "isLeaf": true + }, { + "value": 431281, + "label": "洪江市", + "isLeaf": true + }] + }, { + "value": 431300, + "label": "娄底市", + "children": [{ + "value": 431302, + "label": "娄星区", + "isLeaf": true + }, { + "value": 431321, + "label": "双峰县", + "isLeaf": true + }, { + "value": 431322, + "label": "新化县", + "isLeaf": true + }, { + "value": 431381, + "label": "冷水江市", + "isLeaf": true + }, { + "value": 431382, + "label": "涟源市", + "isLeaf": true + }] + }, { + "value": 433100, + "label": "湘西土家族苗族自治州", + "children": [{ + "value": 433101, + "label": "吉首市", + "isLeaf": true + }, { + "value": 433122, + "label": "泸溪县", + "isLeaf": true + }, { + "value": 433123, + "label": "凤凰县", + "isLeaf": true + }, { + "value": 433124, + "label": "花垣县", + "isLeaf": true + }, { + "value": 433125, + "label": "保靖县", + "isLeaf": true + }, { + "value": 433126, + "label": "古丈县", + "isLeaf": true + }, { + "value": 433127, + "label": "永顺县", + "isLeaf": true + }, { + "value": 433130, + "label": "龙山县", + "isLeaf": true + }] + }] +}, { + "value": 440000, + "label": "广东省", + "children": [{ + "value": 440100, + "label": "广州市", + "children": [{ + "value": 440103, + "label": "荔湾区", + "isLeaf": true + }, { + "value": 440104, + "label": "越秀区", + "isLeaf": true + }, { + "value": 440105, + "label": "海珠区", + "isLeaf": true + }, { + "value": 440106, + "label": "天河区", + "isLeaf": true + }, { + "value": 440111, + "label": "白云区", + "isLeaf": true + }, { + "value": 440112, + "label": "黄埔区", + "isLeaf": true + }, { + "value": 440113, + "label": "番禺区", + "isLeaf": true + }, { + "value": 440114, + "label": "花都区", + "isLeaf": true + }, { + "value": 440115, + "label": "南沙区", + "isLeaf": true + }, { + "value": 440117, + "label": "从化区", + "isLeaf": true + }, { + "value": 440118, + "label": "增城区", + "isLeaf": true + }] + }, { + "value": 440200, + "label": "韶关市", + "children": [{ + "value": 440203, + "label": "武江区", + "isLeaf": true + }, { + "value": 440204, + "label": "浈江区", + "isLeaf": true + }, { + "value": 440205, + "label": "曲江区", + "isLeaf": true + }, { + "value": 440222, + "label": "始兴县", + "isLeaf": true + }, { + "value": 440224, + "label": "仁化县", + "isLeaf": true + }, { + "value": 440229, + "label": "翁源县", + "isLeaf": true + }, { + "value": 440232, + "label": "乳源瑶族自治县", + "isLeaf": true + }, { + "value": 440233, + "label": "新丰县", + "isLeaf": true + }, { + "value": 440281, + "label": "乐昌市", + "isLeaf": true + }, { + "value": 440282, + "label": "南雄市", + "isLeaf": true + }] + }, { + "value": 440300, + "label": "深圳市", + "children": [{ + "value": 440303, + "label": "罗湖区", + "isLeaf": true + }, { + "value": 440304, + "label": "福田区", + "isLeaf": true + }, { + "value": 440305, + "label": "南山区", + "isLeaf": true + }, { + "value": 440306, + "label": "宝安区", + "isLeaf": true + }, { + "value": 440307, + "label": "龙岗区", + "isLeaf": true + }, { + "value": 440308, + "label": "盐田区", + "isLeaf": true + }] + }, { + "value": 440400, + "label": "珠海市", + "children": [{ + "value": 440402, + "label": "香洲区", + "isLeaf": true + }, { + "value": 440403, + "label": "斗门区", + "isLeaf": true + }, { + "value": 440404, + "label": "金湾区", + "isLeaf": true + }] + }, { + "value": 440500, + "label": "汕头市", + "children": [{ + "value": 440507, + "label": "龙湖区", + "isLeaf": true + }, { + "value": 440511, + "label": "金平区", + "isLeaf": true + }, { + "value": 440512, + "label": "濠江区", + "isLeaf": true + }, { + "value": 440513, + "label": "潮阳区", + "isLeaf": true + }, { + "value": 440514, + "label": "潮南区", + "isLeaf": true + }, { + "value": 440515, + "label": "澄海区", + "isLeaf": true + }, { + "value": 440523, + "label": "南澳县", + "isLeaf": true + }] + }, { + "value": 440600, + "label": "佛山市", + "children": [{ + "value": 440604, + "label": "禅城区", + "isLeaf": true + }, { + "value": 440605, + "label": "南海区", + "isLeaf": true + }, { + "value": 440606, + "label": "顺德区", + "isLeaf": true + }, { + "value": 440607, + "label": "三水区", + "isLeaf": true + }, { + "value": 440608, + "label": "高明区", + "isLeaf": true + }] + }, { + "value": 440700, + "label": "江门市", + "children": [{ + "value": 440703, + "label": "蓬江区", + "isLeaf": true + }, { + "value": 440704, + "label": "江海区", + "isLeaf": true + }, { + "value": 440705, + "label": "新会区", + "isLeaf": true + }, { + "value": 440781, + "label": "台山市", + "isLeaf": true + }, { + "value": 440783, + "label": "开平市", + "isLeaf": true + }, { + "value": 440784, + "label": "鹤山市", + "isLeaf": true + }, { + "value": 440785, + "label": "恩平市", + "isLeaf": true + }] + }, { + "value": 440800, + "label": "湛江市", + "children": [{ + "value": 440802, + "label": "赤坎区", + "isLeaf": true + }, { + "value": 440803, + "label": "霞山区", + "isLeaf": true + }, { + "value": 440804, + "label": "坡头区", + "isLeaf": true + }, { + "value": 440811, + "label": "麻章区", + "isLeaf": true + }, { + "value": 440823, + "label": "遂溪县", + "isLeaf": true + }, { + "value": 440825, + "label": "徐闻县", + "isLeaf": true + }, { + "value": 440881, + "label": "廉江市", + "isLeaf": true + }, { + "value": 440882, + "label": "雷州市", + "isLeaf": true + }, { + "value": 440883, + "label": "吴川市", + "isLeaf": true + }] + }, { + "value": 440900, + "label": "茂名市", + "children": [{ + "value": 440902, + "label": "茂南区", + "isLeaf": true + }, { + "value": 440904, + "label": "电白区", + "isLeaf": true + }, { + "value": 440981, + "label": "高州市", + "isLeaf": true + }, { + "value": 440982, + "label": "化州市", + "isLeaf": true + }, { + "value": 440983, + "label": "信宜市", + "isLeaf": true + }] + }, { + "value": 441200, + "label": "肇庆市", + "children": [{ + "value": 441202, + "label": "端州区", + "isLeaf": true + }, { + "value": 441203, + "label": "鼎湖区", + "isLeaf": true + }, { + "value": 441204, + "label": "高要区", + "isLeaf": true + }, { + "value": 441223, + "label": "广宁县", + "isLeaf": true + }, { + "value": 441224, + "label": "怀集县", + "isLeaf": true + }, { + "value": 441225, + "label": "封开县", + "isLeaf": true + }, { + "value": 441226, + "label": "德庆县", + "isLeaf": true + }, { + "value": 441284, + "label": "四会市", + "isLeaf": true + }] + }, { + "value": 441300, + "label": "惠州市", + "children": [{ + "value": 441302, + "label": "惠城区", + "isLeaf": true + }, { + "value": 441303, + "label": "惠阳区", + "isLeaf": true + }, { + "value": 441322, + "label": "博罗县", + "isLeaf": true + }, { + "value": 441323, + "label": "惠东县", + "isLeaf": true + }, { + "value": 441324, + "label": "龙门县", + "isLeaf": true + }] + }, { + "value": 441400, + "label": "梅州市", + "children": [{ + "value": 441402, + "label": "梅江区", + "isLeaf": true + }, { + "value": 441403, + "label": "梅县区", + "isLeaf": true + }, { + "value": 441422, + "label": "大埔县", + "isLeaf": true + }, { + "value": 441423, + "label": "丰顺县", + "isLeaf": true + }, { + "value": 441424, + "label": "五华县", + "isLeaf": true + }, { + "value": 441426, + "label": "平远县", + "isLeaf": true + }, { + "value": 441427, + "label": "蕉岭县", + "isLeaf": true + }, { + "value": 441481, + "label": "兴宁市", + "isLeaf": true + }] + }, { + "value": 441500, + "label": "汕尾市", + "children": [{ + "value": 441502, + "label": "城区", + "isLeaf": true + }, { + "value": 441521, + "label": "海丰县", + "isLeaf": true + }, { + "value": 441523, + "label": "陆河县", + "isLeaf": true + }, { + "value": 441581, + "label": "陆丰市", + "isLeaf": true + }] + }, { + "value": 441600, + "label": "河源市", + "children": [{ + "value": 441602, + "label": "源城区", + "isLeaf": true + }, { + "value": 441621, + "label": "紫金县", + "isLeaf": true + }, { + "value": 441622, + "label": "龙川县", + "isLeaf": true + }, { + "value": 441623, + "label": "连平县", + "isLeaf": true + }, { + "value": 441624, + "label": "和平县", + "isLeaf": true + }, { + "value": 441625, + "label": "东源县", + "isLeaf": true + }] + }, { + "value": 441700, + "label": "阳江市", + "children": [{ + "value": 441702, + "label": "江城区", + "isLeaf": true + }, { + "value": 441704, + "label": "阳东区", + "isLeaf": true + }, { + "value": 441721, + "label": "阳西县", + "isLeaf": true + }, { + "value": 441781, + "label": "阳春市", + "isLeaf": true + }] + }, { + "value": 441800, + "label": "清远市", + "children": [{ + "value": 441802, + "label": "清城区", + "isLeaf": true + }, { + "value": 441803, + "label": "清新区", + "isLeaf": true + }, { + "value": 441821, + "label": "佛冈县", + "isLeaf": true + }, { + "value": 441823, + "label": "阳山县", + "isLeaf": true + }, { + "value": 441825, + "label": "连山壮族瑶族自治县", + "isLeaf": true + }, { + "value": 441826, + "label": "连南瑶族自治县", + "isLeaf": true + }, { + "value": 441881, + "label": "英德市", + "isLeaf": true + }, { + "value": 441882, + "label": "连州市", + "isLeaf": true + }] + }, { + "value": 441900, + "label": "东莞市", + "children": [{ + "value": 441900003, + "label": "东城街道办事处", + "isLeaf": true + }, { + "value": 441900004, + "label": "南城街道办事处", + "isLeaf": true + }, { + "value": 441900005, + "label": "万江街道办事处", + "isLeaf": true + }, { + "value": 441900006, + "label": "莞城街道办事处", + "isLeaf": true + }, { + "value": 441900101, + "label": "石碣镇", + "isLeaf": true + }, { + "value": 441900102, + "label": "石龙镇", + "isLeaf": true + }, { + "value": 441900103, + "label": "茶山镇", + "isLeaf": true + }, { + "value": 441900104, + "label": "石排镇", + "isLeaf": true + }, { + "value": 441900105, + "label": "企石镇", + "isLeaf": true + }, { + "value": 441900106, + "label": "横沥镇", + "isLeaf": true + }, { + "value": 441900107, + "label": "桥头镇", + "isLeaf": true + }, { + "value": 441900108, + "label": "谢岗镇", + "isLeaf": true + }, { + "value": 441900109, + "label": "东坑镇", + "isLeaf": true + }, { + "value": 441900110, + "label": "常平镇", + "isLeaf": true + }, { + "value": 441900111, + "label": "寮步镇", + "isLeaf": true + }, { + "value": 441900112, + "label": "樟木头镇", + "isLeaf": true + }, { + "value": 441900113, + "label": "大朗镇", + "isLeaf": true + }, { + "value": 441900114, + "label": "黄江镇", + "isLeaf": true + }, { + "value": 441900115, + "label": "清溪镇", + "isLeaf": true + }, { + "value": 441900116, + "label": "塘厦镇", + "isLeaf": true + }, { + "value": 441900117, + "label": "凤岗镇", + "isLeaf": true + }, { + "value": 441900118, + "label": "大岭山镇", + "isLeaf": true + }, { + "value": 441900119, + "label": "长安镇", + "isLeaf": true + }, { + "value": 441900121, + "label": "虎门镇", + "isLeaf": true + }, { + "value": 441900122, + "label": "厚街镇", + "isLeaf": true + }, { + "value": 441900123, + "label": "沙田镇", + "isLeaf": true + }, { + "value": 441900124, + "label": "道滘镇", + "isLeaf": true + }, { + "value": 441900125, + "label": "洪梅镇", + "isLeaf": true + }, { + "value": 441900126, + "label": "麻涌镇", + "isLeaf": true + }, { + "value": 441900127, + "label": "望牛墩镇", + "isLeaf": true + }, { + "value": 441900128, + "label": "中堂镇", + "isLeaf": true + }, { + "value": 441900129, + "label": "高埗镇", + "isLeaf": true + }, { + "value": 441900401, + "label": "松山湖管委会", + "isLeaf": true + }, { + "value": 441900402, + "label": "虎门港管委会", + "isLeaf": true + }, { + "value": 441900403, + "label": "东莞生态园", + "isLeaf": true + }] + }, { + "value": 442000, + "label": "中山市", + "children": [{ + "value": 442000001, + "label": "石岐区街道办事处", + "isLeaf": true + }, { + "value": 442000002, + "label": "东区街道办事处", + "isLeaf": true + }, { + "value": 442000003, + "label": "火炬开发区街道办事处", + "isLeaf": true + }, { + "value": 442000004, + "label": "西区街道办事处", + "isLeaf": true + }, { + "value": 442000005, + "label": "南区街道办事处", + "isLeaf": true + }, { + "value": 442000006, + "label": "五桂山街道办事处", + "isLeaf": true + }, { + "value": 442000100, + "label": "小榄镇", + "isLeaf": true + }, { + "value": 442000101, + "label": "黄圃镇", + "isLeaf": true + }, { + "value": 442000102, + "label": "民众镇", + "isLeaf": true + }, { + "value": 442000103, + "label": "东凤镇", + "isLeaf": true + }, { + "value": 442000104, + "label": "东升镇", + "isLeaf": true + }, { + "value": 442000105, + "label": "古镇镇", + "isLeaf": true + }, { + "value": 442000106, + "label": "沙溪镇", + "isLeaf": true + }, { + "value": 442000107, + "label": "坦洲镇", + "isLeaf": true + }, { + "value": 442000108, + "label": "港口镇", + "isLeaf": true + }, { + "value": 442000109, + "label": "三角镇", + "isLeaf": true + }, { + "value": 442000110, + "label": "横栏镇", + "isLeaf": true + }, { + "value": 442000111, + "label": "南头镇", + "isLeaf": true + }, { + "value": 442000112, + "label": "阜沙镇", + "isLeaf": true + }, { + "value": 442000113, + "label": "南朗镇", + "isLeaf": true + }, { + "value": 442000114, + "label": "三乡镇", + "isLeaf": true + }, { + "value": 442000115, + "label": "板芙镇", + "isLeaf": true + }, { + "value": 442000116, + "label": "大涌镇", + "isLeaf": true + }, { + "value": 442000117, + "label": "神湾镇", + "isLeaf": true + }] + }, { + "value": 445100, + "label": "潮州市", + "children": [{ + "value": 445102, + "label": "湘桥区", + "isLeaf": true + }, { + "value": 445103, + "label": "潮安区", + "isLeaf": true + }, { + "value": 445122, + "label": "饶平县", + "isLeaf": true + }] + }, { + "value": 445200, + "label": "揭阳市", + "children": [{ + "value": 445202, + "label": "榕城区", + "isLeaf": true + }, { + "value": 445203, + "label": "揭东区", + "isLeaf": true + }, { + "value": 445222, + "label": "揭西县", + "isLeaf": true + }, { + "value": 445224, + "label": "惠来县", + "isLeaf": true + }, { + "value": 445281, + "label": "普宁市", + "isLeaf": true + }] + }, { + "value": 445300, + "label": "云浮市", + "children": [{ + "value": 445302, + "label": "云城区", + "isLeaf": true + }, { + "value": 445303, + "label": "云安区", + "isLeaf": true + }, { + "value": 445321, + "label": "新兴县", + "isLeaf": true + }, { + "value": 445322, + "label": "郁南县", + "isLeaf": true + }, { + "value": 445381, + "label": "罗定市", + "isLeaf": true + }] + }] +}, { + "value": 450000, + "label": "广西壮族自治区", + "children": [{ + "value": 450100, + "label": "南宁市", + "children": [{ + "value": 450102, + "label": "兴宁区", + "isLeaf": true + }, { + "value": 450103, + "label": "青秀区", + "isLeaf": true + }, { + "value": 450105, + "label": "江南区", + "isLeaf": true + }, { + "value": 450107, + "label": "西乡塘区", + "isLeaf": true + }, { + "value": 450108, + "label": "良庆区", + "isLeaf": true + }, { + "value": 450109, + "label": "邕宁区", + "isLeaf": true + }, { + "value": 450110, + "label": "武鸣区", + "isLeaf": true + }, { + "value": 450123, + "label": "隆安县", + "isLeaf": true + }, { + "value": 450124, + "label": "马山县", + "isLeaf": true + }, { + "value": 450125, + "label": "上林县", + "isLeaf": true + }, { + "value": 450126, + "label": "宾阳县", + "isLeaf": true + }, { + "value": 450127, + "label": "横县", + "isLeaf": true + }] + }, { + "value": 450200, + "label": "柳州市", + "children": [{ + "value": 450202, + "label": "城中区", + "isLeaf": true + }, { + "value": 450203, + "label": "鱼峰区", + "isLeaf": true + }, { + "value": 450204, + "label": "柳南区", + "isLeaf": true + }, { + "value": 450205, + "label": "柳北区", + "isLeaf": true + }, { + "value": 450206, + "label": "柳江区", + "isLeaf": true + }, { + "value": 450222, + "label": "柳城县", + "isLeaf": true + }, { + "value": 450223, + "label": "鹿寨县", + "isLeaf": true + }, { + "value": 450224, + "label": "融安县", + "isLeaf": true + }, { + "value": 450225, + "label": "融水苗族自治县", + "isLeaf": true + }, { + "value": 450226, + "label": "三江侗族自治县", + "isLeaf": true + }] + }, { + "value": 450300, + "label": "桂林市", + "children": [{ + "value": 450302, + "label": "秀峰区", + "isLeaf": true + }, { + "value": 450303, + "label": "叠彩区", + "isLeaf": true + }, { + "value": 450304, + "label": "象山区", + "isLeaf": true + }, { + "value": 450305, + "label": "七星区", + "isLeaf": true + }, { + "value": 450311, + "label": "雁山区", + "isLeaf": true + }, { + "value": 450312, + "label": "临桂区", + "isLeaf": true + }, { + "value": 450321, + "label": "阳朔县", + "isLeaf": true + }, { + "value": 450323, + "label": "灵川县", + "isLeaf": true + }, { + "value": 450324, + "label": "全州县", + "isLeaf": true + }, { + "value": 450325, + "label": "兴安县", + "isLeaf": true + }, { + "value": 450326, + "label": "永福县", + "isLeaf": true + }, { + "value": 450327, + "label": "灌阳县", + "isLeaf": true + }, { + "value": 450328, + "label": "龙胜各族自治县", + "isLeaf": true + }, { + "value": 450329, + "label": "资源县", + "isLeaf": true + }, { + "value": 450330, + "label": "平乐县", + "isLeaf": true + }, { + "value": 450331, + "label": "荔浦县", + "isLeaf": true + }, { + "value": 450332, + "label": "恭城瑶族自治县", + "isLeaf": true + }] + }, { + "value": 450400, + "label": "梧州市", + "children": [{ + "value": 450403, + "label": "万秀区", + "isLeaf": true + }, { + "value": 450405, + "label": "长洲区", + "isLeaf": true + }, { + "value": 450406, + "label": "龙圩区", + "isLeaf": true + }, { + "value": 450421, + "label": "苍梧县", + "isLeaf": true + }, { + "value": 450422, + "label": "藤县", + "isLeaf": true + }, { + "value": 450423, + "label": "蒙山县", + "isLeaf": true + }, { + "value": 450481, + "label": "岑溪市", + "isLeaf": true + }] + }, { + "value": 450500, + "label": "北海市", + "children": [{ + "value": 450502, + "label": "海城区", + "isLeaf": true + }, { + "value": 450503, + "label": "银海区", + "isLeaf": true + }, { + "value": 450512, + "label": "铁山港区", + "isLeaf": true + }, { + "value": 450521, + "label": "合浦县", + "isLeaf": true + }] + }, { + "value": 450600, + "label": "防城港市", + "children": [{ + "value": 450602, + "label": "港口区", + "isLeaf": true + }, { + "value": 450603, + "label": "防城区", + "isLeaf": true + }, { + "value": 450621, + "label": "上思县", + "isLeaf": true + }, { + "value": 450681, + "label": "东兴市", + "isLeaf": true + }] + }, { + "value": 450700, + "label": "钦州市", + "children": [{ + "value": 450702, + "label": "钦南区", + "isLeaf": true + }, { + "value": 450703, + "label": "钦北区", + "isLeaf": true + }, { + "value": 450721, + "label": "灵山县", + "isLeaf": true + }, { + "value": 450722, + "label": "浦北县", + "isLeaf": true + }] + }, { + "value": 450800, + "label": "贵港市", + "children": [{ + "value": 450802, + "label": "港北区", + "isLeaf": true + }, { + "value": 450803, + "label": "港南区", + "isLeaf": true + }, { + "value": 450804, + "label": "覃塘区", + "isLeaf": true + }, { + "value": 450821, + "label": "平南县", + "isLeaf": true + }, { + "value": 450881, + "label": "桂平市", + "isLeaf": true + }] + }, { + "value": 450900, + "label": "玉林市", + "children": [{ + "value": 450902, + "label": "玉州区", + "isLeaf": true + }, { + "value": 450903, + "label": "福绵区", + "isLeaf": true + }, { + "value": 450921, + "label": "容县", + "isLeaf": true + }, { + "value": 450922, + "label": "陆川县", + "isLeaf": true + }, { + "value": 450923, + "label": "博白县", + "isLeaf": true + }, { + "value": 450924, + "label": "兴业县", + "isLeaf": true + }, { + "value": 450981, + "label": "北流市", + "isLeaf": true + }] + }, { + "value": 451000, + "label": "百色市", + "children": [{ + "value": 451002, + "label": "右江区", + "isLeaf": true + }, { + "value": 451021, + "label": "田阳县", + "isLeaf": true + }, { + "value": 451022, + "label": "田东县", + "isLeaf": true + }, { + "value": 451023, + "label": "平果县", + "isLeaf": true + }, { + "value": 451024, + "label": "德保县", + "isLeaf": true + }, { + "value": 451026, + "label": "那坡县", + "isLeaf": true + }, { + "value": 451027, + "label": "凌云县", + "isLeaf": true + }, { + "value": 451028, + "label": "乐业县", + "isLeaf": true + }, { + "value": 451029, + "label": "田林县", + "isLeaf": true + }, { + "value": 451030, + "label": "西林县", + "isLeaf": true + }, { + "value": 451031, + "label": "隆林各族自治县", + "isLeaf": true + }, { + "value": 451081, + "label": "靖西市", + "isLeaf": true + }] + }, { + "value": 451100, + "label": "贺州市", + "children": [{ + "value": 451102, + "label": "八步区", + "isLeaf": true + }, { + "value": 451103, + "label": "平桂区", + "isLeaf": true + }, { + "value": 451121, + "label": "昭平县", + "isLeaf": true + }, { + "value": 451122, + "label": "钟山县", + "isLeaf": true + }, { + "value": 451123, + "label": "富川瑶族自治县", + "isLeaf": true + }] + }, { + "value": 451200, + "label": "河池市", + "children": [{ + "value": 451202, + "label": "金城江区", + "isLeaf": true + }, { + "value": 451221, + "label": "南丹县", + "isLeaf": true + }, { + "value": 451222, + "label": "天峨县", + "isLeaf": true + }, { + "value": 451223, + "label": "凤山县", + "isLeaf": true + }, { + "value": 451224, + "label": "东兰县", + "isLeaf": true + }, { + "value": 451225, + "label": "罗城仫佬族自治县", + "isLeaf": true + }, { + "value": 451226, + "label": "环江毛南族自治县", + "isLeaf": true + }, { + "value": 451227, + "label": "巴马瑶族自治县", + "isLeaf": true + }, { + "value": 451228, + "label": "都安瑶族自治县", + "isLeaf": true + }, { + "value": 451229, + "label": "大化瑶族自治县", + "isLeaf": true + }, { + "value": 451281, + "label": "宜州市", + "isLeaf": true + }] + }, { + "value": 451300, + "label": "来宾市", + "children": [{ + "value": 451302, + "label": "兴宾区", + "isLeaf": true + }, { + "value": 451321, + "label": "忻城县", + "isLeaf": true + }, { + "value": 451322, + "label": "象州县", + "isLeaf": true + }, { + "value": 451323, + "label": "武宣县", + "isLeaf": true + }, { + "value": 451324, + "label": "金秀瑶族自治县", + "isLeaf": true + }, { + "value": 451381, + "label": "合山市", + "isLeaf": true + }] + }, { + "value": 451400, + "label": "崇左市", + "children": [{ + "value": 451402, + "label": "江州区", + "isLeaf": true + }, { + "value": 451421, + "label": "扶绥县", + "isLeaf": true + }, { + "value": 451422, + "label": "宁明县", + "isLeaf": true + }, { + "value": 451423, + "label": "龙州县", + "isLeaf": true + }, { + "value": 451424, + "label": "大新县", + "isLeaf": true + }, { + "value": 451425, + "label": "天等县", + "isLeaf": true + }, { + "value": 451481, + "label": "凭祥市", + "isLeaf": true + }] + }] +}, { + "value": 460000, + "label": "海南省", + "children": [{ + "value": 460100, + "label": "海口市", + "children": [{ + "value": 460105, + "label": "秀英区", + "isLeaf": true + }, { + "value": 460106, + "label": "龙华区", + "isLeaf": true + }, { + "value": 460107, + "label": "琼山区", + "isLeaf": true + }, { + "value": 460108, + "label": "美兰区", + "isLeaf": true + }] + }, { + "value": 460200, + "label": "三亚市", + "children": [{ + "value": 460202, + "label": "海棠区", + "isLeaf": true + }, { + "value": 460203, + "label": "吉阳区", + "isLeaf": true + }, { + "value": 460204, + "label": "天涯区", + "isLeaf": true + }, { + "value": 460205, + "label": "崖州区", + "isLeaf": true + }] + }, { + "value": 460300, + "label": "三沙市", + "children": [{ + "value": 460321, + "label": "西沙群岛", + "isLeaf": true + }, { + "value": 460322, + "label": "南沙群岛", + "isLeaf": true + }, { + "value": 460323, + "label": "中沙群岛的岛礁及其海域", + "isLeaf": true + }] + }, { + "value": 460400, + "label": "儋州市", + "children": [{ + "value": 460400100, + "label": "那大镇", + "isLeaf": true + }, { + "value": 460400101, + "label": "和庆镇", + "isLeaf": true + }, { + "value": 460400102, + "label": "南丰镇", + "isLeaf": true + }, { + "value": 460400103, + "label": "大成镇", + "isLeaf": true + }, { + "value": 460400104, + "label": "雅星镇", + "isLeaf": true + }, { + "value": 460400105, + "label": "兰洋镇", + "isLeaf": true + }, { + "value": 460400106, + "label": "光村镇", + "isLeaf": true + }, { + "value": 460400107, + "label": "木棠镇", + "isLeaf": true + }, { + "value": 460400108, + "label": "海头镇", + "isLeaf": true + }, { + "value": 460400109, + "label": "峨蔓镇", + "isLeaf": true + }, { + "value": 460400110, + "label": "三都镇", + "isLeaf": true + }, { + "value": 460400111, + "label": "王五镇", + "isLeaf": true + }, { + "value": 460400112, + "label": "白马井镇", + "isLeaf": true + }, { + "value": 460400113, + "label": "中和镇", + "isLeaf": true + }, { + "value": 460400114, + "label": "排浦镇", + "isLeaf": true + }, { + "value": 460400115, + "label": "东成镇", + "isLeaf": true + }, { + "value": 460400116, + "label": "新州镇", + "isLeaf": true + }, { + "value": 460400400, + "label": "国营西培农场", + "isLeaf": true + }, { + "value": 460400404, + "label": "国营西联农场", + "isLeaf": true + }, { + "value": 460400405, + "label": "国营蓝洋农场", + "isLeaf": true + }, { + "value": 460400407, + "label": "国营八一农场", + "isLeaf": true + }, { + "value": 460400499, + "label": "洋浦经济开发区", + "isLeaf": true + }, { + "value": 460400500, + "label": "华南热作学院", + "isLeaf": true + }] + }, { + "value": 469000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 469001, + "label": "五指山市", + "isLeaf": true + }, { + "value": 469002, + "label": "琼海市", + "isLeaf": true + }, { + "value": 469005, + "label": "文昌市", + "isLeaf": true + }, { + "value": 469006, + "label": "万宁市", + "isLeaf": true + }, { + "value": 469007, + "label": "东方市", + "isLeaf": true + }, { + "value": 469021, + "label": "定安县", + "isLeaf": true + }, { + "value": 469022, + "label": "屯昌县", + "isLeaf": true + }, { + "value": 469023, + "label": "澄迈县", + "isLeaf": true + }, { + "value": 469024, + "label": "临高县", + "isLeaf": true + }, { + "value": 469025, + "label": "白沙黎族自治县", + "isLeaf": true + }, { + "value": 469026, + "label": "昌江黎族自治县", + "isLeaf": true + }, { + "value": 469027, + "label": "乐东黎族自治县", + "isLeaf": true + }, { + "value": 469028, + "label": "陵水黎族自治县", + "isLeaf": true + }, { + "value": 469029, + "label": "保亭黎族苗族自治县", + "isLeaf": true + }, { + "value": 469030, + "label": "琼中黎族苗族自治县", + "isLeaf": true + }] + }] +}, { + "value": 500000, + "label": "重庆市", + "children": [{ + "value": 500100, + "label": "市辖区", + "children": [{ + "value": 500101, + "label": "万州区", + "isLeaf": true + }, { + "value": 500102, + "label": "涪陵区", + "isLeaf": true + }, { + "value": 500103, + "label": "渝中区", + "isLeaf": true + }, { + "value": 500104, + "label": "大渡口区", + "isLeaf": true + }, { + "value": 500105, + "label": "江北区", + "isLeaf": true + }, { + "value": 500106, + "label": "沙坪坝区", + "isLeaf": true + }, { + "value": 500107, + "label": "九龙坡区", + "isLeaf": true + }, { + "value": 500108, + "label": "南岸区", + "isLeaf": true + }, { + "value": 500109, + "label": "北碚区", + "isLeaf": true + }, { + "value": 500110, + "label": "綦江区", + "isLeaf": true + }, { + "value": 500111, + "label": "大足区", + "isLeaf": true + }, { + "value": 500112, + "label": "渝北区", + "isLeaf": true + }, { + "value": 500113, + "label": "巴南区", + "isLeaf": true + }, { + "value": 500114, + "label": "黔江区", + "isLeaf": true + }, { + "value": 500115, + "label": "长寿区", + "isLeaf": true + }, { + "value": 500116, + "label": "江津区", + "isLeaf": true + }, { + "value": 500117, + "label": "合川区", + "isLeaf": true + }, { + "value": 500118, + "label": "永川区", + "isLeaf": true + }, { + "value": 500119, + "label": "南川区", + "isLeaf": true + }, { + "value": 500120, + "label": "璧山区", + "isLeaf": true + }, { + "value": 500151, + "label": "铜梁区", + "isLeaf": true + }, { + "value": 500152, + "label": "潼南区", + "isLeaf": true + }, { + "value": 500153, + "label": "荣昌区", + "isLeaf": true + }, { + "value": 500154, + "label": "开州区", + "isLeaf": true + }, { + "value": 500228, + "label": "梁平区", + "isLeaf": true + }, { + "value": 500232, + "label": "武隆区", + "isLeaf": true + }] + }, { + "value": 500200, + "label": "县", + "children": [{ + "value": 500229, + "label": "城口县", + "isLeaf": true + }, { + "value": 500230, + "label": "丰都县", + "isLeaf": true + }, { + "value": 500231, + "label": "垫江县", + "isLeaf": true + }, { + "value": 500233, + "label": "忠县", + "isLeaf": true + }, { + "value": 500235, + "label": "云阳县", + "isLeaf": true + }, { + "value": 500236, + "label": "奉节县", + "isLeaf": true + }, { + "value": 500237, + "label": "巫山县", + "isLeaf": true + }, { + "value": 500238, + "label": "巫溪县", + "isLeaf": true + }, { + "value": 500240, + "label": "石柱土家族自治县", + "isLeaf": true + }, { + "value": 500241, + "label": "秀山土家族苗族自治县", + "isLeaf": true + }, { + "value": 500242, + "label": "酉阳土家族苗族自治县", + "isLeaf": true + }, { + "value": 500243, + "label": "彭水苗族土家族自治县", + "isLeaf": true + }] + }] +}, { + "value": 510000, + "label": "四川省", + "children": [{ + "value": 510100, + "label": "成都市", + "children": [{ + "value": 510104, + "label": "锦江区", + "isLeaf": true + }, { + "value": 510105, + "label": "青羊区", + "isLeaf": true + }, { + "value": 510106, + "label": "金牛区", + "isLeaf": true + }, { + "value": 510107, + "label": "武侯区", + "isLeaf": true + }, { + "value": 510108, + "label": "成华区", + "isLeaf": true + }, { + "value": 510112, + "label": "龙泉驿区", + "isLeaf": true + }, { + "value": 510113, + "label": "青白江区", + "isLeaf": true + }, { + "value": 510114, + "label": "新都区", + "isLeaf": true + }, { + "value": 510115, + "label": "温江区", + "isLeaf": true + }, { + "value": 510116, + "label": "双流区", + "isLeaf": true + }, { + "value": 510121, + "label": "金堂县", + "isLeaf": true + }, { + "value": 510124, + "label": "郫县", + "isLeaf": true + }, { + "value": 510129, + "label": "大邑县", + "isLeaf": true + }, { + "value": 510131, + "label": "蒲江县", + "isLeaf": true + }, { + "value": 510132, + "label": "新津县", + "isLeaf": true + }, { + "value": 510181, + "label": "都江堰市", + "isLeaf": true + }, { + "value": 510182, + "label": "彭州市", + "isLeaf": true + }, { + "value": 510183, + "label": "邛崃市", + "isLeaf": true + }, { + "value": 510184, + "label": "崇州市", + "isLeaf": true + }, { + "value": 510185, + "label": "简阳市", + "isLeaf": true + }] + }, { + "value": 510300, + "label": "自贡市", + "children": [{ + "value": 510302, + "label": "自流井区", + "isLeaf": true + }, { + "value": 510303, + "label": "贡井区", + "isLeaf": true + }, { + "value": 510304, + "label": "大安区", + "isLeaf": true + }, { + "value": 510311, + "label": "沿滩区", + "isLeaf": true + }, { + "value": 510321, + "label": "荣县", + "isLeaf": true + }, { + "value": 510322, + "label": "富顺县", + "isLeaf": true + }] + }, { + "value": 510400, + "label": "攀枝花市", + "children": [{ + "value": 510402, + "label": "东区", + "isLeaf": true + }, { + "value": 510403, + "label": "西区", + "isLeaf": true + }, { + "value": 510411, + "label": "仁和区", + "isLeaf": true + }, { + "value": 510421, + "label": "米易县", + "isLeaf": true + }, { + "value": 510422, + "label": "盐边县", + "isLeaf": true + }] + }, { + "value": 510500, + "label": "泸州市", + "children": [{ + "value": 510502, + "label": "江阳区", + "isLeaf": true + }, { + "value": 510503, + "label": "纳溪区", + "isLeaf": true + }, { + "value": 510504, + "label": "龙马潭区", + "isLeaf": true + }, { + "value": 510521, + "label": "泸县", + "isLeaf": true + }, { + "value": 510522, + "label": "合江县", + "isLeaf": true + }, { + "value": 510524, + "label": "叙永县", + "isLeaf": true + }, { + "value": 510525, + "label": "古蔺县", + "isLeaf": true + }] + }, { + "value": 510600, + "label": "德阳市", + "children": [{ + "value": 510603, + "label": "旌阳区", + "isLeaf": true + }, { + "value": 510623, + "label": "中江县", + "isLeaf": true + }, { + "value": 510626, + "label": "罗江县", + "isLeaf": true + }, { + "value": 510681, + "label": "广汉市", + "isLeaf": true + }, { + "value": 510682, + "label": "什邡市", + "isLeaf": true + }, { + "value": 510683, + "label": "绵竹市", + "isLeaf": true + }] + }, { + "value": 510700, + "label": "绵阳市", + "children": [{ + "value": 510703, + "label": "涪城区", + "isLeaf": true + }, { + "value": 510704, + "label": "游仙区", + "isLeaf": true + }, { + "value": 510705, + "label": "安州区", + "isLeaf": true + }, { + "value": 510722, + "label": "三台县", + "isLeaf": true + }, { + "value": 510723, + "label": "盐亭县", + "isLeaf": true + }, { + "value": 510725, + "label": "梓潼县", + "isLeaf": true + }, { + "value": 510726, + "label": "北川羌族自治县", + "isLeaf": true + }, { + "value": 510727, + "label": "平武县", + "isLeaf": true + }, { + "value": 510781, + "label": "江油市", + "isLeaf": true + }] + }, { + "value": 510800, + "label": "广元市", + "children": [{ + "value": 510802, + "label": "利州区", + "isLeaf": true + }, { + "value": 510811, + "label": "昭化区", + "isLeaf": true + }, { + "value": 510812, + "label": "朝天区", + "isLeaf": true + }, { + "value": 510821, + "label": "旺苍县", + "isLeaf": true + }, { + "value": 510822, + "label": "青川县", + "isLeaf": true + }, { + "value": 510823, + "label": "剑阁县", + "isLeaf": true + }, { + "value": 510824, + "label": "苍溪县", + "isLeaf": true + }] + }, { + "value": 510900, + "label": "遂宁市", + "children": [{ + "value": 510903, + "label": "船山区", + "isLeaf": true + }, { + "value": 510904, + "label": "安居区", + "isLeaf": true + }, { + "value": 510921, + "label": "蓬溪县", + "isLeaf": true + }, { + "value": 510922, + "label": "射洪县", + "isLeaf": true + }, { + "value": 510923, + "label": "大英县", + "isLeaf": true + }] + }, { + "value": 511000, + "label": "内江市", + "children": [{ + "value": 511002, + "label": "市中区", + "isLeaf": true + }, { + "value": 511011, + "label": "东兴区", + "isLeaf": true + }, { + "value": 511024, + "label": "威远县", + "isLeaf": true + }, { + "value": 511025, + "label": "资中县", + "isLeaf": true + }, { + "value": 511028, + "label": "隆昌县", + "isLeaf": true + }] + }, { + "value": 511100, + "label": "乐山市", + "children": [{ + "value": 511102, + "label": "市中区", + "isLeaf": true + }, { + "value": 511111, + "label": "沙湾区", + "isLeaf": true + }, { + "value": 511112, + "label": "五通桥区", + "isLeaf": true + }, { + "value": 511113, + "label": "金口河区", + "isLeaf": true + }, { + "value": 511123, + "label": "犍为县", + "isLeaf": true + }, { + "value": 511124, + "label": "井研县", + "isLeaf": true + }, { + "value": 511126, + "label": "夹江县", + "isLeaf": true + }, { + "value": 511129, + "label": "沐川县", + "isLeaf": true + }, { + "value": 511132, + "label": "峨边彝族自治县", + "isLeaf": true + }, { + "value": 511133, + "label": "马边彝族自治县", + "isLeaf": true + }, { + "value": 511181, + "label": "峨眉山市", + "isLeaf": true + }] + }, { + "value": 511300, + "label": "南充市", + "children": [{ + "value": 511302, + "label": "顺庆区", + "isLeaf": true + }, { + "value": 511303, + "label": "高坪区", + "isLeaf": true + }, { + "value": 511304, + "label": "嘉陵区", + "isLeaf": true + }, { + "value": 511321, + "label": "南部县", + "isLeaf": true + }, { + "value": 511322, + "label": "营山县", + "isLeaf": true + }, { + "value": 511323, + "label": "蓬安县", + "isLeaf": true + }, { + "value": 511324, + "label": "仪陇县", + "isLeaf": true + }, { + "value": 511325, + "label": "西充县", + "isLeaf": true + }, { + "value": 511381, + "label": "阆中市", + "isLeaf": true + }] + }, { + "value": 511400, + "label": "眉山市", + "children": [{ + "value": 511402, + "label": "东坡区", + "isLeaf": true + }, { + "value": 511403, + "label": "彭山区", + "isLeaf": true + }, { + "value": 511421, + "label": "仁寿县", + "isLeaf": true + }, { + "value": 511423, + "label": "洪雅县", + "isLeaf": true + }, { + "value": 511424, + "label": "丹棱县", + "isLeaf": true + }, { + "value": 511425, + "label": "青神县", + "isLeaf": true + }] + }, { + "value": 511500, + "label": "宜宾市", + "children": [{ + "value": 511502, + "label": "翠屏区", + "isLeaf": true + }, { + "value": 511503, + "label": "南溪区", + "isLeaf": true + }, { + "value": 511521, + "label": "宜宾县", + "isLeaf": true + }, { + "value": 511523, + "label": "江安县", + "isLeaf": true + }, { + "value": 511524, + "label": "长宁县", + "isLeaf": true + }, { + "value": 511525, + "label": "高县", + "isLeaf": true + }, { + "value": 511526, + "label": "珙县", + "isLeaf": true + }, { + "value": 511527, + "label": "筠连县", + "isLeaf": true + }, { + "value": 511528, + "label": "兴文县", + "isLeaf": true + }, { + "value": 511529, + "label": "屏山县", + "isLeaf": true + }] + }, { + "value": 511600, + "label": "广安市", + "children": [{ + "value": 511602, + "label": "广安区", + "isLeaf": true + }, { + "value": 511603, + "label": "前锋区", + "isLeaf": true + }, { + "value": 511621, + "label": "岳池县", + "isLeaf": true + }, { + "value": 511622, + "label": "武胜县", + "isLeaf": true + }, { + "value": 511623, + "label": "邻水县", + "isLeaf": true + }, { + "value": 511681, + "label": "华蓥市", + "isLeaf": true + }] + }, { + "value": 511700, + "label": "达州市", + "children": [{ + "value": 511702, + "label": "通川区", + "isLeaf": true + }, { + "value": 511703, + "label": "达川区", + "isLeaf": true + }, { + "value": 511722, + "label": "宣汉县", + "isLeaf": true + }, { + "value": 511723, + "label": "开江县", + "isLeaf": true + }, { + "value": 511724, + "label": "大竹县", + "isLeaf": true + }, { + "value": 511725, + "label": "渠县", + "isLeaf": true + }, { + "value": 511781, + "label": "万源市", + "isLeaf": true + }] + }, { + "value": 511800, + "label": "雅安市", + "children": [{ + "value": 511802, + "label": "雨城区", + "isLeaf": true + }, { + "value": 511803, + "label": "名山区", + "isLeaf": true + }, { + "value": 511822, + "label": "荥经县", + "isLeaf": true + }, { + "value": 511823, + "label": "汉源县", + "isLeaf": true + }, { + "value": 511824, + "label": "石棉县", + "isLeaf": true + }, { + "value": 511825, + "label": "天全县", + "isLeaf": true + }, { + "value": 511826, + "label": "芦山县", + "isLeaf": true + }, { + "value": 511827, + "label": "宝兴县", + "isLeaf": true + }] + }, { + "value": 511900, + "label": "巴中市", + "children": [{ + "value": 511902, + "label": "巴州区", + "isLeaf": true + }, { + "value": 511903, + "label": "恩阳区", + "isLeaf": true + }, { + "value": 511921, + "label": "通江县", + "isLeaf": true + }, { + "value": 511922, + "label": "南江县", + "isLeaf": true + }, { + "value": 511923, + "label": "平昌县", + "isLeaf": true + }] + }, { + "value": 512000, + "label": "资阳市", + "children": [{ + "value": 512002, + "label": "雁江区", + "isLeaf": true + }, { + "value": 512021, + "label": "安岳县", + "isLeaf": true + }, { + "value": 512022, + "label": "乐至县", + "isLeaf": true + }] + }, { + "value": 513200, + "label": "阿坝藏族羌族自治州", + "children": [{ + "value": 513201, + "label": "马尔康市", + "isLeaf": true + }, { + "value": 513221, + "label": "汶川县", + "isLeaf": true + }, { + "value": 513222, + "label": "理县", + "isLeaf": true + }, { + "value": 513223, + "label": "茂县", + "isLeaf": true + }, { + "value": 513224, + "label": "松潘县", + "isLeaf": true + }, { + "value": 513225, + "label": "九寨沟县", + "isLeaf": true + }, { + "value": 513226, + "label": "金川县", + "isLeaf": true + }, { + "value": 513227, + "label": "小金县", + "isLeaf": true + }, { + "value": 513228, + "label": "黑水县", + "isLeaf": true + }, { + "value": 513230, + "label": "壤塘县", + "isLeaf": true + }, { + "value": 513231, + "label": "阿坝县", + "isLeaf": true + }, { + "value": 513232, + "label": "若尔盖县", + "isLeaf": true + }, { + "value": 513233, + "label": "红原县", + "isLeaf": true + }] + }, { + "value": 513300, + "label": "甘孜藏族自治州", + "children": [{ + "value": 513301, + "label": "康定市", + "isLeaf": true + }, { + "value": 513322, + "label": "泸定县", + "isLeaf": true + }, { + "value": 513323, + "label": "丹巴县", + "isLeaf": true + }, { + "value": 513324, + "label": "九龙县", + "isLeaf": true + }, { + "value": 513325, + "label": "雅江县", + "isLeaf": true + }, { + "value": 513326, + "label": "道孚县", + "isLeaf": true + }, { + "value": 513327, + "label": "炉霍县", + "isLeaf": true + }, { + "value": 513328, + "label": "甘孜县", + "isLeaf": true + }, { + "value": 513329, + "label": "新龙县", + "isLeaf": true + }, { + "value": 513330, + "label": "德格县", + "isLeaf": true + }, { + "value": 513331, + "label": "白玉县", + "isLeaf": true + }, { + "value": 513332, + "label": "石渠县", + "isLeaf": true + }, { + "value": 513333, + "label": "色达县", + "isLeaf": true + }, { + "value": 513334, + "label": "理塘县", + "isLeaf": true + }, { + "value": 513335, + "label": "巴塘县", + "isLeaf": true + }, { + "value": 513336, + "label": "乡城县", + "isLeaf": true + }, { + "value": 513337, + "label": "稻城县", + "isLeaf": true + }, { + "value": 513338, + "label": "得荣县", + "isLeaf": true + }] + }, { + "value": 513400, + "label": "凉山彝族自治州", + "children": [{ + "value": 513401, + "label": "西昌市", + "isLeaf": true + }, { + "value": 513422, + "label": "木里藏族自治县", + "isLeaf": true + }, { + "value": 513423, + "label": "盐源县", + "isLeaf": true + }, { + "value": 513424, + "label": "德昌县", + "isLeaf": true + }, { + "value": 513425, + "label": "会理县", + "isLeaf": true + }, { + "value": 513426, + "label": "会东县", + "isLeaf": true + }, { + "value": 513427, + "label": "宁南县", + "isLeaf": true + }, { + "value": 513428, + "label": "普格县", + "isLeaf": true + }, { + "value": 513429, + "label": "布拖县", + "isLeaf": true + }, { + "value": 513430, + "label": "金阳县", + "isLeaf": true + }, { + "value": 513431, + "label": "昭觉县", + "isLeaf": true + }, { + "value": 513432, + "label": "喜德县", + "isLeaf": true + }, { + "value": 513433, + "label": "冕宁县", + "isLeaf": true + }, { + "value": 513434, + "label": "越西县", + "isLeaf": true + }, { + "value": 513435, + "label": "甘洛县", + "isLeaf": true + }, { + "value": 513436, + "label": "美姑县", + "isLeaf": true + }, { + "value": 513437, + "label": "雷波县", + "isLeaf": true + }] + }] +}, { + "value": 520000, + "label": "贵州省", + "children": [{ + "value": 520100, + "label": "贵阳市", + "children": [{ + "value": 520102, + "label": "南明区", + "isLeaf": true + }, { + "value": 520103, + "label": "云岩区", + "isLeaf": true + }, { + "value": 520111, + "label": "花溪区", + "isLeaf": true + }, { + "value": 520112, + "label": "乌当区", + "isLeaf": true + }, { + "value": 520113, + "label": "白云区", + "isLeaf": true + }, { + "value": 520115, + "label": "观山湖区", + "isLeaf": true + }, { + "value": 520121, + "label": "开阳县", + "isLeaf": true + }, { + "value": 520122, + "label": "息烽县", + "isLeaf": true + }, { + "value": 520123, + "label": "修文县", + "isLeaf": true + }, { + "value": 520181, + "label": "清镇市", + "isLeaf": true + }] + }, { + "value": 520200, + "label": "六盘水市", + "children": [{ + "value": 520201, + "label": "钟山区", + "isLeaf": true + }, { + "value": 520203, + "label": "六枝特区", + "isLeaf": true + }, { + "value": 520221, + "label": "水城县", + "isLeaf": true + }, { + "value": 520222, + "label": "盘县", + "isLeaf": true + }] + }, { + "value": 520300, + "label": "遵义市", + "children": [{ + "value": 520302, + "label": "红花岗区", + "isLeaf": true + }, { + "value": 520303, + "label": "汇川区", + "isLeaf": true + }, { + "value": 520304, + "label": "播州区", + "isLeaf": true + }, { + "value": 520322, + "label": "桐梓县", + "isLeaf": true + }, { + "value": 520323, + "label": "绥阳县", + "isLeaf": true + }, { + "value": 520324, + "label": "正安县", + "isLeaf": true + }, { + "value": 520325, + "label": "道真仡佬族苗族自治县", + "isLeaf": true + }, { + "value": 520326, + "label": "务川仡佬族苗族自治县", + "isLeaf": true + }, { + "value": 520327, + "label": "凤冈县", + "isLeaf": true + }, { + "value": 520328, + "label": "湄潭县", + "isLeaf": true + }, { + "value": 520329, + "label": "余庆县", + "isLeaf": true + }, { + "value": 520330, + "label": "习水县", + "isLeaf": true + }, { + "value": 520381, + "label": "赤水市", + "isLeaf": true + }, { + "value": 520382, + "label": "仁怀市", + "isLeaf": true + }] + }, { + "value": 520400, + "label": "安顺市", + "children": [{ + "value": 520402, + "label": "西秀区", + "isLeaf": true + }, { + "value": 520403, + "label": "平坝区", + "isLeaf": true + }, { + "value": 520422, + "label": "普定县", + "isLeaf": true + }, { + "value": 520423, + "label": "镇宁布依族苗族自治县", + "isLeaf": true + }, { + "value": 520424, + "label": "关岭布依族苗族自治县", + "isLeaf": true + }, { + "value": 520425, + "label": "紫云苗族布依族自治县", + "isLeaf": true + }] + }, { + "value": 520500, + "label": "毕节市", + "children": [{ + "value": 520502, + "label": "七星关区", + "isLeaf": true + }, { + "value": 520521, + "label": "大方县", + "isLeaf": true + }, { + "value": 520522, + "label": "黔西县", + "isLeaf": true + }, { + "value": 520523, + "label": "金沙县", + "isLeaf": true + }, { + "value": 520524, + "label": "织金县", + "isLeaf": true + }, { + "value": 520525, + "label": "纳雍县", + "isLeaf": true + }, { + "value": 520526, + "label": "威宁彝族回族苗族自治县", + "isLeaf": true + }, { + "value": 520527, + "label": "赫章县", + "isLeaf": true + }] + }, { + "value": 520600, + "label": "铜仁市", + "children": [{ + "value": 520602, + "label": "碧江区", + "isLeaf": true + }, { + "value": 520603, + "label": "万山区", + "isLeaf": true + }, { + "value": 520621, + "label": "江口县", + "isLeaf": true + }, { + "value": 520622, + "label": "玉屏侗族自治县", + "isLeaf": true + }, { + "value": 520623, + "label": "石阡县", + "isLeaf": true + }, { + "value": 520624, + "label": "思南县", + "isLeaf": true + }, { + "value": 520625, + "label": "印江土家族苗族自治县", + "isLeaf": true + }, { + "value": 520626, + "label": "德江县", + "isLeaf": true + }, { + "value": 520627, + "label": "沿河土家族自治县", + "isLeaf": true + }, { + "value": 520628, + "label": "松桃苗族自治县", + "isLeaf": true + }] + }, { + "value": 522300, + "label": "黔西南布依族苗族自治州", + "children": [{ + "value": 522301, + "label": "兴义市", + "isLeaf": true + }, { + "value": 522322, + "label": "兴仁县", + "isLeaf": true + }, { + "value": 522323, + "label": "普安县", + "isLeaf": true + }, { + "value": 522324, + "label": "晴隆县", + "isLeaf": true + }, { + "value": 522325, + "label": "贞丰县", + "isLeaf": true + }, { + "value": 522326, + "label": "望谟县", + "isLeaf": true + }, { + "value": 522327, + "label": "册亨县", + "isLeaf": true + }, { + "value": 522328, + "label": "安龙县", + "isLeaf": true + }] + }, { + "value": 522600, + "label": "黔东南苗族侗族自治州", + "children": [{ + "value": 522601, + "label": "凯里市", + "isLeaf": true + }, { + "value": 522622, + "label": "黄平县", + "isLeaf": true + }, { + "value": 522623, + "label": "施秉县", + "isLeaf": true + }, { + "value": 522624, + "label": "三穗县", + "isLeaf": true + }, { + "value": 522625, + "label": "镇远县", + "isLeaf": true + }, { + "value": 522626, + "label": "岑巩县", + "isLeaf": true + }, { + "value": 522627, + "label": "天柱县", + "isLeaf": true + }, { + "value": 522628, + "label": "锦屏县", + "isLeaf": true + }, { + "value": 522629, + "label": "剑河县", + "isLeaf": true + }, { + "value": 522630, + "label": "台江县", + "isLeaf": true + }, { + "value": 522631, + "label": "黎平县", + "isLeaf": true + }, { + "value": 522632, + "label": "榕江县", + "isLeaf": true + }, { + "value": 522633, + "label": "从江县", + "isLeaf": true + }, { + "value": 522634, + "label": "雷山县", + "isLeaf": true + }, { + "value": 522635, + "label": "麻江县", + "isLeaf": true + }, { + "value": 522636, + "label": "丹寨县", + "isLeaf": true + }] + }, { + "value": 522700, + "label": "黔南布依族苗族自治州", + "children": [{ + "value": 522701, + "label": "都匀市", + "isLeaf": true + }, { + "value": 522702, + "label": "福泉市", + "isLeaf": true + }, { + "value": 522722, + "label": "荔波县", + "isLeaf": true + }, { + "value": 522723, + "label": "贵定县", + "isLeaf": true + }, { + "value": 522725, + "label": "瓮安县", + "isLeaf": true + }, { + "value": 522726, + "label": "独山县", + "isLeaf": true + }, { + "value": 522727, + "label": "平塘县", + "isLeaf": true + }, { + "value": 522728, + "label": "罗甸县", + "isLeaf": true + }, { + "value": 522729, + "label": "长顺县", + "isLeaf": true + }, { + "value": 522730, + "label": "龙里县", + "isLeaf": true + }, { + "value": 522731, + "label": "惠水县", + "isLeaf": true + }, { + "value": 522732, + "label": "三都水族自治县", + "isLeaf": true + }] + }] +}, { + "value": 530000, + "label": "云南省", + "children": [{ + "value": 530100, + "label": "昆明市", + "children": [{ + "value": 530102, + "label": "五华区", + "isLeaf": true + }, { + "value": 530103, + "label": "盘龙区", + "isLeaf": true + }, { + "value": 530111, + "label": "官渡区", + "isLeaf": true + }, { + "value": 530112, + "label": "西山区", + "isLeaf": true + }, { + "value": 530113, + "label": "东川区", + "isLeaf": true + }, { + "value": 530114, + "label": "呈贡区", + "isLeaf": true + }, { + "value": 530122, + "label": "晋宁县", + "isLeaf": true + }, { + "value": 530124, + "label": "富民县", + "isLeaf": true + }, { + "value": 530125, + "label": "宜良县", + "isLeaf": true + }, { + "value": 530126, + "label": "石林彝族自治县", + "isLeaf": true + }, { + "value": 530127, + "label": "嵩明县", + "isLeaf": true + }, { + "value": 530128, + "label": "禄劝彝族苗族自治县", + "isLeaf": true + }, { + "value": 530129, + "label": "寻甸回族彝族自治县", + "isLeaf": true + }, { + "value": 530181, + "label": "安宁市", + "isLeaf": true + }] + }, { + "value": 530300, + "label": "曲靖市", + "children": [{ + "value": 530302, + "label": "麒麟区", + "isLeaf": true + }, { + "value": 530303, + "label": "沾益区", + "isLeaf": true + }, { + "value": 530321, + "label": "马龙县", + "isLeaf": true + }, { + "value": 530322, + "label": "陆良县", + "isLeaf": true + }, { + "value": 530323, + "label": "师宗县", + "isLeaf": true + }, { + "value": 530324, + "label": "罗平县", + "isLeaf": true + }, { + "value": 530325, + "label": "富源县", + "isLeaf": true + }, { + "value": 530326, + "label": "会泽县", + "isLeaf": true + }, { + "value": 530381, + "label": "宣威市", + "isLeaf": true + }] + }, { + "value": 530400, + "label": "玉溪市", + "children": [{ + "value": 530402, + "label": "红塔区", + "isLeaf": true + }, { + "value": 530403, + "label": "江川区", + "isLeaf": true + }, { + "value": 530422, + "label": "澄江县", + "isLeaf": true + }, { + "value": 530423, + "label": "通海县", + "isLeaf": true + }, { + "value": 530424, + "label": "华宁县", + "isLeaf": true + }, { + "value": 530425, + "label": "易门县", + "isLeaf": true + }, { + "value": 530426, + "label": "峨山彝族自治县", + "isLeaf": true + }, { + "value": 530427, + "label": "新平彝族傣族自治县", + "isLeaf": true + }, { + "value": 530428, + "label": "元江哈尼族彝族傣族自治县", + "isLeaf": true + }] + }, { + "value": 530500, + "label": "保山市", + "children": [{ + "value": 530502, + "label": "隆阳区", + "isLeaf": true + }, { + "value": 530521, + "label": "施甸县", + "isLeaf": true + }, { + "value": 530523, + "label": "龙陵县", + "isLeaf": true + }, { + "value": 530524, + "label": "昌宁县", + "isLeaf": true + }, { + "value": 530581, + "label": "腾冲市", + "isLeaf": true + }] + }, { + "value": 530600, + "label": "昭通市", + "children": [{ + "value": 530602, + "label": "昭阳区", + "isLeaf": true + }, { + "value": 530621, + "label": "鲁甸县", + "isLeaf": true + }, { + "value": 530622, + "label": "巧家县", + "isLeaf": true + }, { + "value": 530623, + "label": "盐津县", + "isLeaf": true + }, { + "value": 530624, + "label": "大关县", + "isLeaf": true + }, { + "value": 530625, + "label": "永善县", + "isLeaf": true + }, { + "value": 530626, + "label": "绥江县", + "isLeaf": true + }, { + "value": 530627, + "label": "镇雄县", + "isLeaf": true + }, { + "value": 530628, + "label": "彝良县", + "isLeaf": true + }, { + "value": 530629, + "label": "威信县", + "isLeaf": true + }, { + "value": 530630, + "label": "水富县", + "isLeaf": true + }] + }, { + "value": 530700, + "label": "丽江市", + "children": [{ + "value": 530702, + "label": "古城区", + "isLeaf": true + }, { + "value": 530721, + "label": "玉龙纳西族自治县", + "isLeaf": true + }, { + "value": 530722, + "label": "永胜县", + "isLeaf": true + }, { + "value": 530723, + "label": "华坪县", + "isLeaf": true + }, { + "value": 530724, + "label": "宁蒗彝族自治县", + "isLeaf": true + }] + }, { + "value": 530800, + "label": "普洱市", + "children": [{ + "value": 530802, + "label": "思茅区", + "isLeaf": true + }, { + "value": 530821, + "label": "宁洱哈尼族彝族自治县", + "isLeaf": true + }, { + "value": 530822, + "label": "墨江哈尼族自治县", + "isLeaf": true + }, { + "value": 530823, + "label": "景东彝族自治县", + "isLeaf": true + }, { + "value": 530824, + "label": "景谷傣族彝族自治县", + "isLeaf": true + }, { + "value": 530825, + "label": "镇沅彝族哈尼族拉祜族自治县", + "isLeaf": true + }, { + "value": 530826, + "label": "江城哈尼族彝族自治县", + "isLeaf": true + }, { + "value": 530827, + "label": "孟连傣族拉祜族佤族自治县", + "isLeaf": true + }, { + "value": 530828, + "label": "澜沧拉祜族自治县", + "isLeaf": true + }, { + "value": 530829, + "label": "西盟佤族自治县", + "isLeaf": true + }] + }, { + "value": 530900, + "label": "临沧市", + "children": [{ + "value": 530902, + "label": "临翔区", + "isLeaf": true + }, { + "value": 530921, + "label": "凤庆县", + "isLeaf": true + }, { + "value": 530922, + "label": "云县", + "isLeaf": true + }, { + "value": 530923, + "label": "永德县", + "isLeaf": true + }, { + "value": 530924, + "label": "镇康县", + "isLeaf": true + }, { + "value": 530925, + "label": "双江拉祜族佤族布朗族傣族自治县", + "isLeaf": true + }, { + "value": 530926, + "label": "耿马傣族佤族自治县", + "isLeaf": true + }, { + "value": 530927, + "label": "沧源佤族自治县", + "isLeaf": true + }] + }, { + "value": 532300, + "label": "楚雄彝族自治州", + "children": [{ + "value": 532301, + "label": "楚雄市", + "isLeaf": true + }, { + "value": 532322, + "label": "双柏县", + "isLeaf": true + }, { + "value": 532323, + "label": "牟定县", + "isLeaf": true + }, { + "value": 532324, + "label": "南华县", + "isLeaf": true + }, { + "value": 532325, + "label": "姚安县", + "isLeaf": true + }, { + "value": 532326, + "label": "大姚县", + "isLeaf": true + }, { + "value": 532327, + "label": "永仁县", + "isLeaf": true + }, { + "value": 532328, + "label": "元谋县", + "isLeaf": true + }, { + "value": 532329, + "label": "武定县", + "isLeaf": true + }, { + "value": 532331, + "label": "禄丰县", + "isLeaf": true + }] + }, { + "value": 532500, + "label": "红河哈尼族彝族自治州", + "children": [{ + "value": 532501, + "label": "个旧市", + "isLeaf": true + }, { + "value": 532502, + "label": "开远市", + "isLeaf": true + }, { + "value": 532503, + "label": "蒙自市", + "isLeaf": true + }, { + "value": 532504, + "label": "弥勒市", + "isLeaf": true + }, { + "value": 532523, + "label": "屏边苗族自治县", + "isLeaf": true + }, { + "value": 532524, + "label": "建水县", + "isLeaf": true + }, { + "value": 532525, + "label": "石屏县", + "isLeaf": true + }, { + "value": 532527, + "label": "泸西县", + "isLeaf": true + }, { + "value": 532528, + "label": "元阳县", + "isLeaf": true + }, { + "value": 532529, + "label": "红河县", + "isLeaf": true + }, { + "value": 532530, + "label": "金平苗族瑶族傣族自治县", + "isLeaf": true + }, { + "value": 532531, + "label": "绿春县", + "isLeaf": true + }, { + "value": 532532, + "label": "河口瑶族自治县", + "isLeaf": true + }] + }, { + "value": 532600, + "label": "文山壮族苗族自治州", + "children": [{ + "value": 532601, + "label": "文山市", + "isLeaf": true + }, { + "value": 532622, + "label": "砚山县", + "isLeaf": true + }, { + "value": 532623, + "label": "西畴县", + "isLeaf": true + }, { + "value": 532624, + "label": "麻栗坡县", + "isLeaf": true + }, { + "value": 532625, + "label": "马关县", + "isLeaf": true + }, { + "value": 532626, + "label": "丘北县", + "isLeaf": true + }, { + "value": 532627, + "label": "广南县", + "isLeaf": true + }, { + "value": 532628, + "label": "富宁县", + "isLeaf": true + }] + }, { + "value": 532800, + "label": "西双版纳傣族自治州", + "children": [{ + "value": 532801, + "label": "景洪市", + "isLeaf": true + }, { + "value": 532822, + "label": "勐海县", + "isLeaf": true + }, { + "value": 532823, + "label": "勐腊县", + "isLeaf": true + }] + }, { + "value": 532900, + "label": "大理白族自治州", + "children": [{ + "value": 532901, + "label": "大理市", + "isLeaf": true + }, { + "value": 532922, + "label": "漾濞彝族自治县", + "isLeaf": true + }, { + "value": 532923, + "label": "祥云县", + "isLeaf": true + }, { + "value": 532924, + "label": "宾川县", + "isLeaf": true + }, { + "value": 532925, + "label": "弥渡县", + "isLeaf": true + }, { + "value": 532926, + "label": "南涧彝族自治县", + "isLeaf": true + }, { + "value": 532927, + "label": "巍山彝族回族自治县", + "isLeaf": true + }, { + "value": 532928, + "label": "永平县", + "isLeaf": true + }, { + "value": 532929, + "label": "云龙县", + "isLeaf": true + }, { + "value": 532930, + "label": "洱源县", + "isLeaf": true + }, { + "value": 532931, + "label": "剑川县", + "isLeaf": true + }, { + "value": 532932, + "label": "鹤庆县", + "isLeaf": true + }] + }, { + "value": 533100, + "label": "德宏傣族景颇族自治州", + "children": [{ + "value": 533102, + "label": "瑞丽市", + "isLeaf": true + }, { + "value": 533103, + "label": "芒市", + "isLeaf": true + }, { + "value": 533122, + "label": "梁河县", + "isLeaf": true + }, { + "value": 533123, + "label": "盈江县", + "isLeaf": true + }, { + "value": 533124, + "label": "陇川县", + "isLeaf": true + }] + }, { + "value": 533300, + "label": "怒江傈僳族自治州", + "children": [{ + "value": 533301, + "label": "泸水市", + "isLeaf": true + }, { + "value": 533323, + "label": "福贡县", + "isLeaf": true + }, { + "value": 533324, + "label": "贡山独龙族怒族自治县", + "isLeaf": true + }, { + "value": 533325, + "label": "兰坪白族普米族自治县", + "isLeaf": true + }] + }, { + "value": 533400, + "label": "迪庆藏族自治州", + "children": [{ + "value": 533401, + "label": "香格里拉市", + "isLeaf": true + }, { + "value": 533422, + "label": "德钦县", + "isLeaf": true + }, { + "value": 533423, + "label": "维西傈僳族自治县", + "isLeaf": true + }] + }] +}, { + "value": 540000, + "label": "西藏自治区", + "children": [{ + "value": 540100, + "label": "拉萨市", + "children": [{ + "value": 540102, + "label": "城关区", + "isLeaf": true + }, { + "value": 540103, + "label": "堆龙德庆区", + "isLeaf": true + }, { + "value": 540121, + "label": "林周县", + "isLeaf": true + }, { + "value": 540122, + "label": "当雄县", + "isLeaf": true + }, { + "value": 540123, + "label": "尼木县", + "isLeaf": true + }, { + "value": 540124, + "label": "曲水县", + "isLeaf": true + }, { + "value": 540126, + "label": "达孜县", + "isLeaf": true + }, { + "value": 540127, + "label": "墨竹工卡县", + "isLeaf": true + }] + }, { + "value": 540200, + "label": "日喀则市", + "children": [{ + "value": 540202, + "label": "桑珠孜区", + "isLeaf": true + }, { + "value": 540221, + "label": "南木林县", + "isLeaf": true + }, { + "value": 540222, + "label": "江孜县", + "isLeaf": true + }, { + "value": 540223, + "label": "定日县", + "isLeaf": true + }, { + "value": 540224, + "label": "萨迦县", + "isLeaf": true + }, { + "value": 540225, + "label": "拉孜县", + "isLeaf": true + }, { + "value": 540226, + "label": "昂仁县", + "isLeaf": true + }, { + "value": 540227, + "label": "谢通门县", + "isLeaf": true + }, { + "value": 540228, + "label": "白朗县", + "isLeaf": true + }, { + "value": 540229, + "label": "仁布县", + "isLeaf": true + }, { + "value": 540230, + "label": "康马县", + "isLeaf": true + }, { + "value": 540231, + "label": "定结县", + "isLeaf": true + }, { + "value": 540232, + "label": "仲巴县", + "isLeaf": true + }, { + "value": 540233, + "label": "亚东县", + "isLeaf": true + }, { + "value": 540234, + "label": "吉隆县", + "isLeaf": true + }, { + "value": 540235, + "label": "聂拉木县", + "isLeaf": true + }, { + "value": 540236, + "label": "萨嘎县", + "isLeaf": true + }, { + "value": 540237, + "label": "岗巴县", + "isLeaf": true + }] + }, { + "value": 540300, + "label": "昌都市", + "children": [{ + "value": 540302, + "label": "卡若区", + "isLeaf": true + }, { + "value": 540321, + "label": "江达县", + "isLeaf": true + }, { + "value": 540322, + "label": "贡觉县", + "isLeaf": true + }, { + "value": 540323, + "label": "类乌齐县", + "isLeaf": true + }, { + "value": 540324, + "label": "丁青县", + "isLeaf": true + }, { + "value": 540325, + "label": "察雅县", + "isLeaf": true + }, { + "value": 540326, + "label": "八宿县", + "isLeaf": true + }, { + "value": 540327, + "label": "左贡县", + "isLeaf": true + }, { + "value": 540328, + "label": "芒康县", + "isLeaf": true + }, { + "value": 540329, + "label": "洛隆县", + "isLeaf": true + }, { + "value": 540330, + "label": "边坝县", + "isLeaf": true + }] + }, { + "value": 540400, + "label": "林芝市", + "children": [{ + "value": 540402, + "label": "巴宜区", + "isLeaf": true + }, { + "value": 540421, + "label": "工布江达县", + "isLeaf": true + }, { + "value": 540422, + "label": "米林县", + "isLeaf": true + }, { + "value": 540423, + "label": "墨脱县", + "isLeaf": true + }, { + "value": 540424, + "label": "波密县", + "isLeaf": true + }, { + "value": 540425, + "label": "察隅县", + "isLeaf": true + }, { + "value": 540426, + "label": "朗县", + "isLeaf": true + }] + }, { + "value": 540500, + "label": "山南市", + "children": [{ + "value": 540502, + "label": "乃东区", + "isLeaf": true + }, { + "value": 540521, + "label": "扎囊县", + "isLeaf": true + }, { + "value": 540522, + "label": "贡嘎县", + "isLeaf": true + }, { + "value": 540523, + "label": "桑日县", + "isLeaf": true + }, { + "value": 540524, + "label": "琼结县", + "isLeaf": true + }, { + "value": 540525, + "label": "曲松县", + "isLeaf": true + }, { + "value": 540526, + "label": "措美县", + "isLeaf": true + }, { + "value": 540527, + "label": "洛扎县", + "isLeaf": true + }, { + "value": 540528, + "label": "加查县", + "isLeaf": true + }, { + "value": 540529, + "label": "隆子县", + "isLeaf": true + }, { + "value": 540530, + "label": "错那县", + "isLeaf": true + }, { + "value": 540531, + "label": "浪卡子县", + "isLeaf": true + }] + }, { + "value": 542400, + "label": "那曲地区", + "children": [{ + "value": 542421, + "label": "那曲县", + "isLeaf": true + }, { + "value": 542422, + "label": "嘉黎县", + "isLeaf": true + }, { + "value": 542423, + "label": "比如县", + "isLeaf": true + }, { + "value": 542424, + "label": "聂荣县", + "isLeaf": true + }, { + "value": 542425, + "label": "安多县", + "isLeaf": true + }, { + "value": 542426, + "label": "申扎县", + "isLeaf": true + }, { + "value": 542427, + "label": "索县", + "isLeaf": true + }, { + "value": 542428, + "label": "班戈县", + "isLeaf": true + }, { + "value": 542429, + "label": "巴青县", + "isLeaf": true + }, { + "value": 542430, + "label": "尼玛县", + "isLeaf": true + }, { + "value": 542431, + "label": "双湖县", + "isLeaf": true + }] + }, { + "value": 542500, + "label": "阿里地区", + "children": [{ + "value": 542521, + "label": "普兰县", + "isLeaf": true + }, { + "value": 542522, + "label": "札达县", + "isLeaf": true + }, { + "value": 542523, + "label": "噶尔县", + "isLeaf": true + }, { + "value": 542524, + "label": "日土县", + "isLeaf": true + }, { + "value": 542525, + "label": "革吉县", + "isLeaf": true + }, { + "value": 542526, + "label": "改则县", + "isLeaf": true + }, { + "value": 542527, + "label": "措勤县", + "isLeaf": true + }] + }] +}, { + "value": 610000, + "label": "陕西省", + "children": [{ + "value": 610100, + "label": "西安市", + "children": [{ + "value": 610102, + "label": "新城区", + "isLeaf": true + }, { + "value": 610103, + "label": "碑林区", + "isLeaf": true + }, { + "value": 610104, + "label": "莲湖区", + "isLeaf": true + }, { + "value": 610111, + "label": "灞桥区", + "isLeaf": true + }, { + "value": 610112, + "label": "未央区", + "isLeaf": true + }, { + "value": 610113, + "label": "雁塔区", + "isLeaf": true + }, { + "value": 610114, + "label": "阎良区", + "isLeaf": true + }, { + "value": 610115, + "label": "临潼区", + "isLeaf": true + }, { + "value": 610116, + "label": "长安区", + "isLeaf": true + }, { + "value": 610117, + "label": "高陵区", + "isLeaf": true + }, { + "value": 610122, + "label": "蓝田县", + "isLeaf": true + }, { + "value": 610124, + "label": "周至县", + "isLeaf": true + }, { + "value": 610125, + "label": "户县", + "isLeaf": true + }] + }, { + "value": 610200, + "label": "铜川市", + "children": [{ + "value": 610202, + "label": "王益区", + "isLeaf": true + }, { + "value": 610203, + "label": "印台区", + "isLeaf": true + }, { + "value": 610204, + "label": "耀州区", + "isLeaf": true + }, { + "value": 610222, + "label": "宜君县", + "isLeaf": true + }] + }, { + "value": 610300, + "label": "宝鸡市", + "children": [{ + "value": 610302, + "label": "渭滨区", + "isLeaf": true + }, { + "value": 610303, + "label": "金台区", + "isLeaf": true + }, { + "value": 610304, + "label": "陈仓区", + "isLeaf": true + }, { + "value": 610322, + "label": "凤翔县", + "isLeaf": true + }, { + "value": 610323, + "label": "岐山县", + "isLeaf": true + }, { + "value": 610324, + "label": "扶风县", + "isLeaf": true + }, { + "value": 610326, + "label": "眉县", + "isLeaf": true + }, { + "value": 610327, + "label": "陇县", + "isLeaf": true + }, { + "value": 610328, + "label": "千阳县", + "isLeaf": true + }, { + "value": 610329, + "label": "麟游县", + "isLeaf": true + }, { + "value": 610330, + "label": "凤县", + "isLeaf": true + }, { + "value": 610331, + "label": "太白县", + "isLeaf": true + }] + }, { + "value": 610400, + "label": "咸阳市", + "children": [{ + "value": 610402, + "label": "秦都区", + "isLeaf": true + }, { + "value": 610403, + "label": "杨陵区", + "isLeaf": true + }, { + "value": 610404, + "label": "渭城区", + "isLeaf": true + }, { + "value": 610422, + "label": "三原县", + "isLeaf": true + }, { + "value": 610423, + "label": "泾阳县", + "isLeaf": true + }, { + "value": 610424, + "label": "乾县", + "isLeaf": true + }, { + "value": 610425, + "label": "礼泉县", + "isLeaf": true + }, { + "value": 610426, + "label": "永寿县", + "isLeaf": true + }, { + "value": 610427, + "label": "彬县", + "isLeaf": true + }, { + "value": 610428, + "label": "长武县", + "isLeaf": true + }, { + "value": 610429, + "label": "旬邑县", + "isLeaf": true + }, { + "value": 610430, + "label": "淳化县", + "isLeaf": true + }, { + "value": 610431, + "label": "武功县", + "isLeaf": true + }, { + "value": 610481, + "label": "兴平市", + "isLeaf": true + }] + }, { + "value": 610500, + "label": "渭南市", + "children": [{ + "value": 610502, + "label": "临渭区", + "isLeaf": true + }, { + "value": 610503, + "label": "华州区", + "isLeaf": true + }, { + "value": 610522, + "label": "潼关县", + "isLeaf": true + }, { + "value": 610523, + "label": "大荔县", + "isLeaf": true + }, { + "value": 610524, + "label": "合阳县", + "isLeaf": true + }, { + "value": 610525, + "label": "澄城县", + "isLeaf": true + }, { + "value": 610526, + "label": "蒲城县", + "isLeaf": true + }, { + "value": 610527, + "label": "白水县", + "isLeaf": true + }, { + "value": 610528, + "label": "富平县", + "isLeaf": true + }, { + "value": 610581, + "label": "韩城市", + "isLeaf": true + }, { + "value": 610582, + "label": "华阴市", + "isLeaf": true + }] + }, { + "value": 610600, + "label": "延安市", + "children": [{ + "value": 610602, + "label": "宝塔区", + "isLeaf": true + }, { + "value": 610603, + "label": "安塞区", + "isLeaf": true + }, { + "value": 610621, + "label": "延长县", + "isLeaf": true + }, { + "value": 610622, + "label": "延川县", + "isLeaf": true + }, { + "value": 610623, + "label": "子长县", + "isLeaf": true + }, { + "value": 610625, + "label": "志丹县", + "isLeaf": true + }, { + "value": 610626, + "label": "吴起县", + "isLeaf": true + }, { + "value": 610627, + "label": "甘泉县", + "isLeaf": true + }, { + "value": 610628, + "label": "富县", + "isLeaf": true + }, { + "value": 610629, + "label": "洛川县", + "isLeaf": true + }, { + "value": 610630, + "label": "宜川县", + "isLeaf": true + }, { + "value": 610631, + "label": "黄龙县", + "isLeaf": true + }, { + "value": 610632, + "label": "黄陵县", + "isLeaf": true + }] + }, { + "value": 610700, + "label": "汉中市", + "children": [{ + "value": 610702, + "label": "汉台区", + "isLeaf": true + }, { + "value": 610721, + "label": "南郑县", + "isLeaf": true + }, { + "value": 610722, + "label": "城固县", + "isLeaf": true + }, { + "value": 610723, + "label": "洋县", + "isLeaf": true + }, { + "value": 610724, + "label": "西乡县", + "isLeaf": true + }, { + "value": 610725, + "label": "勉县", + "isLeaf": true + }, { + "value": 610726, + "label": "宁强县", + "isLeaf": true + }, { + "value": 610727, + "label": "略阳县", + "isLeaf": true + }, { + "value": 610728, + "label": "镇巴县", + "isLeaf": true + }, { + "value": 610729, + "label": "留坝县", + "isLeaf": true + }, { + "value": 610730, + "label": "佛坪县", + "isLeaf": true + }] + }, { + "value": 610800, + "label": "榆林市", + "children": [{ + "value": 610802, + "label": "榆阳区", + "isLeaf": true + }, { + "value": 610803, + "label": "横山区", + "isLeaf": true + }, { + "value": 610821, + "label": "神木县", + "isLeaf": true + }, { + "value": 610822, + "label": "府谷县", + "isLeaf": true + }, { + "value": 610824, + "label": "靖边县", + "isLeaf": true + }, { + "value": 610825, + "label": "定边县", + "isLeaf": true + }, { + "value": 610826, + "label": "绥德县", + "isLeaf": true + }, { + "value": 610827, + "label": "米脂县", + "isLeaf": true + }, { + "value": 610828, + "label": "佳县", + "isLeaf": true + }, { + "value": 610829, + "label": "吴堡县", + "isLeaf": true + }, { + "value": 610830, + "label": "清涧县", + "isLeaf": true + }, { + "value": 610831, + "label": "子洲县", + "isLeaf": true + }] + }, { + "value": 610900, + "label": "安康市", + "children": [{ + "value": 610902, + "label": "汉滨区", + "isLeaf": true + }, { + "value": 610921, + "label": "汉阴县", + "isLeaf": true + }, { + "value": 610922, + "label": "石泉县", + "isLeaf": true + }, { + "value": 610923, + "label": "宁陕县", + "isLeaf": true + }, { + "value": 610924, + "label": "紫阳县", + "isLeaf": true + }, { + "value": 610925, + "label": "岚皋县", + "isLeaf": true + }, { + "value": 610926, + "label": "平利县", + "isLeaf": true + }, { + "value": 610927, + "label": "镇坪县", + "isLeaf": true + }, { + "value": 610928, + "label": "旬阳县", + "isLeaf": true + }, { + "value": 610929, + "label": "白河县", + "isLeaf": true + }] + }, { + "value": 611000, + "label": "商洛市", + "children": [{ + "value": 611002, + "label": "商州区", + "isLeaf": true + }, { + "value": 611021, + "label": "洛南县", + "isLeaf": true + }, { + "value": 611022, + "label": "丹凤县", + "isLeaf": true + }, { + "value": 611023, + "label": "商南县", + "isLeaf": true + }, { + "value": 611024, + "label": "山阳县", + "isLeaf": true + }, { + "value": 611025, + "label": "镇安县", + "isLeaf": true + }, { + "value": 611026, + "label": "柞水县", + "isLeaf": true + }] + }] +}, { + "value": 620000, + "label": "甘肃省", + "children": [{ + "value": 620100, + "label": "兰州市", + "children": [{ + "value": 620102, + "label": "城关区", + "isLeaf": true + }, { + "value": 620103, + "label": "七里河区", + "isLeaf": true + }, { + "value": 620104, + "label": "西固区", + "isLeaf": true + }, { + "value": 620105, + "label": "安宁区", + "isLeaf": true + }, { + "value": 620111, + "label": "红古区", + "isLeaf": true + }, { + "value": 620121, + "label": "永登县", + "isLeaf": true + }, { + "value": 620122, + "label": "皋兰县", + "isLeaf": true + }, { + "value": 620123, + "label": "榆中县", + "isLeaf": true + }] + }, { + "value": 620201, + "label": "嘉峪关市", + "children": [{ + "value": 620201100, + "label": "新城镇", + "isLeaf": true + }, { + "value": 620201101, + "label": "峪泉镇", + "isLeaf": true + }, { + "value": 620201102, + "label": "文殊镇", + "isLeaf": true + }, { + "value": 620201401, + "label": "雄关区", + "isLeaf": true + }, { + "value": 620201402, + "label": "镜铁区", + "isLeaf": true + }, { + "value": 620201403, + "label": "长城区", + "isLeaf": true + }] + }, { + "value": 620300, + "label": "金昌市", + "children": [{ + "value": 620302, + "label": "金川区", + "isLeaf": true + }, { + "value": 620321, + "label": "永昌县", + "isLeaf": true + }] + }, { + "value": 620400, + "label": "白银市", + "children": [{ + "value": 620402, + "label": "白银区", + "isLeaf": true + }, { + "value": 620403, + "label": "平川区", + "isLeaf": true + }, { + "value": 620421, + "label": "靖远县", + "isLeaf": true + }, { + "value": 620422, + "label": "会宁县", + "isLeaf": true + }, { + "value": 620423, + "label": "景泰县", + "isLeaf": true + }] + }, { + "value": 620500, + "label": "天水市", + "children": [{ + "value": 620502, + "label": "秦州区", + "isLeaf": true + }, { + "value": 620503, + "label": "麦积区", + "isLeaf": true + }, { + "value": 620521, + "label": "清水县", + "isLeaf": true + }, { + "value": 620522, + "label": "秦安县", + "isLeaf": true + }, { + "value": 620523, + "label": "甘谷县", + "isLeaf": true + }, { + "value": 620524, + "label": "武山县", + "isLeaf": true + }, { + "value": 620525, + "label": "张家川回族自治县", + "isLeaf": true + }] + }, { + "value": 620600, + "label": "武威市", + "children": [{ + "value": 620602, + "label": "凉州区", + "isLeaf": true + }, { + "value": 620621, + "label": "民勤县", + "isLeaf": true + }, { + "value": 620622, + "label": "古浪县", + "isLeaf": true + }, { + "value": 620623, + "label": "天祝藏族自治县", + "isLeaf": true + }] + }, { + "value": 620700, + "label": "张掖市", + "children": [{ + "value": 620702, + "label": "甘州区", + "isLeaf": true + }, { + "value": 620721, + "label": "肃南裕固族自治县", + "isLeaf": true + }, { + "value": 620722, + "label": "民乐县", + "isLeaf": true + }, { + "value": 620723, + "label": "临泽县", + "isLeaf": true + }, { + "value": 620724, + "label": "高台县", + "isLeaf": true + }, { + "value": 620725, + "label": "山丹县", + "isLeaf": true + }] + }, { + "value": 620800, + "label": "平凉市", + "children": [{ + "value": 620802, + "label": "崆峒区", + "isLeaf": true + }, { + "value": 620821, + "label": "泾川县", + "isLeaf": true + }, { + "value": 620822, + "label": "灵台县", + "isLeaf": true + }, { + "value": 620823, + "label": "崇信县", + "isLeaf": true + }, { + "value": 620824, + "label": "华亭县", + "isLeaf": true + }, { + "value": 620825, + "label": "庄浪县", + "isLeaf": true + }, { + "value": 620826, + "label": "静宁县", + "isLeaf": true + }] + }, { + "value": 620900, + "label": "酒泉市", + "children": [{ + "value": 620902, + "label": "肃州区", + "isLeaf": true + }, { + "value": 620921, + "label": "金塔县", + "isLeaf": true + }, { + "value": 620922, + "label": "瓜州县", + "isLeaf": true + }, { + "value": 620923, + "label": "肃北蒙古族自治县", + "isLeaf": true + }, { + "value": 620924, + "label": "阿克塞哈萨克族自治县", + "isLeaf": true + }, { + "value": 620981, + "label": "玉门市", + "isLeaf": true + }, { + "value": 620982, + "label": "敦煌市", + "isLeaf": true + }] + }, { + "value": 621000, + "label": "庆阳市", + "children": [{ + "value": 621002, + "label": "西峰区", + "isLeaf": true + }, { + "value": 621021, + "label": "庆城县", + "isLeaf": true + }, { + "value": 621022, + "label": "环县", + "isLeaf": true + }, { + "value": 621023, + "label": "华池县", + "isLeaf": true + }, { + "value": 621024, + "label": "合水县", + "isLeaf": true + }, { + "value": 621025, + "label": "正宁县", + "isLeaf": true + }, { + "value": 621026, + "label": "宁县", + "isLeaf": true + }, { + "value": 621027, + "label": "镇原县", + "isLeaf": true + }] + }, { + "value": 621100, + "label": "定西市", + "children": [{ + "value": 621102, + "label": "安定区", + "isLeaf": true + }, { + "value": 621121, + "label": "通渭县", + "isLeaf": true + }, { + "value": 621122, + "label": "陇西县", + "isLeaf": true + }, { + "value": 621123, + "label": "渭源县", + "isLeaf": true + }, { + "value": 621124, + "label": "临洮县", + "isLeaf": true + }, { + "value": 621125, + "label": "漳县", + "isLeaf": true + }, { + "value": 621126, + "label": "岷县", + "isLeaf": true + }] + }, { + "value": 621200, + "label": "陇南市", + "children": [{ + "value": 621202, + "label": "武都区", + "isLeaf": true + }, { + "value": 621221, + "label": "成县", + "isLeaf": true + }, { + "value": 621222, + "label": "文县", + "isLeaf": true + }, { + "value": 621223, + "label": "宕昌县", + "isLeaf": true + }, { + "value": 621224, + "label": "康县", + "isLeaf": true + }, { + "value": 621225, + "label": "西和县", + "isLeaf": true + }, { + "value": 621226, + "label": "礼县", + "isLeaf": true + }, { + "value": 621227, + "label": "徽县", + "isLeaf": true + }, { + "value": 621228, + "label": "两当县", + "isLeaf": true + }] + }, { + "value": 622900, + "label": "临夏回族自治州", + "children": [{ + "value": 622901, + "label": "临夏市", + "isLeaf": true + }, { + "value": 622921, + "label": "临夏县", + "isLeaf": true + }, { + "value": 622922, + "label": "康乐县", + "isLeaf": true + }, { + "value": 622923, + "label": "永靖县", + "isLeaf": true + }, { + "value": 622924, + "label": "广河县", + "isLeaf": true + }, { + "value": 622925, + "label": "和政县", + "isLeaf": true + }, { + "value": 622926, + "label": "东乡族自治县", + "isLeaf": true + }, { + "value": 622927, + "label": "积石山保安族东乡族撒拉族自治县", + "isLeaf": true + }] + }, { + "value": 623000, + "label": "甘南藏族自治州", + "children": [{ + "value": 623001, + "label": "合作市", + "isLeaf": true + }, { + "value": 623021, + "label": "临潭县", + "isLeaf": true + }, { + "value": 623022, + "label": "卓尼县", + "isLeaf": true + }, { + "value": 623023, + "label": "舟曲县", + "isLeaf": true + }, { + "value": 623024, + "label": "迭部县", + "isLeaf": true + }, { + "value": 623025, + "label": "玛曲县", + "isLeaf": true + }, { + "value": 623026, + "label": "碌曲县", + "isLeaf": true + }, { + "value": 623027, + "label": "夏河县", + "isLeaf": true + }] + }] +}, { + "value": 630000, + "label": "青海省", + "children": [{ + "value": 630100, + "label": "西宁市", + "children": [{ + "value": 630102, + "label": "城东区", + "isLeaf": true + }, { + "value": 630103, + "label": "城中区", + "isLeaf": true + }, { + "value": 630104, + "label": "城西区", + "isLeaf": true + }, { + "value": 630105, + "label": "城北区", + "isLeaf": true + }, { + "value": 630121, + "label": "大通回族土族自治县", + "isLeaf": true + }, { + "value": 630122, + "label": "湟中县", + "isLeaf": true + }, { + "value": 630123, + "label": "湟源县", + "isLeaf": true + }] + }, { + "value": 630200, + "label": "海东市", + "children": [{ + "value": 630202, + "label": "乐都区", + "isLeaf": true + }, { + "value": 630203, + "label": "平安区", + "isLeaf": true + }, { + "value": 630222, + "label": "民和回族土族自治县", + "isLeaf": true + }, { + "value": 630223, + "label": "互助土族自治县", + "isLeaf": true + }, { + "value": 630224, + "label": "化隆回族自治县", + "isLeaf": true + }, { + "value": 630225, + "label": "循化撒拉族自治县", + "isLeaf": true + }] + }, { + "value": 632200, + "label": "海北藏族自治州", + "children": [{ + "value": 632221, + "label": "门源回族自治县", + "isLeaf": true + }, { + "value": 632222, + "label": "祁连县", + "isLeaf": true + }, { + "value": 632223, + "label": "海晏县", + "isLeaf": true + }, { + "value": 632224, + "label": "刚察县", + "isLeaf": true + }] + }, { + "value": 632300, + "label": "黄南藏族自治州", + "children": [{ + "value": 632321, + "label": "同仁县", + "isLeaf": true + }, { + "value": 632322, + "label": "尖扎县", + "isLeaf": true + }, { + "value": 632323, + "label": "泽库县", + "isLeaf": true + }, { + "value": 632324, + "label": "河南蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 632500, + "label": "海南藏族自治州", + "children": [{ + "value": 632521, + "label": "共和县", + "isLeaf": true + }, { + "value": 632522, + "label": "同德县", + "isLeaf": true + }, { + "value": 632523, + "label": "贵德县", + "isLeaf": true + }, { + "value": 632524, + "label": "兴海县", + "isLeaf": true + }, { + "value": 632525, + "label": "贵南县", + "isLeaf": true + }] + }, { + "value": 632600, + "label": "果洛藏族自治州", + "children": [{ + "value": 632621, + "label": "玛沁县", + "isLeaf": true + }, { + "value": 632622, + "label": "班玛县", + "isLeaf": true + }, { + "value": 632623, + "label": "甘德县", + "isLeaf": true + }, { + "value": 632624, + "label": "达日县", + "isLeaf": true + }, { + "value": 632625, + "label": "久治县", + "isLeaf": true + }, { + "value": 632626, + "label": "玛多县", + "isLeaf": true + }] + }, { + "value": 632700, + "label": "玉树藏族自治州", + "children": [{ + "value": 632701, + "label": "玉树市", + "isLeaf": true + }, { + "value": 632722, + "label": "杂多县", + "isLeaf": true + }, { + "value": 632723, + "label": "称多县", + "isLeaf": true + }, { + "value": 632724, + "label": "治多县", + "isLeaf": true + }, { + "value": 632725, + "label": "囊谦县", + "isLeaf": true + }, { + "value": 632726, + "label": "曲麻莱县", + "isLeaf": true + }] + }, { + "value": 632800, + "label": "海西蒙古族藏族自治州", + "children": [{ + "value": 632801, + "label": "格尔木市", + "isLeaf": true + }, { + "value": 632802, + "label": "德令哈市", + "isLeaf": true + }, { + "value": 632821, + "label": "乌兰县", + "isLeaf": true + }, { + "value": 632822, + "label": "都兰县", + "isLeaf": true + }, { + "value": 632823, + "label": "天峻县", + "isLeaf": true + }] + }] +}, { + "value": 640000, + "label": "宁夏回族自治区", + "children": [{ + "value": 640100, + "label": "银川市", + "children": [{ + "value": 640104, + "label": "兴庆区", + "isLeaf": true + }, { + "value": 640105, + "label": "西夏区", + "isLeaf": true + }, { + "value": 640106, + "label": "金凤区", + "isLeaf": true + }, { + "value": 640121, + "label": "永宁县", + "isLeaf": true + }, { + "value": 640122, + "label": "贺兰县", + "isLeaf": true + }, { + "value": 640181, + "label": "灵武市", + "isLeaf": true + }] + }, { + "value": 640200, + "label": "石嘴山市", + "children": [{ + "value": 640202, + "label": "大武口区", + "isLeaf": true + }, { + "value": 640205, + "label": "惠农区", + "isLeaf": true + }, { + "value": 640221, + "label": "平罗县", + "isLeaf": true + }] + }, { + "value": 640300, + "label": "吴忠市", + "children": [{ + "value": 640302, + "label": "利通区", + "isLeaf": true + }, { + "value": 640303, + "label": "红寺堡区", + "isLeaf": true + }, { + "value": 640323, + "label": "盐池县", + "isLeaf": true + }, { + "value": 640324, + "label": "同心县", + "isLeaf": true + }, { + "value": 640381, + "label": "青铜峡市", + "isLeaf": true + }] + }, { + "value": 640400, + "label": "固原市", + "children": [{ + "value": 640402, + "label": "原州区", + "isLeaf": true + }, { + "value": 640422, + "label": "西吉县", + "isLeaf": true + }, { + "value": 640423, + "label": "隆德县", + "isLeaf": true + }, { + "value": 640424, + "label": "泾源县", + "isLeaf": true + }, { + "value": 640425, + "label": "彭阳县", + "isLeaf": true + }] + }, { + "value": 640500, + "label": "中卫市", + "children": [{ + "value": 640502, + "label": "沙坡头区", + "isLeaf": true + }, { + "value": 640521, + "label": "中宁县", + "isLeaf": true + }, { + "value": 640522, + "label": "海原县", + "isLeaf": true + }] + }] +}, { + "value": 650000, + "label": "新疆维吾尔自治区", + "children": [{ + "value": 650100, + "label": "乌鲁木齐市", + "children": [{ + "value": 650102, + "label": "天山区", + "isLeaf": true + }, { + "value": 650103, + "label": "沙依巴克区", + "isLeaf": true + }, { + "value": 650104, + "label": "新市区", + "isLeaf": true + }, { + "value": 650105, + "label": "水磨沟区", + "isLeaf": true + }, { + "value": 650106, + "label": "头屯河区", + "isLeaf": true + }, { + "value": 650107, + "label": "达坂城区", + "isLeaf": true + }, { + "value": 650109, + "label": "米东区", + "isLeaf": true + }, { + "value": 650121, + "label": "乌鲁木齐县", + "isLeaf": true + }] + }, { + "value": 650200, + "label": "克拉玛依市", + "children": [{ + "value": 650202, + "label": "独山子区", + "isLeaf": true + }, { + "value": 650203, + "label": "克拉玛依区", + "isLeaf": true + }, { + "value": 650204, + "label": "白碱滩区", + "isLeaf": true + }, { + "value": 650205, + "label": "乌尔禾区", + "isLeaf": true + }] + }, { + "value": 650400, + "label": "吐鲁番市", + "children": [{ + "value": 650402, + "label": "高昌区", + "isLeaf": true + }, { + "value": 650421, + "label": "鄯善县", + "isLeaf": true + }, { + "value": 650422, + "label": "托克逊县", + "isLeaf": true + }] + }, { + "value": 650500, + "label": "哈密市", + "children": [{ + "value": 650502, + "label": "伊州区", + "isLeaf": true + }, { + "value": 650521, + "label": "巴里坤哈萨克自治县", + "isLeaf": true + }, { + "value": 650522, + "label": "伊吾县", + "isLeaf": true + }] + }, { + "value": 652300, + "label": "昌吉回族自治州", + "children": [{ + "value": 652301, + "label": "昌吉市", + "isLeaf": true + }, { + "value": 652302, + "label": "阜康市", + "isLeaf": true + }, { + "value": 652323, + "label": "呼图壁县", + "isLeaf": true + }, { + "value": 652324, + "label": "玛纳斯县", + "isLeaf": true + }, { + "value": 652325, + "label": "奇台县", + "isLeaf": true + }, { + "value": 652327, + "label": "吉木萨尔县", + "isLeaf": true + }, { + "value": 652328, + "label": "木垒哈萨克自治县", + "isLeaf": true + }] + }, { + "value": 652700, + "label": "博尔塔拉蒙古自治州", + "children": [{ + "value": 652701, + "label": "博乐市", + "isLeaf": true + }, { + "value": 652702, + "label": "阿拉山口市", + "isLeaf": true + }, { + "value": 652722, + "label": "精河县", + "isLeaf": true + }, { + "value": 652723, + "label": "温泉县", + "isLeaf": true + }] + }, { + "value": 652800, + "label": "巴音郭楞蒙古自治州", + "children": [{ + "value": 652801, + "label": "库尔勒市", + "isLeaf": true + }, { + "value": 652822, + "label": "轮台县", + "isLeaf": true + }, { + "value": 652823, + "label": "尉犁县", + "isLeaf": true + }, { + "value": 652824, + "label": "若羌县", + "isLeaf": true + }, { + "value": 652825, + "label": "且末县", + "isLeaf": true + }, { + "value": 652826, + "label": "焉耆回族自治县", + "isLeaf": true + }, { + "value": 652827, + "label": "和静县", + "isLeaf": true + }, { + "value": 652828, + "label": "和硕县", + "isLeaf": true + }, { + "value": 652829, + "label": "博湖县", + "isLeaf": true + }] + }, { + "value": 652900, + "label": "阿克苏地区", + "children": [{ + "value": 652901, + "label": "阿克苏市", + "isLeaf": true + }, { + "value": 652922, + "label": "温宿县", + "isLeaf": true + }, { + "value": 652923, + "label": "库车县", + "isLeaf": true + }, { + "value": 652924, + "label": "沙雅县", + "isLeaf": true + }, { + "value": 652925, + "label": "新和县", + "isLeaf": true + }, { + "value": 652926, + "label": "拜城县", + "isLeaf": true + }, { + "value": 652927, + "label": "乌什县", + "isLeaf": true + }, { + "value": 652928, + "label": "阿瓦提县", + "isLeaf": true + }, { + "value": 652929, + "label": "柯坪县", + "isLeaf": true + }] + }, { + "value": 653000, + "label": "克孜勒苏柯尔克孜自治州", + "children": [{ + "value": 653001, + "label": "阿图什市", + "isLeaf": true + }, { + "value": 653022, + "label": "阿克陶县", + "isLeaf": true + }, { + "value": 653023, + "label": "阿合奇县", + "isLeaf": true + }, { + "value": 653024, + "label": "乌恰县", + "isLeaf": true + }] + }, { + "value": 653100, + "label": "喀什地区", + "children": [{ + "value": 653101, + "label": "喀什市", + "isLeaf": true + }, { + "value": 653121, + "label": "疏附县", + "isLeaf": true + }, { + "value": 653122, + "label": "疏勒县", + "isLeaf": true + }, { + "value": 653123, + "label": "英吉沙县", + "isLeaf": true + }, { + "value": 653124, + "label": "泽普县", + "isLeaf": true + }, { + "value": 653125, + "label": "莎车县", + "isLeaf": true + }, { + "value": 653126, + "label": "叶城县", + "isLeaf": true + }, { + "value": 653127, + "label": "麦盖提县", + "isLeaf": true + }, { + "value": 653128, + "label": "岳普湖县", + "isLeaf": true + }, { + "value": 653129, + "label": "伽师县", + "isLeaf": true + }, { + "value": 653130, + "label": "巴楚县", + "isLeaf": true + }, { + "value": 653131, + "label": "塔什库尔干塔吉克自治县", + "isLeaf": true + }] + }, { + "value": 653200, + "label": "和田地区", + "children": [{ + "value": 653201, + "label": "和田市", + "isLeaf": true + }, { + "value": 653221, + "label": "和田县", + "isLeaf": true + }, { + "value": 653222, + "label": "墨玉县", + "isLeaf": true + }, { + "value": 653223, + "label": "皮山县", + "isLeaf": true + }, { + "value": 653224, + "label": "洛浦县", + "isLeaf": true + }, { + "value": 653225, + "label": "策勒县", + "isLeaf": true + }, { + "value": 653226, + "label": "于田县", + "isLeaf": true + }, { + "value": 653227, + "label": "民丰县", + "isLeaf": true + }] + }, { + "value": 654000, + "label": "伊犁哈萨克自治州", + "children": [{ + "value": 654002, + "label": "伊宁市", + "isLeaf": true + }, { + "value": 654003, + "label": "奎屯市", + "isLeaf": true + }, { + "value": 654004, + "label": "霍尔果斯市", + "isLeaf": true + }, { + "value": 654021, + "label": "伊宁县", + "isLeaf": true + }, { + "value": 654022, + "label": "察布查尔锡伯自治县", + "isLeaf": true + }, { + "value": 654023, + "label": "霍城县", + "isLeaf": true + }, { + "value": 654024, + "label": "巩留县", + "isLeaf": true + }, { + "value": 654025, + "label": "新源县", + "isLeaf": true + }, { + "value": 654026, + "label": "昭苏县", + "isLeaf": true + }, { + "value": 654027, + "label": "特克斯县", + "isLeaf": true + }, { + "value": 654028, + "label": "尼勒克县", + "isLeaf": true + }] + }, { + "value": 654200, + "label": "塔城地区", + "children": [{ + "value": 654201, + "label": "塔城市", + "isLeaf": true + }, { + "value": 654202, + "label": "乌苏市", + "isLeaf": true + }, { + "value": 654221, + "label": "额敏县", + "isLeaf": true + }, { + "value": 654223, + "label": "沙湾县", + "isLeaf": true + }, { + "value": 654224, + "label": "托里县", + "isLeaf": true + }, { + "value": 654225, + "label": "裕民县", + "isLeaf": true + }, { + "value": 654226, + "label": "和布克赛尔蒙古自治县", + "isLeaf": true + }] + }, { + "value": 654300, + "label": "阿勒泰地区", + "children": [{ + "value": 654301, + "label": "阿勒泰市", + "isLeaf": true + }, { + "value": 654321, + "label": "布尔津县", + "isLeaf": true + }, { + "value": 654322, + "label": "富蕴县", + "isLeaf": true + }, { + "value": 654323, + "label": "福海县", + "isLeaf": true + }, { + "value": 654324, + "label": "哈巴河县", + "isLeaf": true + }, { + "value": 654325, + "label": "青河县", + "isLeaf": true + }, { + "value": 654326, + "label": "吉木乃县", + "isLeaf": true + }] + }, { + "value": 659000, + "label": "自治区直辖县级行政区划", + "children": [{ + "value": 659001, + "label": "石河子市", + "isLeaf": true + }, { + "value": 659002, + "label": "阿拉尔市", + "isLeaf": true + }, { + "value": 659003, + "label": "图木舒克市", + "isLeaf": true + }, { + "value": 659004, + "label": "五家渠市", + "isLeaf": true + }, { + "value": 659006, + "label": "铁门关市", + "isLeaf": true + }] + }] +}, { + "value": 710000, + "label": "台湾省" +}, { + "value": 810000, + "label": "香港特别行政区" +}, { + "value": 820000, + "label": "澳门特别行政区" +}] diff --git a/src/assets/login/1.png b/src/assets/login/1.png new file mode 100644 index 0000000000000000000000000000000000000000..100f39546c83761c0fec228b2380cf36de9e2df8 GIT binary patch literal 69175 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 I(6SBte_~;3+W-In literal 0 HcmV?d00001 diff --git a/src/assets/login/3.png b/src/assets/login/3.png new file mode 100644 index 0000000000000000000000000000000000000000..867a4c652d68ca82faae702a384dadcdf7664d3e GIT binary patch literal 69465 zcmeEO`6JY8)R)MXEJa0SPt6P}q-2TgDkU?9EK}L{UG{_uAu?ny62>rN&%TsokIcwk zb|#cHV|$-bxApxG-uH*=UUSFueU@`R=W{;iJm26emsOb=xfrRasF>B&l(ea+Xz)~2 zJALVQflp{n=7Ye$b~tORD(>iMg!zGA7#!5}oT;do_EP@YK^32PfNIB{O?4#&o!g0@ zEB)|?T$5JH5wbd)J!NG35bGRx#|~>!ZPPP);na?cchuPIi8bginfP_~t94B(b%u|y zZ}OGi6*(zb-MXv|*)>q9=WDWZWe3|^Q5JaviQ7{6Z-N%3j~v23i6*E)j>bK%T1XZT zdu1|yZa{o!R?FSb7>98eIveNgSvHY4o7}zXEjJ`j7C5$hZDmg0($kZi)G9CU^|8jk zFTu~ZG_Klee3v3UU*Plb+-Jsi#@CkSR!%!dEiK83%y zbjBc!i>sulj?v5%2Wetc=)i}Cxy@GHYw}?!0kh0@c<(*nqZ685U!$w@eUDJRDD-

_bQV)(q?0jFeu{`}?d%S%#BAMFJCwEdE-S?@a0{r0@1S~r(tBRV6>e!JP zy*Ox23f-N9kP9a2V59B~-;kWU>$Q{eUmdxR29<&&Xw>^tQ5!Pg4?ilw5Om>m_2Z?N zz;9~zd>fUx`DoND3`&+3zz28sc3?xz+8R9)=EerW?@ymhRy~bd0K=c3Eu1jUBlCg@ z?&x5)8tk50uH3PJ1K(j(E2keTAhz%1b?=pWv)ciz^%$>h+~QPXiN_wPH{cufO1JKG zsaSvsIMMloy}x3>iUc3OW2R=hOY{F9{GZ;BF*6E!c#gb-;;J{v<^VMI3DE61^lhQ= ztjpw;RJq;%?7MFmUySxgh(jMSyb!Mrv73Asch6MX3sas^+7JneCcBk4+J!A7- z{x!fU?%1&+Sq14~QuHuI`YiB^Pf0N4^J6FIVf5@YG2Aqqe1SSr^w_FCB@}S+eFtbb zX&9)RnW;lr6*1g2h#^~k0MAs6ySFWLY?r?>Js*LYI(zOk8^v;IclpyQ+^um6sNoNM zG`-88;GRGa1COQtF-Zj!o1&U)K+SadCCcQ_`zxRn9`WM)dGYjo&&w20O9Mx#nSgiI z@Zx#ZSdn0YU;zWXc(UEzZFfNZHvPua)t(-Z-uVy7lSID{9EO`Seqp)m34R`$izmnG z&iRQuuM$;8#m()lKIhuoe1BWp5EO%60+{CT(lRuUig>m{#Sm>lY;aeSd zxNb9W?;Y4l{ElBcz$)Ky_S*0?W^TQ@*KiyL1~=)@w}@T-4AW-V zn;K7v)iZ9Ve4Xa|*N?LJyMFno0F3S83!`(altYq?)lE{k88>l)9h`Ix&-W)M$j}fY z1yobhR3q4!U~(~$R_glAQ;TM9;LWmYvEE!lh} z>Z~q#jAxygO=K6IY-xLKm1yPTLjh~?-yVVC$HV&QvcO*`=T?P?yN!fTzH&b-vHz^U zxvID`7WWlczbWm{y;jyl_tL$mhxO8hrl=a<9x%8p)OxUFy-WY&qu@A6HHuGs`gzuB z9opz=XrvDR$%@KD$1kk$<^&_|ZkoflF% zZ@*b@ppkAXWU!u;HqI~n#RhXNh;pD@-Y`QKhT0Mba zsnrtS6*Q9d0gJeD`lriiKSyc`GX;-c@8!eiH@@H6#FRb+0~cQ9AR3TJvcP8JehiLe zf^7_0<0|is@}n_TsXlnmp7{?)oY^F82Di}0NTx%lP8Pf&ds2o!`eS$^wdTA=L`MqI z{z|YdMiAfmxdcpWO54moy~mKJiuAOohT$AH_c_vT=efqlh0CiZ;&T-KKy?N7Yl6}L zO;E4;9=t70tinz-RfWMeaQv)6iUm0JRxvK&_H(9J#c`4a*+Th)KGS{$zL&umyMK(4 z#t5VJS5~=%#^5Y?ux3p%J2jt$;aN*t$nnO4g4vgo-J6!pQp4BpSb-B}{b4>l)X-=EXx#a!lO4_>ZyQl7}0SiWd}1n#-oGFa*5H@~tqpKT9a>LGjqo>JG+ zlfYG;1IAT=BW8%Tdub51HZpDEt%NR{G_rJw<9J)(H5&5IDtxAAJLl z(#+d`=0=9Bn*2+JS+Lzo0ey5j#>zUzJE#J8e22p~_iH*wSdoIiEVy3l2(@*i(ydlbKazBctvqt$ft4AA09lFYF{TixXg}su|qS_^jg5SS!9a#_;z|4 zgGed=(<87*qp7bO!=BFRQkLpRR52V3&6w9t)j7th!&1^bZpi^Y&sU3li`?f1QwjzA zm;BNrMWVzbssn4L8^kigcV7$QXwe9a*B#4pbvTz3Kt**UkH?>uFQ3PMjK*IXc2gt? zCdfV?vKv@J_UcNj-@;^V^~JvVqY7!K6`gL14oP2R`qXliWbJpPkgjCK=I}*5pQZR- z)*Q;7&6~o?Z~aq0SOymzazm9VR~4U`?g&x8bt~MKxZys z=lhy8ovW0o2M4G#7H*_CExXYESg`!SYG(11SN96I~KhnH9bLGVQ*e6dD>O zOv`%aSw<9;?Zx5#*+;qx%yz0MwwvrUh}s_v?i(vI0HSDMEWBy3p?8PrVB;A&mLpiD zJ%`Rbx}CCwOzA83Wmb3VD9yiyTFsn}2hd`?;Myzh7DKAQEf-PKC%(JZh^AjF+OwQp z#aQWj0x-)5>a0lGUsmr?U-I^NXw7`3EvY-wBo<2>(@W<%h|_9mu^e~c`sDN}My2rU zlt4#ixtUWtS(qzl#$7JOSxPF^%k4GgxAs+Bhb`YC3dY822Xl%-v~$ByNOgBLg$ z#fx`qAZLC$MkAEi*{H#<7c8z_H7bNx>P6Gr`+mD^5^MsWSSVe}yA@}vnJQ}SPmtSm z7Qt=FS+dv-B^SCnoL?f8V^@Uj0c+jf_Md?#O7}lNd#(;(LL5Kr><0!F8|r=VV$bPQ zk5vM$xat_SXLwydX!dMuX-L>|+pZ21*KY0r%=l0BO>*GM1vNgH|8 z{~V28h6X{mkR=NCcy%|{3@pw|s7@!KKX@hDSEz3J?W?vCrv zz&Lj42=MZ}$1Y$=EiHzpI-ZE$dChS49CmJp%CiCKm(WW~@GWBPmt7_9cWd}x3({ln z{=o0AeE7vPG@MiWDT}~c@Cd#VWbr4guk^WY50yp90KibEO^qm^_>%bkp$h1;knd;wNd;SU22VM_Vz z=Fis~jZsAi{)<8e$*W7B=sm?<@g3~m$0IDW5d1pzIyhpjFF`k)SZi3gXLH9tMqz@6 zFkmItY=zp?Rv+K5u`*Nl-o#lyTKjzH#p^oLk@u>paU%^mhFAG4CAg-t@uyF_=@0IF z4vy;EPOY4PQ0z*E8p!QVGEirK{1Gx$IFOzXM;{N`EQM}X8%N27M~jgMGc~ZwePl_& z)eHa+4+alt-jv*0_bsQk_Lz|5ozV!Ku(MM#_B1)Fzoiu5GB$ocBEyc)09Z$H*=9!l z#78%<5nTUnMD#D62C#*AzoGsMs66&(J~4U& zI|Y?@b|36dKK$RL*4U7&{NTrBZw8p|t|B!dk3+|`7JZ)eT!O2u%i84)Sr%Wy>>U!v z4`M5<+N%LRdU{PrK9ze7jK`g;gfe2S zExgDjKS~YQu#T__wRP^U;6Ba7JL2cm{KD&HYj`O{SNMJ59%&427C#uv5Ayxroe@lK zXq%%px)b7-tkrCyifXi(ZmdY29~K0s`P#mhI?sVRdq8^fmcyFpu9EV4PgWYyLGVkoy?N7Cf!nIIV6l^b=6XfF zNBSiRWEPuwOPkTO|Bj@#oz4g%8Wm7J#oew?bJ6s|W^PY36Y*&ZvoE$Wuf)shu!(~g zV+b$ag<0BVl9jJid1W)?S)uapA>^AHng$WSQ4C-w9&8Uj4os=IrdJ2>e$R^_h_Kjc z^;38)+27>JSXFcwKRs4JH5?fc6L9C1{l43HWS3q$sEt|FN%d6a>g=d0)*d_D6riC9a?el5TV3_rQRK}k3}(sH>^ zBQbLN4HA`Z6#VFR`-_UX9f4^eg_*9MDcrM%7Ld%H{uemGu1A}eR-mvq%vX6_DC5ATw5sHwEp1fHA!Yrgrrw^UP2pq$j(9T*4%vu*3ABc=g85- z+^u002i!@Ke>GRS01!UMsO^|hO;Yf=X?96}ia*$O;Z=hsTVpmLW>_J@Q&{szFU~3p zq>uBIfU(<-2M9HPE&K*hM5sf*T>{<+W$P7=MbjS+=z9;?TZXFxMX&?NuSWfo9^DK3 ziCpq$i&#bH++{Nh*l(~!t!f0$)Xr=py8U69F+)B1A=bZ++n5^4d6gdP@IC362@q@^ z)%Gv4A8G=-P5!JAc%O;av91+37Z$fh5ejVMr=hB(kGtlb~-L~-35u|EgOjh2) zH7tb;qUs|^D+d(m8Th1i-56m!menUWeZ>$10(2V9H7p2OsK43kc-1AWfG`m zneD0rYG-@_%m33a)Ds{%a!<^vMM^H!fz&s9b#4VbQ!V*9hiG66({QSD|Mz?kL2Li?g^j1ycYC`5^Jy@)LRRmGz^>78 zcZ^-PGr_IC)ozU+08#fZm^b1JZ`h=ikX_YWe|cYqQJx{zaR?DiY4? zFPGMyDe@nG%2*UlP4X{mP?!Ztr!6Jti~~;gyCH9@JRFyQveFwu*8XGq{`kifk1J%? zgsWJ^3fNx)LVH|hCHtrWPxtMdeUpw3YvtZD!e{<6U_eZ7G6dCNeE&-UM$v~L_!!|* z(JsAUJk{3%_D?{r(j$TNHz#6ZXXU>;9S?yU14$xmvOm@N{>`Nq?JJx6C`{wVj#Kj* zfg8I@SURL%YN8F&Wwh>IdOUS<)KlYdpv@nCILLYQXh3er^vC(ZfXa(n68C3q=FKxOqV+5p?W1&pA9us!F;j)I4EeKUM8UhAw1O0ekc^wPiv#usjG_X3` zRKVSXtA8{1nH>am>>uCTRllvVU~o~&3u%R&DdT#kCvOk%PZ;7mZ3uPW1Fses9t7S` z;?;8fp4Uz}ub-I;32$YkhJFPAO{}F5p6)$G%Y6ED`@`J+oh=ybKZ3R#-b;%s-MpuPFjxvvG8}9;lW`C^cgfQSC8XGA z@yIKxTRofhh2>!v9pequw{nI9fTH~w0@?o455DAdwBvedB|rA-L&gry6x8Rn>4Qu$ zWs!U(#X<%p;`p}3pxe6ZNWZTl>1j3@6H(zARy#wHj{o9Bym-w1UOF~p$hZRB^t@NR zw|g^-vpms*9%~jOSSi;f%vC~h>LU{xffQ|O4~1NxB_F2U&Gff9sZ|3iVVsApf;g`| z^%b=@C~q?m)H8KjdsWJ_kVru~%5Y}HeH4tS+BVMW+L_9#jKetreUhrp?S{0wcm6Xd z4kWN4%e9Lg?VrnVJ_1iXbO$#UX!>>t%kA0iA!!M8F^BSTqk46z*FI*KeQw<{=lYbt8GLVP zEmf!Gko=LHUNg}w@(U1M65G0!Ul9{}2%2i?(Yoaa`i&^Xh~GHRo7fsImuoJIlO4$& z38!UM2#}2<7v{t4Aeg($LQ}q^Fs#^OQKwD0+Eq{_IiDZiOD7Uu*@mtfdVRV*$4{Rsr~Tq%%BAkDBCi3e{#O-quQCX?_@UZt;Y|y!YsxU%|xf) zo}GzkzwkFFmVsI&9 z6~I4j0tfJmoljkcs|iGUGhy=)#zAsx8uPQk!YQZDZPxEY{)kG%ZPq7yoo)@joym7d zPsaAzpwZ6>vmk3I$hdgX`H1w~U9?DCx-$^zG4#JU_dz&HD6V!mewE*`em8dbwGel6 z%yZ|=;W#*FpQ!%gy+(b0y>Se@`<(gm7#m34eEH6kbT|u z*!itwZHa`g1wYDk)iD@z^wm}-x|gh?82|7q4iFE${~aMM2wbCI>$xpUgnX9>gTzr7j9N~7LL4W zkK27|_A<~$Z3DrYmV)EXTI%u(`WAd-Vp+z%;JWFsc37`pHBiykO<5u5&=ZRjUWnD2 zPSZG@P<}kG)~|dIu-Vt&bFb-ac_nJi1q8NU`^fNg%z`|-t>LP9$EYx(BF?XTZmz{R z0BD@+H*)vB!h(g31`K%?E&23msx8Hrk3Q1HCCSWn$uIk`u(7v}cwI#lc8?mwL{y~#+wO7>UN0!?711F!3b+Djw&p(X^fh*7yCAO{W;wHNZHNw z67<%+OJJE3Yv94IAXRT(*R<1u`+&@KtIG_E6U~>4U6L-jWasyx&x6UI)&t~NztT3P zXFja{>5QG5{Bjj$9xhO)E-l-PXR3P`f(;p3dvf?+k ze`6Hh3*=W&`TEku`0n%vF>-o)2LZ5UZf#0V*yt0rp`uF^IB!-wUTTbS%d( z`CR*2>pC6ZooyVJJch4{w-#|$Y`#AyePCm%2kOOm98e9_97()v3VPT5FyF6VUO(0f z^WFq@ko=p+elLY$=P633nqV*85Z6Y(-+Cvsb?9LjR}teLD1IN@PJJ|ItyfBaqE-eR zkv@Gai*phsb?(r(P1F{Cp6D?kTLmbBwvXhY))CJrf>nTJ8iz?y)aPRpK*##iuGzL@ zobP22es?WM-IP0}!9i@*6}8WKlPMLbC!#y&$$ToOrnkg?4Bs6>e%-RiI%}^+8=0(` zGdE(Si0NJ_r%;7}zWW&-Hn?KB*!0FQ>+UcKmVZtL)RtC5Oqbw2eRLz4({IU_olh1Ds@3s@8YQ0rHNIrD>VvM&- z{kxTG^su*kf2XaC=L%WIp=}{Yn5m0>caDqe2RR(@H!b42v4@&e@X81}ja7Q$A@R}> zE}?#%4lOr7EvZij)@?BK71Vf_6D1M%Cikc>6xG>tYfFtMno6hCYKN9dwR^9^GP&k`({G4RI;~eO?S%fRB~D zmp&s?L~IHeX-B4%sI;DdBmb9Cf2cZWA$PkcC;S%1#JMJu-QacibCH&(=%AF^!3XtM z22epfWna|0q`zgD<1P}UKV*=ni_8YcR!{RCi*Ili!zAt0+JP!&9h~A?oimE`=>BqlB`9H zE!81ur|TqM^|SqLHfBG}=7dL==gp0AYa~Ou1{7}L>X&PFBR#85-_J-^AAj32w?P(Y zc+Q*n?oi;M2G(qZ4~0tP9v=Ib4O=q!A?V|}tv9cO=tkR@dw}IaUt>c6_^E(^J5t0XS;_T2>j;uBz^)~rGEjFNr5n9N?kB?H3FX5?P)L4*0rP0IS zS6%nG#`3BO;Egt>$f%SqGfwoXgxvJ^hMfc>b;Zy@U-9Vs5OK87?*rVT>Y~oIbIj59Aa${i+;*T{#&p1Gtl_{O$SSwm_RKKKlOb>_YVQq z?wWY3mgCefK>JRoyTp>DAh`{Z9nOGPOZf>PmnYu{Px-oU9_>=a8aK$KCCsGmcGh~o z*=-n<{%OV%!TV6aAHDK5yuG%nt-2Mr5SNveRpM?IZLI>7PrJ7P{kpaZmPyyX3%|p8 zlj!bXi!L+W!~M2CMg{D8G7ZJA7uRI9Sz#2Tw+Pf9Hl?O#UU=%c^iy0ze!*v<7K zx!X}RvWC%3NRa{3TCL52m{^Avv0XlFQz(ewq}KGX8ffhRO`GZ|UN7TJtBkwfStMV} zEtbpBGheNbRnn4K)#0O!nPtj$nd6sM<$bN#?7B(ZGItcaM)Nx}g+A1o8W+y0nfDpt zzPW}!efjS%gNqa^}9sJ6!Bz1QDaWH@mm<#=R`{w?nFO`ehV0>g_c4 zr8Yc9F1ax21OTuRgwIy`Y`gKunk#c~ugwy{m$abAmg-!-t5N`O^T6D?%p_(LXVpOc zJ4>xogFp3oca(gv%5g?|K}tUagTHt1tsJ&SdppU@i+qvZZIYJ zJ|r+H0{yzPL6W<9Npip6#N>H@j?ip5+u#K6>Ri67Og77erxtIX`d+c{2-Whvu z<9;Z)8ndp*{`-S5DUboGPC1MHtr{H(he%TT8b$?pL0pwrQ~C9rKxti5pNE=)_;I9W zx{QD&hb}_>=9J803y!74sK5xys$n%%&s)qc&Kv$*2&|RT3BzyMrmyNP}iVKIF zv~6uZ1rR6lQk9+ax=z`uPf|mV<~B`BifQsd6^r^QYWI(PF`6Rij8Gg0!!7@GHHe9iw@{U9v4cTKWM9k+6d4afFbauTOTdNi?@{nM-GJQgD_M&Kw-dq^~EKwFObDM?A!Ezk(K zr5~4^?3;nJR+Vi)(+k}ZjMx{<#~_rmzLKtLmgXi4S9MjnYk8$iUKKR##FNRr;l&w# znkq|}VkhNxU216V;Pk$0Nz|l5Q(e`$t>N$+;jM>^apr1W+QlpyPqJNm$ceG4g*Z%c z5w$;o`|y1u@%$zkZorCvgJVVpai5U$u}$OMP6ylM_+L+zUjfC3eH{L z%)=X;yOUn<6?Qe~W|nI^hwRbt-nFRb3(f|8kM2-3nAE1s*-7VN;sx6ar!Mk5uJIfS zl2QRZt0>akg(E3JRYvWPERxSvJyDs=Y+aCY_Y*B!Z5k7CwDTEkmIe|0Jr=ah5mJ0@ zgG|wY1pXqe@R|Q)Ax=djUsL-V7<@jqCJH+pt&6Gg1pc1RiEQ<&?(Qy1OMb5r=-8ah zu6rYkU$bM2SpdDuRx7xK&EB~SmyL66Z|hO`LM}H$9T)I5MDQQFJ6<|6`+VYwwY;OR z%j6&_)xyaY+CJzCcbN)F4~nCEqTE)FG9~rj*g6<593g`SCjk3$0ks({Q_t_gcHev?nnTaA3euD2;b-6N= zRvcS_s^~pO>b(luV#`cYPa1*>t`joYfj){J7JOVCV>A!BJd#rN&hsIr5F7M(uD|p~ zostzVKI*-7jaOXw!Cxk=fPzbHR|K#6pp6%~J+r5G+DbJ~LzUsW9z5@{v9$Rt94nv8@OzcUpe}J#d#67-+&6n)%%_)pzx?_t zEhs!fzVk^%)EIYVW8Q6N^w^i>GkUl)AE2h}$W&0tf|zxcR7&G%6WZ83}VizN5=lO3eFhiog<7v>j_UgSgzFZJ-^|yu7W39gD z>qFGdWJ#E&Z}CE@MeT5UX=PrM=k0O=m3w+1btsyCrr^zlH5Ya3!rKb7W%rcp!_!dp zqZ?V7cdb6S)k)aiuP$A47V$6>$sL|d%w_DW0NueVV!`k(Gy}*De$?y1RT9rHLz4UHGHKkuR(9_s%aE zIBDlJ9K!l?T#=r8et25$VwahPNUrq4S52Hv(gl##NJ>ka4Xmgr+XyNBrcYs~DLERY z@yfPfY16i};#t$J+vPV;ZfQ^&B8U@9X`qe+s?N4)BXbLq%t7O;qlv!x8t5xg>LHt= zdFiLCDZPk{Iq7hBi5A&*JpeTFE=N?;ALIo70Xdc1X#=RazqMHuPjuyeHi$HnrPz(B z>mg@Wq|`Tx&6tfx`v}!hRGW?uVdpfGD8#F{C2ng!OU1y%iYa^iM05$^4X50J6l1|m zi3ChHU@G5C2UIdMo0|2JOHCg8u{MVL7pVNl?i=L`Zcf?>!Sp$P3tzz3DV>vw{GeL-(Bk79$XCuL6Sy;%CJ5rOy65cH6C0-k906Rl zMkI|caA}LJ^18!OaZHId3svp%x6$o$jS>>=BD&dR4JZwnQ=6+r^lL6**Bad2Ren%k zr!-aXz8(vWDr!}^6SKf|?fFRXFUkorGub`&|@?Rk6Xv_N)n}HKQjVnW{;k{zPq~h8w6~G0QrF9(!4N|BZP)x@_mLI zGfq7QRDWw<5#yh6^}k|0%m`Fy^>Ox3bV?t&E)g#1Vjpg2Xa#a^LY&BSTLD1J8?;f% zkF&Sj)sGf^E5)R#gax7z2X%tbZI%@DS#Z=}eW$O@9CELWbmSycmVeE>*41qMA5nrU zOM8i9CSWYw_Z&{jqG}LkSS+~qX{Nl&Cu7y|8fZn499nUG4jg2H(i}}ZW%cC5&Stqc z)FjT}H1oMK3|uJvw0zN~sZhR-k5F*>BErGmyU~Lglifd#fju7e+XQ0kXD4 z!E%K#b^4TsL{4o>@hxdD|GiFwCDT<><6HGRjrMb@h4j)Tc*y3~Ok)qtbPrF2AWrq; z$A^ji*$Oj(j@eI-3~g-XsX;wsjJ<{b#L|{j zF7Eu$ouX?G*FGL^POyIgU-$cZs{mBt;w!YBFg5zggr(;;a3tksOlb{YU-1D(EXRia z$~{o>3ygkUK5kfwc`0G92}g4E4sQ7M78fOI!~>~l0RlX`=W5}t&|j{_iX78=KppyN zrapq^p_!(sY&8ZluaR}9CjQ!X(eXvpy&bd5$LrR!Z=Z%|Jh`e&JV6Zxc4T@ws#9$R zgWs@Bs2oSBd#l^&HD?LxReZkH;XhRQ>5|pHOZhs%sYPr+`~0t@^P>Z2{XY?UOpT2; z#>{BDVt?yBw6u_Qwy)$=v$cj#s-x9GeFl(}Sh&0qk(bM5D@%PjMJt9GO}4 z+C7y5Is=RCs4;+V3}uo&j$FL`4lf}zs7ZzfRPXC*Iz(hoO9U+am( z;-E8#x>v-gCNzsL3GVE1q1d*O?3Kqev#M*)rizKtwjRRIYecSd!BNM_GS(;267fOl zUT1hFWggTtg|`vtUAJt1tId2B!W(oj2PD zjgVAkLt@Ibo1ZRyJ+LncdX5&T`}Pa{?EPTX^8+fWtx+e5LZnaU6hEPam#0myfyfn(IjB8@ei% z$`8}yFfXxVI#HmjM54FSy!~yr2@PV|rHz~LwfK+pxG4cc;Q-kQ*n2NEwU6sxx&lY^ zhMVXeOoy9ej^dR%AbA#t3uAR-pe!L4PD_bqN8i8A-kK|B@vxV|>T?k9wGMHw#)EB3 zPTlPUu8{n!e_@?oXh^w&3x^aCkw(Y@s=)vyZ8SmP`;aF=sY}vzq;}TaXG6%@f3GKY z4E?~2?&aKNeOe(8^b6`{cj*Z$j^v>F8O zJ@mFy?uk!6E0P>fTtmYlqIjL)A{)x(B1NOT>8C!Ix3Yyd?MXxhwoAFmLoImyn&k-QwWBU7@@D42+3?J@;=mP(nZ z06srs;eY^$GoV-Z$DJmKF~;SB>Kdvj?I4^UJIbJd3U-qu)|t7P9M1)}Y>$cK72mH~Z&*-sFUglikC-t{75^-L3E%?NKb-*AkNoH*{sclv^bf zR*?@n&2*QyEVdIyd&aZ~SWZbVQ#ow{q&T^fgej3Z9YN`ka-HSkq(KxL3MhPMPk8nqcW}1;gT1E7+xSH>9!Idm#&eG z)K7A3)=Hx_zD>C&hb`2n>FdO(Ip-QEJ)gFg)^;2Az6-)k z#7$Dx+*)Yk`}?g!GM-<=wlsTgh&mU8$C<4*~Yy0f^iBPa&t=f?*$3N%OW*F z1xj%V?%R0tPI+pvQc@arMJ$vT?*#6vL$4_AL&o1ngEkCPAw`-PV}pO^gI-o>{xn06 z^-gtG1()rn13)>X6x?a&IOf3wE8?}{M5otibKfwcCV_qe7N0N`)atEA6^bZ6d=u4w zovrY2ovEYXT&Gp8juX& z=om%Hij`2bYPL4sgJQGf=8OfbH>L2t_}Jda41zcM;Gk?rO&W0>Sb)|v{vBxKg=)vkQDPuYM*JFn>G=vr{DW&oHW$7DV^%gqx;Ui;>@@5{HD|3Kn3~;fK_VWZKI?iN!FZ ze2$0jpyl7|9L@ky@GkJ92})N>toAFV&Px+qq!FoOKi2kO+~eaRxbc)X@9Jn8wPrvM z+Gl9%BB`BUJ^PHOQIxeuvc0M$Usn;AKRWrwzsrFDINZzxAg#j8Eiz-Y==PtnDCGcY zAycDCA2!CuP$YAmZsg&q*M=($WjqhtjmuPNq+T_F>%!F8yMeg+{WT5sdw{3eCoHxT z*Gl3-GjF81DZ(G=@m$bl{ch*eTw16`1Up5U5C+Kkwd(9?20g3=3RUix}pg6Ps# z{2Wy&G&GDtvXnq9Pe;go%hA2Q3f}TCM5&0{rpuiik^I^{(;vewfB)Orsnw~~X^)|T z1*Elcp;oW_jQLf4rXQF<1+IO2w0@q8fywPE-7kWHl$*~qA%fyei?TV}4g}d9zlL7p zP5JgnmmWrg0JlmMzP~{ugu9n+1GOQ|DM>Dkt_dECe%%IcL3YF*i3>((9f=SHmkq(y zgD;{}uUVklXgHS~}AhW5RCNu-PS0(V>C8?}#jqG2tan62s2-E=74J?(FG#!Cl zJD&D*0ktA4xW2>qZ)|Y9h8~i(lJCUIO?veaacS^HXLleHROl&lXhIku>fDXo*8V!9 zubnh+YBpSMI6<-!`2kAjDcb#pQt0c5B5y7sZlb}VBspJ1t`kJvO?Ip9ZTC!@^8si4 z<{d4MAV7K0-~zz+myu+@%whzN_^R)IsP7v=bfwodV)#E@ zH`3#|{=4u7F|*(~l!VbWuJ6=1l|G&0s~jG_0dBL~H(sbblBQ$v9m=wYyWYHMcWjKw z&sE9f*cI9-`XOmS6xkyk8>ZpTeFHrke2YO?1RxnH8IhqAOIU~I*8bU9#- zeV=k7T8j_8@G<;u58LxMJ|t++bPHK-bUignu$u(%{QDB20MXc+NP zcnH-`9%6)9Oi%$9p&~C9CGa5INh#_oT2K8t^N&GqfK3rD9XGD`0IktzD^8-1@rDlR z?DbHLZ>jUEz*thrES+>8y=%k)e!YL3T@y{iITNs%dgHT{tcjSZ8aWf98Ss%V#|ES@ zt_k#5#%tW%eyZZ-kJV!TlfhfYx}Fx-rg$&pE4Ecmw`A_@KR0D3&~^5dV1CTsh8&A2 zWC?k`c5&_LIm|~rS&x2$*N-~*cT8D{D51v6F3})@vckf|9GD&EE_YmK5W-0mH0xg} zo%c^~t{AMItUAAPFDYMW-~2xg!hylf54m+X1LG`2a2Cdhz1Hg5%(B87O(=giNcfZ9 zJ3D3vu3k^>UBH4(F0M`0H9DSR?EJW!^l~!h47^NrTJ;~gk*A%WPypzLFg&}e_uC?y z^OWMcYC%icb;jTJS~r8^M3fT7C7%;9u==*MtTa(0ijr@8itK;J?A(6s@8d&YK*6k( zi~^k=NBpvCYnB;RFAPfd!F(%!4$6Swg=q>QIzYD$5TZFH{gNw;ns1c_g}0&Mg7$wK z+Zl!;a??ud<0aB0)ar1B0~4SjQ_+CBQKBT~#4AQD@}}j{m|Ypyo1y8uX9A>h4JVeQ z2i4s+~_Z?X`7c1(K+C)AEWuHMASNAP901kd2K@ z?eR_y;9vb4XPx~`MKYr3tA&%jn@B|!33jDv&ZcmD)ZYjHcsm1AZ3nI47fC2oBwmMb zm>ODQTcwPWG!8gRY;@kr4hOPKrjHf@xmLAxaIc3eD6zEA5}ta4E;4arzAGynNl^Cb zIe4aiN%Y^tM?(4^)Z@t?C$B1p7hU07Row}0WR}_%Tt|u6nBBj@IbOO2Z-}i4NmH0+ z*IV-|Y)VMf4jq1aTG_T;{|a*x=$(8=a;@Mgi-m=Fe+Bmu^X2aSp{_oRUOkFUpcpP{ z&cdO*NR7|UgFIxcj2bIwHR3>?duZft8_Nib=u&y&KNiwEW>@9pVO^wHv>&4g3Bz}e z2&Gfl7&Jgm6>Uts+k~bKjWsj!A*h#pIZna^D*t28k(l#qA1$sj^^9F-L-MKOws1zt ziYU|S*1cvZf_XL`X5@~+$pBxhmbUgt`!tPdDFdAvC71%iB1$F^^E4_m#1t*41H&d8 zZZ#qnR|GE%3pHYa0LgvYubt%T%?gCFud-%w$Nmn?raZlLs;b7>jMUcP@<9tNV_t+l zQ1RpJ3no}s#=j0lFOVvaw{PqT>izId*-YEKwcb7iW26qjg&6s#PiK#}KPn;J*4D57 zJQamBEscOg{T2AP$Ik%W_~f&t4on1HlNXXTTVs|qh&O$o1@K%MqHz`%C%#IjRA%K} z?`w9hzVPhy>8cuy&zbf3lnQNSxV8s;@gR~?03^A}Fb^!?n@)9As{IwXVr-inUZJBU z*n>aK2;ZBAb{>QSdFa%DnU=p$e1qSm%eaMjnU%AG04W#Zdu;jKL=E!_%?X4PJ3oe& zF@6GF8saJP1d)K@wYU7*h2KFE_Ja|DiomAUe%E?^US7P)E2kv|QnzE5#WDe0&>Qaz z+$S6#G?oT*UGRP^QGdyjs=Pe$k#1x_-^6%nJKt4qZuzX!#a|SdO4CY_Ny8epcPufv zWoflviFFupPdSeqnaR}HeNnF=y%({me}Xe8s7+>Rtnt3;Q)Pm(L>cvv7r^bY9@_$3 z4d`R7hK+Q)>m{#o^A|k?1;c&J?y-d$1&Yt0WKUuzMqD?itm;IyH%a(@2!CD(?5{ki zC;gbz9l57I4u#%RY+ibbA+eHMXUN<FaFm zY~Itnm)($nzpW}Zb&%#oeZCJK*zLyNx6n@cv^~zM;H_h3)c)xZY}}<}<7;4OO0MKH z7^Nzn>Wx5I!Y^1mrc?B)pso6ZSt&`nY|^18){+RlzX&xfVc*8l6U;HM`kDvjGEWf7T&;O)w1shvHF zM$@3FvBo{5C2|r+nb@NzQ$p4*t*zQ0qSgNj6N;!X;3Ti^f0{A5B6wzN!IcKFtM8&9 zUTMJliHPBNOTc z-r4lmk(>sVxFOs9l9V8?ruKDVlIc}SDCIEXR8arJ)_2EK{l5R7V@na0LUt$)Dj`|X zu#(C;_L03($=(U6MC1se>~V06V~<0_PWH&CB-x>39mo0IFX@xs-`~F;UiY}}Ydo)c z+M$UGM;Bd(uV-$wJTUz5W_ZD%sw)@oW&Y-nwFtAisolJ;L8oh}zN8+)*=Hmo=K6n* z-lF(g545$d^L( z5_H_^zsP85ALM0KJ-kkQg*(VQ(egesf(N^KO9F>yA%wkmI$>5NX&~pXs^#Rk$%)%* zMDGj?jNp>G%)JHI3LLX3;9=3%*Id7vHSEi2$+-)~ZBqU>{%9g0N5?D-GG3pd$B`Dm}l~z8{(T z3dXZMCkUycZ04dDRo9n(FidrTSZVF2qnA+aGTz!2s{#EEp-k$@0`>gn>GmS~?0~w9QuTbC`ytC@5#TPP4z&)=jyp#@ zaj3;EsE}~n@bGhZ2Hz0TY>8Khi40J^Gc6+)#j2s4Wy#96#$`(X z5*yQY2heepf6Lm}o2E~qebyf&MpHm(i^sho1C6Kd>Pf(*IPG#hrX=t7oA}4xdIoc# z`@$9!Gv8@wgqrU3W?oUnu9!r0zq%Vx{ZCootoC+4y-Mqb5NL=mF|Ngd{AaPI7HAs2 z1vO;N5aLMDeM*!=QPbOfPbovQ>OnJ~MDJG#d!aXSq961_0lPQ|I{$$j6jMZqvr#V=7r1AWz-RA&4JUj3(73{g6 z`(Rml(l*s3Xt#lZDHYnbRxlQ4mSCk&%T+#Qa$Qm+$4f28?|Lh0+51)I=gw*okUlyl z?pV&Z(bVPDL5hy_T92veY!t7#o5s7aaqiALw4tbOUawq%M@{Vo4**U6q}f2&dPld{ zy*zhQOhHw$h%o64pvqW=7SM`uk_xq~)iI0)hxB#jqc7j6C^BDO<-;+pY}B1DVY1)S zRrE}U%9hdi>7=;{k;k#V7y+D4x^4{dXcNhCq(G&=-|s2BGSUOX}Ah%nAz$-J0_JS~C5Kh4Fp2ea_QjNq9QQuOz-m4} zFeAm|S8@SA_VR!rMQ#A7pgq*4gUxciCXvv>hdr~Pp35f~qyH!**I^5ahPWI;KC-@P z_X#GpTmJ#&P1m|oFRWvBBDZvqf$2tGmH=U$d^P~j?gza6`@kOftBAhoQMJw)Ycr4}Qp55lYh^1THvrlt| zVH^Lhn)W+_+PSo*(IgV3dCPYe3-=H- zBaP{HGHrZAwK*d&um7(1QQ@o?;D@3|kbS%W9gxSKt)uo)YQ>#cQ{Op!BdB9cnN|-P ziq1bhpvA66^Q~qBRR`h6Jn!?+{N2B$PObj7+-?4!E-@|_sG`}<{1$sa&ub34W}-eP z9pX|du87wamEn}fUNvsnjtEq=^z`rD1qsItZvQMV^TF7l?~W!(A2i z@x(EVf^?ec5UFG%*>GjM_2_GkMEtvV=iPt&Q=qY#DGcyB7?1P;O!0fcz<6UWtAQy{ zvIh(TriQ#R1*T_wo-vkNF)32Dh)L9xgM%tj1>ILOHwL;$dJNATQwugodiF9}hw{fi zy>y!)D@uyUx~H{w7sR~lm2xwkfYM6{q?ZsGf!_vsyGie z1QHJzzy{)8P@pgwcmCPu&YJM=C;`$@+{*evefGWn%Q3AIgNis65HPF@XGN@ty!Qza zM*QdW86c?sL#VBe&-2?hpzVS<1PZFUPx5N@=w&8{o|$vaj7aV^Wc%3oQY1`-+a=%Y z(v7P`!7wY)Y~$;PSVdTrK`!sFP_Jvmw2XJF9!rK=qSy706{tSv!`=YPT7fXjrW5Yv z5N)i_y-N-XI)-6TQb+G0e2$a?SUFnj5=aBRtazo)qIc{882I*gguxPM{$3t&>ntX{ zv-o~9=s~of3y2;ej`mk?8F zb03<#`@ifwLNR*}!0^CMc}=*|lt=rdE|h_$z276S*}&q-v5nI~VEBM=ju$9pQRqt- zL0g|2&(SZDZ?BHR3oqpaS&~5{$=S7ID5gTs$h9>Yu&_gWO&7|`flbn}XNAuEA0AH4 z6n^uGI+tmqxu$B?DkLT6sBnEl*!O&1EDOXHz=m{Y$ zZzMrnJ}799>rSw2e_Di=eshsx4rEUAUeAFhs-X4d#b*n*)?fD%>5l({G$jpxBh4QY z8-8ZEc2jFG>8jKIgh+!6?|Qm7BY0qFe)wfTl}Q6Sp7tkQ2uxap{-@W%WtdA^h=Q$U z0{Ich?tj=^Uwf3(q;rVY{GYbi)O4Wb8-Sk6^ZgmCt+J=Hv<#TN85=EsL&d{UW~Fr= zdjn$}!6b5iAcu$dMR6?njj@dehgqv+Pd9>obaFJZ(?UT1mYM$~eZ;eY8%r$m_8dK= z7vC=%Xb2^D7Wx6qSv{(C-t!;6p+bXh3bRM2$?6>!IwmthXOkJ4#leue3|&x2$6l^U zg=PlowMvw#530%Br?`;BoxY;%d!1r)ZgKupf-duFMM#g1w{FOP?vA<6ms zwQGKFIPo|uWpBejYB7XqE+{p%Kvy!*b;hExO&~-VZ|dp0vOc_d@(_~uQUPh1dcv@32rGQS?nD-uokUNCN3f#gr#-oPny}{SaMR-Ql`OtUndQgY|Kex4?Yq!@R>63HAR{)b{(mO;O!?#zn z-~Qg>G6<*=mU-8$XFA5tqxOvoQnUtu$X_)ymunUD^04Y67v)a0zlq|B^0{FJ%EQ!? zQ#<fR+h z62{*nrx#rBJ9MD?@*(U0T+0|r^9bvi*#(s1sy}{Q`7rqa-=gri&ZTEl<{ofZ4Fg#M zCx&-!c9@oaUsx`JT2JrU!RRN~FFmvDdwn4^C3(&#pWsX{+CDffl>X~ZdsUZjto5Ds zTWSdVl4M9i%7}Z8GyOwNV<^rqQ(f~2ib$>W>POV|93OVc@dCvm^$ltW+%rDxOGx^z zaTu+kbgA{qBD-E9a3VSJ>dG3cdK=n#fhM`>g1E$@Qd|;ZCxdV}GpW&#FI>0x!LQv9rZ)f$CiZ`JHtKxQbJkT* zrP;6yV$$5YW{IHYc8`8=x)jJVLq8*MciYm04M$ez#N+vjue-(#o#-{C|5w*df!yK| z!%`-_!VUGH?mXJ^x}}Y<4u-%Otz+0ndco=IHoq111Y`^OsPxLO2geNw=G)NTsWkDnf7!1eAfbY}ds$as+N`3w_w>Mt0>eW{@{C%+>Va#f zyK$|EC!`{x_8`W(@^j{b*pqIZIB^D3HRb|#i1lF9gXdz!ifjAI!P(WEK+m-eAV)KZ z^*n+?F<1BN-+4N}DO<35@c*nz0g{f(YZ|3NT{vGVv~SPlBcOWb0ISU_@A1Iz$zTe< zGzqM!0m=YLPW>kPK{6Sbmbce?b>*^ZKwjXfoLg1D_nzb8yCu+y|1JW=ko*w>&kPTn zC|ZCbodX^9!pKADAv*Be2hPBu*b@ut{nFlsSPS@C+L5RN-|?(|&Gf!jCDO>XwREaL z`p`AQ-Pdou{0*s0d_~42$=wnZy5(h?fxRpG_FgG7D`wA()Xa<~n4SFv6nl-5zWbzk z7d+Mh6ElRhj&WAe;+WK9{CMf0ssDdlDVr}|)!k0FrY<O%Z(4CJp(4Ae6oTa#y8Fh;lKs>Bqk&e`>)gj7og(cqZ&h%n#ZZ5=V2m!1mfb>+9r1sMij<7-w{&03nlFN~f?9YR3m z5oJ2&Q)7J{c2dyXdl}HL8LS4%?pSSd2Niu^3lw64_pM*Z2i{n=5e+l)Bg1Yj)}jxQ z7bSI_`gu&`S{MKPI>_@S+$&>d1tqK@6^HXd)$}1jsJ1J}GBhN}NQ2|FY?jG#bJSiC zVo8-Hf0!XrKmS+OR8R&uCcTOc^}(&LrzCh!*#ZK$ij7d@p4UYNb9{e_-xIO2nM;;Y zb=w49*!LyDU$)nX#qK7OMdgoNz7>9|88JKW`A^5p=EbK1=w5x@!$>eh_4Lh;n<5~- zJ)30K1d`qebr4p2K|DI+pe00y`Dx35840p%)T;H2tH9ICfNXQOk|=R2H7cS655a#xwKExhn#e{h5<2hSb5+d&2R*&d6@-+`^v)}lux~myQpXs zAFT^BXECnS=SP6XSP5B7fqWtuLBQ{IyFFdave9{d%lO{LSrO*%i6FZ>-9EDh3}N*i z#KhgU79FB34mVs!P(27~6!P@T=_!g8 zFwfBEc%3qhn3>ElpC{aJ1C1NOD$h}%eouD+sK}dQuF5Ux`ew35uDwbQKPy!NU4Qt? zPZ3NhTfoS)zo>X(TR)tv0<|sb=Qr;P4|c@pKIV_p1jL34yq70&pg(S8(9-nL@L46toiV~2RYT%oKt)2yCH;xc3zO966l_!-6 zXUOfrkdtf5n2K^S2V7e#t){rOCvTHW@}K*koY!d4$SR5XSh#p{Dx~?^flv#IBTVXy zM_)XlgvXsf$r(kt*hWR4+MRj&dE|Lsz5ByAANt%&bPf4k}`F1-_XpQWkKkwZ~w2Ti*)Q1tZ9J()Jn>D z^^gEvpQg@Z8W&Hi(Y4Y_QlcG?Ca)aDNyRm;&XvRwSA>|ZgsRTDW6Wm6ERYH`^#FRNPay*9h)|R(q;1-y5iuCUqQyw=#aRF`tvY z?Xj`?{>v$n3x`fp@Fo17(4imG=>`{6?sb@DhbCUDzWvT>acshJOgLJDj!a;i^9WSM z7agSlC0B3}Hi|w+-@u8WiQ^VV{AXuhoK4y|D*EC}(5I`zZKPl`&cs^9Dkj4_{+6uh zAr5+a>ge&$k+H%Vq>33@OY}c>vqMJF}&)Np@U(A{D{ZUpxTwD!CAv>=`AETAk;Pu=r?u|M-&UJ+nWmBxvX~2@C0h&0y4^!*Tj#Tb(+_mX>-trN`o33oI)#-#gY)Wv;$u zM|_!kK!qS@hv#oy8_8UL|I~krsL?|iv5-{Zp*9y|MiyKo4lgbyJWbe(BqS@%{fF{s zv*LoHi^sY<#okT?eQo0Mj@`etsVjA-?E0Xz=6zivsmP91@38|7!&Bt%U6S;r-8a`d zonmuoxyIz(2bT=X7JOL}uTUex%nNE(;@$9gtiY}ZXe|hMw^Y9rBTa$kJVb}QB_fe` zZbUrHkX@Ww^-E$9^<@MFn%r|)->g$()?@vXe$V$d?rRZp3f}8E4wZh%5+p(8LH*YI z4+Fob?_wCVBG4$(&P*~WwJXB1$J6#9JGPdb=6(ipKKJbg>#x@=ZE@G7`}uK>oRhgu zo>6(U=JGILLJ`;5`^kF`=a_*mQOkxTL}(f>=8zs4A`p+l8RVn?s({zDh-7QCLZ53Y z;Z|mVZ_+io?(45;K4w4`(S}=jo7dP}cRqd$wXW%8P0l6NJa}rsWUNapeit>R6FPB(d|}nhs?2{G(~k<#J`u#*QOhE^ z5*OuL*7fpJs-lR$zgU|;IUe5n-2k~DyN(*s*4&i2_Gk|8aJ5Xo=DRw}dRqnGN3B+Lz=V~Rqa`InMz0w44jUCjd zXr(3i5LTnp>tw`$YVo+h=cbQ#b7Mf($u2qLAbqHr+4jDru3i@2YGyA%G-IRZB5$t7 zW~p$Q#YoGkzf>nA&NsKeNAG9BUNfLTPwWRZ&veM<2S>3!KqFSRtciJ7^!L?F`DJ`d z?vCIX$e&H<6NL!B)Dgp}vOF~K*|!<>v<4`Its5LBzQNf8i(lu+n)1Karte>RtnHsE zu`Z}g!7BV$eZ^g)WCa>Vv9u$fD-X@i@Kp-#tiL5QhYb`GCT675BbSJo6C9Q9OCRc= z6oYmBx?cENS+2i2?#$Q2C|~O}Uo??j*B!SPc{<@geExf7@6d@Luh&1m3w4X~9zzXg z&nBRyP!+i6x8GyDEdYVjew&^bk2t>y5ovoYA|g!7zZUh3OEVZkCoe_Le1 zw*eE~vm$7wA@jk6^szOMNlpBxn2+h454DN_z>|u5kP78yDaiB!|8%$6#ZF-L5;kN_NR!rH-=Aj(5QZEI>{Ryd)!)ULtXQPN zfNWdsv|}9jVGdR;?J)aW^9kR|)QTs&s1Vmjul%_C)*c~JZHXK1v{r^}*h~+J9GnehBM$Jtczb2=^85_VxfP_4T~~)r6zj z9v?HkC(G^Go%q;Wa6Nz4jMcs4DW|Ly$=f-8%zq>~OxJzp+eK0V13l93dV(kMv)`Lm zT1DYHxAX$?^N0@Fai*dAM(I_#Wzv)zW^leGzHp;OWv!;Q?kH-xHV`$ zNYt#^xV%(z+qK(yEJpf5{1N9m*{>T($c6QlpGenLZAJfO=a$XlhydNA;C?=p>kj%G z8(KNUO1Gbj?URBlRvV;79Xty?GVAy*O}ZEP@X~Sflr~zjKBExXM;*V!bIW70uV� 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo.jpg b/src/assets/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b922491b7aa29458e3d2d804b5379bc5e5f585e9 GIT binary patch literal 14351 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
F$Tk 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 aY(%KJV zmNA&1>#?{FfF>rH35|RBdW*KSp8xglItgED`)A(n!Fu+3}xs9e5M#+}>0Y}Q>uZJ?1p4K;E3<}Qk7sL#i&s)O6 zQu@6$iwJ4Um6Csb7|V;(a=QSoMw}WMk3x8YvsnK(om_=+)9XH|3B2ikX>t80Yjg>{ zJ2wRwus4rfDuPoG@3=-Nqp%Ph;n9Uj)yvI40!Lz&FO_1dxx1M*n z9lPOSSWGYs%jVy-C}k}#_}EYr`FF7zX}%~mu`?Bu#G-otT`-8o1_6)m=%EY~{AfM7 zvsRV;cw_y%Qu^p%zcVR0kc1v;`95l%ypdh87Xnf2#lg183pzhsJ|8N};3O9Jx8G>) zvB4|+B>BadC)-i6V8UF5ga!3539o`&_r;6DA2UKmBO@e1$E0^B#}=1A?0s(#-61a% zmIamR9NFUMzcidK#aPt6Iq1-=Y?;QTwheVsBa3^eyQu+Oe5%7K%TuaoXmT$$ah2vt z0~dIFup;zAvQ1dRjO~W3HXN)?j_1>YoIXh(?;7ULpZ;u_mJ;DLbJFN6Mm^zXDTh5N z7;_O86g;W>RV$X4JFKuT!gRIA^tNes;X8s}lLm-<>|F^B#=Bvz0HZ)-)vuBm3VO^#ul51D^9K~glyOr`2nf5_FOL-4Z3h8 zt)%v8Xz{AEr~3PHLX5+PcGfufX+FwD4Z_T#sOA_nNk8xNQDQ>&E~I!})gF>KWaCl_*`rKO3<666Me2K;1 zx8su?wP;9fWBNQ`PmWcmK@X%q4vu5w^MgcgPUPBJ(5r(IO*vWQVrD?5=UlqkbT6_St!%_=N#1`T0wQ* zgGeD|iov(-SC{9S@uUn+`)!VxAnhoTZ2uIq#8_~%c$pek7?J1$5~D@ z4kuO1Ld$_8>Pwd#G1WXkq{~ADk-hzvu~G%^X!2-ew|VY-#+nyr87iBbGw^l)zU-2u zX5-?AaAE5j>&aukeHfzR7-ZuRF#m6$Khd|S!<~7+tR@5nM`U~hn!&*bA;H)qmlK%h z=hWZ5^xK|uk}Sh2pT>6vvp*I(+W5} zgTe$i96+(qE=qZbm11c0ThX6Kt1U4WcQq6if4=)KAYY!nmEPW<)9&Z3(tkh`mrw9( zLj|x|5=hI(scdxJaM*&do{OJDhzJoWl{m6*7?1;E0c9foQFBiDy zBaI#i&Z0wwp^Hm$#cx&ESAKk%YKp2P492~038W036%?3%D!_5wQhDv`0?#>_oPIyo zdZMnTBn*a8@OlZcBtD6fzh~$wd9<1A9DjGxl6)v3Bigc!pE{$PwG2fTXrr*L-bcwY zYrw(bA&_?=s}H`d=gIvZO3u5UXw7+bT{}sju(mtJ;oV!_Ygss3qaW?YJj(R=Bg1mj zb*bE&b4>NjS=pdl%K$NbNGJ*g0u1Weo_OqCQB@|i?UH1X?xSl{ckda(X*M%ef?aKO zqoddo3Bb{Zq{MM|HjWw%qi=@PeK>@iJM5yGSbOO;dFk5rL`-i z{ZX1Ba+~;%Y`vUswXeUU+t!$4BHY}(H%W7I)MaIX(FF(b(3TMLQ8TOtjH}10`()07 zB;Ivi`oAJG?ebrdA;X3YSiT2xx4PyNc@gks0uP;^ON;(+9v&GjO+=ucasjE|WQz!f z^5Z6PjpXAwPv>|HuM3qvZ}A*&n=4$)YR6pw?5T;afOhCEX^R5RJkAM2MJq-u(0|Hg zjq!G;d`wIXqJpA=LAI7;>A_C-e}X2&Xt=KJ%b^w1u?@1vw-T5_xYVnHk?p`E`5g7%%hE?%{zEpnwtq4bPd_5}i7uU-6zt8Bi( zx2Tasd&q?k@HbVdk|QG7Q$2!}CM_*3w=#c?iCF+N#yCW20z6 zRb%ySojVVhp)c{zUGjFkH%3J-jiX4Nz=5KXAAqKCpxuiR#49pw($sc#HOmgT!p z!23To#ODHB+=Qj4)5{zkGrgG)^*@#_X*oXDpFKS)citl&(21qW4~d52s?#JPfbm2k zvvB^N5B_|@>z_Q0z|05&KRF=?Z3^EK>77|%Apma%Tp_EQEt{HW%GJv}a}+?WC}V3x zfdH{oC|D83Zum*+U@p};-r4=}e)ic)|D0oIJud(+L0+bBi!|CRA}C`8kyHf{1d3Q) zG#>#=HI;v@_Rw8202@sfR%*AO$7R`*F8uHeHfsU*QX;zWY+Wb_)dmzJBX^XCJ8RFI zGP7kjYX#b>2=7sb4wJuBj+M$Z77v`YU-sTBr}C<7llGAvZT4U8c(tR^Ps6JCQJyRc zWkaQr7P^IwAiD0_va3B=RMRG#@!N>T|M%!ctIsRn<26|C=Z9S_QlV> zrK^>ty^*r!@C@$hQv$MHZza(DOfPd+FAaAhv!2d>aqT`YL%qL@oWliP9I^sRC^pFI z9tAMthQA<4l*Ei5A}4Wqlm;h0G+(|gT6fV4(Gw;Q3rXZEPGqr)GP95D{yy2~X3_ks z$h}JXbZ`4tl6M+t9;gP`>GQ(qI7q(b6&T$3La`GlRG=YOTpcXz4LSYr^mG~r>f-t?vT9KNT@2QzHD- zF7{E_W1Mb4rA4?bNWLl6ZoBJJW?1mre_A~)-8Qip$E@!OU%mehi=vZ!QqksD?_$o` z@$-N&i}Ru1WCd8Cp^f%#Rsd(3%KG>BF$&qcq(&`odv`Z)X^~33Y0ep#y^f{5ODHIn z7!tw`=Tb44vk+5mU@)e4ko(IG$e+0wK%l_vGq8}$MHw2bBwy`uwz-7KG)f@xeYR+p zSv)dupWj@Mswq7MAh^yz359W`(vAHW;;EA9swIElCb+5>=3xhR?t_6%r3v7|Zo&aP z9RTow#eAh$U?{hDXbjHza8go<{awpGs5D0UCEb?)k)d6 zJmtm?(c^-oWk%vrB=7npR4u+bRXz86-6~XbVAG-fFN6UQ`hCV-P#O4}jlnJv({X3al0AxiXG9`^W1h78GXo z_b9r6ZH;9IZ^b*wv-DKo+jalDo%4GKtv=(0w=F2`{m;uqbi#1h8Aze z@?AZ69GI|Qd|iWz%94wvT+xS_nZwY1PEPpcUW0Vb(UzlQ&;1p(ThehTaeT>?edG1% z#!}aa;fPF45}^+>0M-`wk_UId2#Q>BLT%CvzwMTe`mM*bbIWPD5Bnvl!Ummlys^m2D(CzL_PO^T+D6boLXYwn{sFpGoIjK zJ`lhav9dE^#qFc7+u_ff``g>cG*j0mCMWHmpkqQUUpf*dPyQ}ZgHpeE!rN)Y4gIG5 zW+Bb&+V@F-J~lru!N1`VYd)Rz0hvbC1DRVQCgk93PDW1UWlt#Shbrx-s9g<}Cdz0+ zy?krl&@d=>$U_56MQ5$6wEaZjp2+jo|Ldy50EpFvwF4y>&I)3@81QX7`CY-G=N#BB z5~B8vU!`|M{z+$(u(a*|8C#befqsq0=M@pRTR~ zJ~_y(ENotDcUBJr9?(#vwMi%H<2y;W@yyo1Rhghm;6kmT(QomxHT6+7LDcg_R&JQF zbqxVrt*p?2vBlB1^yU+F`^}+9fI2oVGto=`e|V(QzvXcp)A?+|*WY_1dz$)fBOkof zt7Ql9bUO-~dga4lbb?`6WQ2NZn2O*rR}3}&T!P>CiUy$ITM|iOvA&Nq%`l~j6#{%U z?E^O!0db&pV@GelH@wrQSi&O!lL1I)H5x8ptVc1c#A?I}5XZSodW>T7FvI=}YgUI> z+w~HGoSVW#ubNW+gxIVlXPYi{-M8uTvFQ4t2PX5co)UO_%g75t>- z%|Et?!Z*74^EX?00fZMBSYGK^tcrQtBFYp<>&f$yWiL+O^DlO12maCP{yO$%!eK(a zz&6J+O7JPSkf`LVo0XZC!SmAx`(?`4V@4#=3l_DYnVJXksX8<5fO#aNANJx`j{ z<&GNa{$u)V+B5FF)7Im*wGWf;;37XTrozyJ0sdMFKq_ zqKk$$mTVA!+#w?u>*%jr;k$;U4R-d_oK(acEfMA_WJM4)A;MsQP`KJ9?}c&@cM?;g zPMG!ho3QzPrtjdWqc4EE`@ju|un?0ZmSx4nO6s(T}*H1kf=)7sI=%|G$H{6Rwu zWJs!t>WiKC($iiNT6`mXkDIHcebYpmtC)$!N0b0`GWa1o9^TsqQsT;M!_wN%Hz=<> zWSM1_ltv^g&^^63;FdgS5<9Sa4mrzzx_+Pe4CJVy(evS z9WcGLi0_p4Zufc4?kX=Au5e;7h!U_8<^o)V`%&T1wZR~M?sC07>rG-|wAHOISSSB9 zZuDkxqbGyT^kD(Nc@bhDJcYcsiAL}p6iUvvfgjO#{)ztC&0@skqmYE5S38Fzd=vii z$544}V)B^4lj9EX%Rc;+H^+(V6KxX@zb!d0vpLSc>DXUW!mqV0?}D9qx&xiB3ylWZ!iukqNj zs@hFv)hKgj3)ZaFg>1$mV9W~F%M+b%vVVIcH!;(g0+g_SAv7yY*#M zGrNsL!?*I8v(mm3LW65B%}q?qO)6yy=gwJwKsF)PE(tR*6SGf^iC4#;9+?tWzBR>|Etz{%u4;(zyNa&*b}TdH(R z;47zn%zm&Cl^`1o3I~UMK@huN-^Q(l+u!a40d9BhWHTV5S|vPiy6KE@*IRgpZr@PO z^)KJHU(AI!%XxVk_iih)Ct9<>oQN4!YZmY%EEF7BkT3e8jCP3sfPv&b|LZw*A5bfs zRoD<8TZdhaiT#k(!QDaQ*R5Gj#=h&KwUmLP`M3Fv%*ntCh3zBX2~vAJ@>7Wl6dI!U zpftL#aB{4nuz`VI%T?;jBU+{h30^OJeB36yy+r}rpmK8tlF||-6R!nPSEIT-;<;Z% zC4HJ>O}iL3NwG;^^J!8%eWcuW%l7uHs`s*{_V6o=ky5h6*X;yli|ZYO8xn~HmFe@n z<)FwapTtC(QdM$Vmr!OB8eos@(gEu{c{S+qaP+bexINNHAk8hDvx}8NxHjVL%c9*hT(S zCo@u%H%ts6*_d*v8*!oGN|$yTRAmY}%wqif`EZV5Z4xJ8pdH`=TGl?Zr9;YQVtRI zyMEFvIT>-8kIKwhik<5dTleZx&FVIuiu8|U=&gUZ%|`Bf37Vt0)f~6|vEhdDQTklO z_umOAv6*Pvg}bQw;f3Nwn>=T5XL|knOPS$(T{WyjHLrlOCLEziGtEZ1!bTZJ{)5e& z^hwGgMJSr-p8Z`_hV+I$lgUMIqs7s@y9`95iNSiAKcZ%EaL|xOP6tXs&X){>w`hr)td7!B|%vpoG{6YX?+6c*ErJy7B5p@CaN0 zN;#7l0N>vJ)!eM4zgUVNaJa0kx}lw5Q&kMnWMNCBn9qkHz$}?|Weg+y2PSURjJ{*) zzMxjhuKU7rw*RX9&?B#Ok-NRPyR)OxywBc&-r1xdkuo2u0TC%mV@r+UB5vF)F$A`4 z0hC!6TdK2QP6veTgcXyi$^rAh(}U3wb!TER4?Unod?DXmXJb<#1L-@eeW*@N)$Kd+ zh_2FR12ks{%X!!V;YhG}G;l;rh?M)_2rB)k^|U+R^<(`v$0^liv z{H=hWyY+oGN%fFXHB!y4SaC(e)*%xy{(cwVH2!L5LP)O7V;SG##BGIcLDiK&OXhbI z{>^Xc=a(VKX$u*-XXY~e-S0oijIgmJDn4K%vqC&lp$)iWsy4k@_j>+n+m!FN3T%r@ z8R>18gH0Q2VlOUA?loVcZFW&1A?NXCx&C-9HI#ayy;T|8?;HZ{($a%ws02e*f2O=` z;8q{@*j+uvulM-XBLLWD>OnZ2!=Q;Sg1bXxIcE(2n4xm;zW`F4K5u5VID3n_ASoT$Pf}TxE(pO4lJu1vIhMghU%~l zsVn6UA5x=$PoENJzE_V70B z4t}Pot5Zi#HlsvdudSxv|H+bzoZR*dh066fD~OLlp0drO8T!lxg7)exj$f{*0aUIO zw)DB53%|z!aS^FPEwqf3k?~O@S>JIoJd=)ik6di_2bifOxYhd(FLoa&{E#5zP zdB=$+x_IQPXBslDC3VIebcBz-WI9`XeH#C0yJ0$8BRn}%Rb`>OOP1N*3UK{A+xfpZez9TSG7uH~L>`7iILrkR~Y7R$8e z8P_d2KhC8r#InKxalJb$Y@lpFO$J5|?qVZAvJ?6{Z}!lo*;D8K<#E4Y>fm>aU`t;TZrUxC^V^mx!~vA% z1|xEHoMm{jH5T+$!txEv^C4G(T{W)oT6@XX8`C}pWTSTOO^yAHYIt>qbg8T9Z4Yp0 zJHsw;+iWo!=-nRQXPRB_eFkXj-~y7k9AS=ydxH+uUw2x5hi|rD@EwBN^*~OaITDQl zde(KKiM_nMic1DVw#Q|}lIPu6u=8dbDMQl_q_5p~on#g(P8n4$od+uPaN`unT!Z;T zeXsvL^gY!x{}guboo1C@g}9&;+a&_;Rnqz;%ITcngLN5 zuT4~qJbdOUE%tjzRy6Ym(eNQgG8IJRkm5t*PeM^ZJp-Acz%IaNwSfXNI3f`*qX1#S zqlcoPhKGPbu{At;mgEG)GpbyX&}3C*MU*^*4M1{=BdaO^LOi)sErpV~V`lu5x zqd%}-@9bc|k?-*(wZ*y8$}vQ+@q^gV5Q)~sL`2}-Z3PA`A@`iYd}~O=T-s?LkZage zWH$2$>1LvoFbzWt{*&4a{&O!#gSvudF54E>Epksxu#eY<-)$+&th}jO z!#^Dytkfh>+$0p^CIr6s7&x-+Mk;R46 z&!lbp*++lRH;vLrWtlMtpMbWnT-AskN@zwQ_z)DM^P^!{k9LUnz?_!f?9a*nAJW!2 z&A`%gU>JBz-~5m&&BNTa@2qadkuEl|CR1=G|9?%r1ymF6_diaI&H*ZjNR1MtOOTZA zQc7fWNIFWo9Y}*nr=&=Cql8GQGy@TM3rdQ_gfaGe@bf+Y^JlO#b`FO<&vWnV#&hrM z&fZJO5oNOifFhp4&7r7FH>;^ZnyTj&o<`bF01=ghr$pluk{65nt%tMqtA#rVXMut+ zNewtN^MB#OZ~;!p=*_6;L0!-q*lGyzi)5!tQ;cI+;Kn0t{3y=Nr%T9)f*a<4EZ2y} zqj*0f9y4gPYMOZJ*F>R@Et~JT-kyg7J3L9P*S`C}Q^w!tcPGo+vCyZG1hOXfr1dj{X{v zo$**&$`?Nb3$Y(94^YYeQwOVE=s0ss(@Rw&LsGYD{s_{SCXvyU?$fkT?Y-mHe-Xm_ zm)5=X3)k31%{d2U2sh^-FlOMt<~={dSR>Zveua({tOQM^-YcGC(7LA-NvR}Zq{tlt zl>SE~K~!pu4CNfvourI%U8$r3`y2D#FHOOdCr|kX~EK&B#Fe%+Ixx zFg-hl2fMywO%+UzzbOeD*qvL8dmZxqD`MnDZEj&rt^B0KfuUH{z1WWI_JFQ^4(V<&8%zb~$S25{wtmlK*NW#4KzAlvCw09;lj>4a=xD~d0 zY$p`(+k7f)ZVEU4aP@q>!+6@;^^xZhtN{XRIgKX2PHOjnte9@TV#!Kj!SY7I8NX++ ze!mo@8F2Y0N$VBECvMtFk~&)^;g&}(e}BVnw;b`mpuP;2%3c5W`3BDFt(Pz(7uT7^0r`;Ksv6%xsqjaQf<~(zGzmL^dG5CF_C0p`7 zs|8P47sb7kmy(?@z09!&jzmO;oGe^LQ~QEGs2__=l$FObPpG zpM``*z*_Mg`lHUdhccOA{!C2(^@b2Y2OMDE4P~cTy40D?!ZI}%2kiZ8N32bce>i33y zhZM;@2O9;y>nR+|KRpMF!}@Tt%H6DswNibS&U;r{Ga{T9I3WZaim^4c9Ctm+NxhVB zYHGaKg8?o_cvOG30VI}9n9MQJoJU3Fdk%~(!J!^>Y%L22$5laq@sEJQT_XwV2ZpZ- zPaGQodoHt^veJ?`^bP%JI2%1*Dkd&gjKnn8?)vSc|8QF;{Z3H$9I3F>^v%sy8vV|T zs6KR2=o!h;7)d5;uK84Dh=URT(5r8wGB)IDbWjc}K6Yh`#PSuCzM29fWku~R%C=z7 z8Q(7T(ok_ZvFV!Hq*gs$-IbODOnT+>KhBMT7ezKf^S;KZDSAugHbz0p_}MCCuDYPv zDuQo7p*p*Bw|b}ZDpJxd#H(e1Ly*4jmzBfK?Z%1O6Oys-SGzX^I^X&WuuA`)8Ex;A zA}E7KXx6hsV2z4b40~V2wWHQ{*9&F`-rE(PrsekwYAygr$EhDl1>$5~+Xrv)dw5Kw zf1KbB7ikm@*wN1o{`-V=Z41v{Vd7}9 zINH`!GtPeC*1-Ys6&0Kv#APZ=DYW>aa3y?GFhr9{l>XY9IC*Ne3Nqe1M=g>xFHY-$ zscgK8gKiF6N&w#Cq?6k4aC<#cR$4gLiYyY3;ZC#piHcfu zXAPd>@wKYqGB5mdv$jLKuQ!_g?)}S>*9TV)p<^QL4rLar!xinlqM|n8vE{JWF4xra zbueq{GX0>h`=Aq(VETIM*1Ox%=8j!IE2i(zH5Q-BLGeXfQxZ(P9x3wn6X$6}h=A_i zXkkf>VbWAa_5}P)Q!3=AP?H~^5~T$cyw5HG zTObB~bFb@i4ZHpGeeKTvqHn3qsd)`-n&H}Rv~UZzE+4%9j*;R!TBUMep0g{V*<{EX zgPhnUeIy;Pu5MJKxg8*F&LBPS9Z`gcbJ3L)dW;E5sN;Sebng+q?!lFs3dr;f-i>aT zK!_ol*l0E7wh^q@D9}wS))(w`vVQ3NtgpUOw7o=JJf>f|ScZ&@T??X%5|D^m9O@}u z1EL%_st3P8mnETGBgQ%a(& z1xrt-Og3WXS7@59OX=Q7O9r>rJ0@NF?em0IzUr3h41+!6GP2oTqa1^GT?*KNl zGDyoKE&5M6Do7oAF0XeQ@3VYck>TSibb9pct}%ewQA-0>MB5rin@!BbJOeSOXJ&|m z$cnH%u=i%rKAlIe6y;w|YW1CL+`w%=RcP_=2<<%$p4vnX z=B%Y;3q8I(-8i3>+q!!o`}e=hfY008f4tK@nu(Yzph~3mqqO$6akj=pt(v*q1cNt= z@njo{-7UC7UN9`cc^GqeeO4ea`)TpJ_WI=iv1u8_^F%rNJ(uqJAy$W7@wYm!9qT>I zE|2@sJ4Gf1%}oGv9LQ`aRZ&8ix46Ki*3vCx4%D)tQDB&w z+=2gmSCT1p!A0`w<%{X+9V=G{{KHQpd#Z^f~P6L$VmZcHKG^T083U596yzT$fYR9BK<2V#NLQjmtWW?^BT!6`r%aJ(EU9;z5?7~6sp&a>HAUjNCrvj(r0|Op36tf`YeztR@ zTG_V33|w^f<++U^_hkYsq<*#889!Bz?pLE@>z9ssrBS09SrmtNzH7D9+EK-9Cw)TW zFS}Fqn#H&6=&~DGXG$U5rcR4AG3Etb6JxEcA;&XS)6+j9_({-mt*Hl6x9e^>&EGA? z%Vj{~F|*%MqkCfrX%X9Fs|-=SV!GnqC~!3RSo1~+`u)x6t8zXSNVX=QGT9e$rvsy# zL0_#xmR-Q5Un76-(Wv$1NgGz8Aow+kmU&#p+tTp?ZByaJcjg08+55s_KS3fMmE1)# zcgRS>KvD&xN<-=d#z~R`c0-%b;@W#NbHG6#dcPqQxcD!HpGYdnDBL#UMhB z$*dB+b^OO?RlgPQK@ri-B7AZ{$bttUrDX$PWE<5UvQ7=|4ez&7NpGzj1pgAt&B_zA zuwo|=%aG6dVd`!f};Q14Qg(};6C5V*mhf?Z+!^G8o1wZl>TZbti>@z!>_#4Xk7P}GBNut z4mW!!7q5HM47JmZ*J>XCTi?l*lK~Tc3Zf#(ELmH{@I}yi!A{3X9-*mYlb;&d+#zvw z0|*i%SB3DtT4@jSv9qe;U&cRt5EETL-M3*NVu|24$Qlz6l=>;1Xb z4upYV>qf)z3^f`_+i;uKd2+ae0$lWKN2z;ZMk6ZMZvnHQi^oTg#N!}ObIx_F%3kVh z#~27)`3rkj{(>Ye(wBHV-$60_o+z07K#&jtMsf=0UL{c_$$--TYcs#%ANc=XoNb8- zjEC)q^&UP93aghs(D53|*0@HWK}tJQGqcNQs3^=R{;kzLC_g{DV|x%YVIAu1ax#q$ z{k$QM`0#D?;l3QP>3+Bwr=sFu_&6Ea#B;Qq-L`Mv5x>*;#Ed$NS?5~!;iuvtsew2% z%k!nS2nWeGF?6K7(Bl?5=rL^O4KHb2&MW7eoi(8Loz%^kI5C&krRyoNLq~JNYx!PT zG5tR5)4#)5V<7>%j`*id?ju4}#;an6>1O!ZU1_UJ*8pQa-s%d1c2Bh{{ z3|h>B3@B_R3pKTg&q-B9!O3jWp7ry=(t?w+gFW+Jx~D<`uPm?f0i4j>@wIa8wL$u} zy#Uls*vUiR?q*KR9fDDUh5>F(f-jPH^-4LG%FSKNTLqtl311iN{_F71UL=xUjrX~L z{j=1|Id}+ZP&1f?>*Lk^uyNb(^n$DJG{ZDeodmeIYc=+#FeOJ-I(K>>D-vQdEf+7p zu_jc~V#xNdtCA%nz68yZ&w02B#z+Qe#n-kSVr#$l=yjy{H+ zHK9YkXYx%hi@NFE)E`FGbaL@{XvLNLwPdJmV@#$QW^;IH`Q8rHx)9h^f8aAgDb3^@ zyW09L=&{7Zr!wD-Sj|%=WA?3k(Dc^We5s2?DH?$-+lj^-+~E-rNEWNQn<%YfV-=P6 z*9L^_x5HuUFxAz){Hb0w+nAWh+&77M6gSEEkVd>^0xiH@l;hufPjsWlz5;%OfYTnt zaXS!3PD!RK6H57C2Xsgg4txbJ< z0THUl4Hwp&*LBXp|1~HXVhUPQGUyoh@(T(ulZO?{VQb?ga(l@URwZycVgFcgfueM! zs06%}jxyXMJ=?DfgO~a`oJSS`QzF?@ip$z zd@gDyYN>1M3ma|n>&dHs*G+xiVm7<-G7M7PbZprO8gt6U8R?O91Mts+uLhREeSul~ z?;BS)XCVDV1sRaBo681DwSNmxqvCOTaD$Bkd&5WwTs{0v$A9G-V1p$7X%McPBj+ye zm&26oX$enZ-$u|&>q}6tGqp1k_g-h%4pz)t^VXb<3?|C&Zu!xoE`P~y_ZrW)J$8zU zRWunZq?d|dJfEvUNwHDMO&Cnty`$NGs(xv`RdC*}o*#66oH3P^i}G8~>=>A9b#Wpl zEa%XA>lK}ow$I70!)-TTkmr-$oBR2sg*7>IWaEpyxP{fPN15uS4=~hz^C5`CrGwBt z%hir;%)F2l;qKOTd>Hc}(ERaax+^4QPSe#zrYGly49Z?&JiEIsS7bfUBgq7GB2^#@ zYDmR!UZ}Wx*9@iO4RlR2#f`_uY5AZ?JRxNWq&wLAiSaiJ6_+y?fB<#K5f5^M?Lhhx zB;bQI##LPl2pDlbuF|gaKMt_Jy4Ri_1<|bhrkvjoE#dk#@T&KKuWU$h0;1zWZq8pu z#@5&6fHDk|YunqWKm*c-LgHHDhS6nc+=pxwodNIh%xQb}o|se;^+fyJz26L<38=1^ z-v-wx83DHyUF97^%PJu#=h}nCCecr!M9UH3|M9R(B6UaCh}o0m9mmeXLVtO7*RZl= z75bD)mZ;$Q4TWo^WJ8qbV{!mdGQf+QI__2%1EE6q*KR!NxRQfBVuA*6d2tZ-$M!(oqso2>dddB$>C9!a2T%u@JsMIu1=${LUC!G}S1(u*=0zkQ8{lIc& z1U!oN+B6_22)B1rd@rf7Kz!A74264u{vFUiyvRntspzJ`_D?~NN(a}j)Jw6^g?9aC zX~h(7T03l`%(ppAest~^2eYgpU=N~=pw)BEDPn5XjvClq-~ZA0`|ryqtzv_M6mIMw zYsls?bZZ#I<)H*%RSlyT(wjWs_|7VF31r$)=-$%^bu8BO#%9HmbeOn>+-!E%pk5$P zwkAChS#%MZy}_xVVc-3{#mhslhdN-*8uy+b+^TY@l!KyfyTO}>4>l#QPznP4L%`{DE4$+^{wA)bm2Vld z&r^U+YU@7ULhp41hIV)33g1)o#i(eUay?i+d( zcUU`?>6%}&bdiFGP=^7|Q8sEPNg&&Rjs~CrKBMM>8ac?(yU>$=z2XIjxLhHD2DKB| zGee*Rtn4WOCnVFT-hrWI_b=qa{^kn(8V>Te-xQusB>j(^zz(88#Gc};MSF$J*#Ma* z-fsv3=Q_@+Mnw6#ZNAcS{5=kUm>u+2?vA3HFs|#$UXSamEz2WRruz-+LWaaxe~Tq| zu1>Km1Yx7p$4K-Zx$?u(l$4B8W4OM)%F!f)#xopq<&0&^9Qx{qeDe%(UDcA>=047{ zgu+8_#eEYJ=5$+5p``>%O1+K{BFX3-df^QtqjzHmZf+(tGVh z%V37;Bw7m^7N}~VUyBqw@fpmPkq~X3t~YxZYm*Zhi!^pu*ekr)czrohchM*myoNpK z**dso-F4BukKW=ZG3U|V+iDhgS-I#k$@hsdb7H|$YOB^=YHRg4arN1uHEtPqhP6(q z-FZS5SyG_Gp-1%a&;+9NFpqp&zXDkuUm2)jFi4NwF@mTX(C}}MOXkULdE)*K&G(j! z&^$Jq-^g`zSFfse{aM2>-+BuIrNj2ZzrlkA+tkJe~PA5wY)orJTrDP z*+rz=rPW9=)jU2ri+E{ceGkT)+Olm6pv43}K%Bc*Z$EkpH@7 zsOUStW_{Grcd>~(jLe-pdx}{( z!K<9d>-!*o5svsCqkui1@3tKu6Y6~C^CLLnox}p?9HooHpa!J?Q!8qsY+~&lx*Lt} z-}9IMNeI+mNPB!XP9w6!qmsvD`^&lxltBqPGi?m<du zVbgvP?mz)Uco4FM814)@4Ga#py!UuMTO{jUtBh8vt0@x&!s2>ottrc`Z$TOQ-8(O> z&)sp{&-4iG>Bz%SAp74l)O(hD8rScbchH#OiER*X90d&<}9J z^HrbOw>xJ_XYClg%SrE&ZFh3;MsieEc*2Jq2lMtT<=d7UREa;t)e8vZCL%~kGNaxh z#=NG_a+k&bMowXNwtA1cda+5ERb0VQ>CT$RDO?W)+d4&r?X)~qZ?k9Gs=V^!sTU#xl9qN^aTSOgFc|tn0N%&5oR16&J@{;|w* za5=l$c~M^1b)*o&8v2mU_84*SnX6HW^A)&13M`i zYc4r9x9gfU+}Ko@;N`RT=NV?N&7H-1#piZ%s>tcvFC7A19Uj!wP3H3+)NNAkwYRNM z)GOP|Nj9?Rl_a0t`5t6~flS3cMjI?8QFp#C)w8#E z5c=V;6X#Cm%TXx?kOam9D=vdIgT-?@Yx0ua1rP9U32A(h-pqq|AP7ab`FZIWijnQL zw;%adFW3smA5ba$?F^F-JX7u3*g!p^e(me}35mQ{ks<_4SyJKZEXpZUVOu67;3Pnlu3}r~b6S!78|2Po!Dyc&W!(3buv(34f=#SQxr9Tav8JZ*_&rs(%q&D1Z@%%(TnF#qU;(D3QPOv* z8tA!!tOt861*lt0C=3ma{I9##m=oM-&}!&ZnbbkY)UL!lkc)83qeck^- zn1Q~bwgKdXSJglYq8cef&r@<|o&Bz%Z}|dT;Bt=n32rH@b99!XYo*1>_w=#qmc0Po zZbcHQT5N;xFj!yrSplZj?cjV}2zPaE9wn-r@~~@8@kQGY)aG9o|0t$u0kk#NV zmbN5{uD7ozYL{kr@5KF5aoL$!px(@Y8fwnQ35-|WVOollmasr@3^XSUJvPmkFl`jx za$TgX=-hXB_e0pxw+&TiSHmjZ{i8Lgb*tbAQHUF|#t}wY=ia7Eu9MG8P?38SOnFTS z+MJ{Dc5*PAqmt*k_#1J(L0{hzWVO0Q{mOY>;brlBi2LR&g=unasIrr1{O7dd{7tx~ zN_pO~OK_2eqzfN-Psb@%S!oGdk_nQ;9ch^(y+a4~QEeomsmM1-xZQDfE zfR!GYJfoXN^Vf>G{_k;8ADs!SM!uMRVKQh!vj`9RjtKoj@&uhM%GzCTi7phMe~xf+ zh@R`zTZBAt6wpqfv;*st+S>2%aX`$!>|4(jjP2suR zne+x#o(Bnp)+Ef)wiem2O_2}M{$3a!rB9VtD4raD0J+}#n+`?ANHt^_m=ntvB9|Qb5U4AU4s1ARtysBgqwa7~2 zlN5k}f4$<1km`I7uRh5?W5#oR#*WDM!RJcy?JtrxO@~sU>wVp)tO;iW6x+th{yXo+ z8l87$+_)YvYiq%K`s` zIrDSp?~PT=w(Jz^=a&*b0)X|dH=Cbj{GvAooE(W^TK4hUSew{M zmvq(lorS{#!yftL7NQB!nvx$nYcnV6VF>@`Rd;GBv{3HhNY~2WlcTn<^W5J37Tl#f zZs*48p=<(;@Cq%1QV2|x?xeyHa&0E=T+CF(;KYnD_uY-|wUgBgblcIVmopzG&LFxpxqN4hl;?WRvr= z5(cKFisBCEhboze`rN$h4b|d{wfe(4p zjLl#45*&r+(;k(6(PKfC&G{yA9R+yy$t~~4KGuGAFmT$s3VKX_TY5g<@x1(l#(l(H zO!!}3_VjgGW0bhLw@caWDDNuCy(wsvF$|mAb~($yU6!t%N1`TAnuM%7PCGEZxNPm^ z66z)a7kPA3F$ljQx~|x{F|C}Rj~Vzr1!_9tVhm` z+uebS9{z6jUq{VmToa0|xW4QsD#@zWSS3;-YSR+^4pfMA-{z;kLF7BCmFL*>72dl& zCcPxMReP&Iw*9z9|Kep>x8PRj4ytz}DD=bw@_Lm0nO< z-!=tS^2)2=D*ivg|7W;PQh|~`^X8!Zu-p9ugZr=}fAYN0d*tZ){F4;#zj<#*)Y}B@ z5cO_pzCQx`cKi_a`*Xf+6Mp_a!QCh?8~_m3o(-CP+}`W36R8W)ZyOsrc}!-{Fa5(X z{7){sr~XE7c_Jpn?+2VTrVh#YGoB)xy5v6Z3viz9H0(9D6v}eG#CEnNB(7X8e4O(L zOYrGiZCP2E3YjkJ!iLt$0)pIJj2#BsxqqtO<9G7+=cgY}dybR*u>-7qC-b3OEPdz# zG?x7G^M}ZDXKm5EYGYtC|E2`SS94T@rGjq{@KeAtAc$%IgvRNQ&A6XSuSURAN?d3lCh{{<5uO$Ux6;E;V|%AfUd} zDPKSNoNPXL9P%pR^Ho^pwC)Wg{VLG#1;PMyQ+cdCr1{VtX_Z+T?2$ z@;FXRX(-Lr9E;uYpoBHINck)(XMsHv$s>Cd)~kY~ zXBww#Mpg&d{{PPmygq552mcg8s45KAfq + + + + OA审批 + + + + + + + + diff --git a/src/main.server.ts b/src/main.server.ts new file mode 100644 index 0000000..4b9d4d1 --- /dev/null +++ b/src/main.server.ts @@ -0,0 +1,7 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { AppComponent } from './app/app.component'; +import { config } from './app/app.config.server'; + +const bootstrap = () => bootstrapApplication(AppComponent, config); + +export default bootstrap; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/src/styles.less b/src/styles.less new file mode 100644 index 0000000..c1f862f --- /dev/null +++ b/src/styles.less @@ -0,0 +1,15 @@ + +// Custom Theming for NG-ZORRO +// For more information: https://ng.ant.design/docs/customize-theme/en +@import "../node_modules/ng-zorro-antd/ng-zorro-antd.less"; +body, html { + margin: 0; + padding: 0; + height: 100%; + overflow: hidden; +} +// Override less variables to here +// View all variables: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/style/themes/default.less + +// @primary-color: #1890ff; +/* You can add global styles to this file, and also import other style files */ diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..7dc7284 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [ + "node" + ] + }, + "files": [ + "src/main.ts", + "src/main.server.ts", + "server.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..f37b67f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +}